Version 1
[yaffs-website] / web / core / modules / content_translation / src / Tests / Views / TranslationLinkTest.php
diff --git a/web/core/modules/content_translation/src/Tests/Views/TranslationLinkTest.php b/web/core/modules/content_translation/src/Tests/Views/TranslationLinkTest.php
new file mode 100644 (file)
index 0000000..23c74a4
--- /dev/null
@@ -0,0 +1,69 @@
+<?php
+
+namespace Drupal\content_translation\Tests\Views;
+
+use Drupal\content_translation\Tests\ContentTranslationTestBase;
+use Drupal\views\Tests\ViewTestData;
+use Drupal\Core\Language\Language;
+use Drupal\user\Entity\User;
+
+/**
+ * Tests the content translation overview link field handler.
+ *
+ * @group content_translation
+ * @see \Drupal\content_translation\Plugin\views\field\TranslationLink
+ */
+class TranslationLinkTest extends ContentTranslationTestBase {
+
+  /**
+   * Views used by this test.
+   *
+   * @var array
+   */
+  public static $testViews = ['test_entity_translations_link'];
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = ['content_translation_test_views'];
+
+  protected function setUp() {
+    // @todo Use entity_type once it is has multilingual Views integration.
+    $this->entityTypeId = 'user';
+
+    parent::setUp();
+
+    // Assign user 1  a language code so that the entity can be translated.
+    $user = User::load(1);
+    $user->langcode = 'en';
+    $user->save();
+
+    // Assign user 2 LANGCODE_NOT_SPECIFIED code so entity can't be translated.
+    $user = User::load(2);
+    $user->langcode = Language::LANGCODE_NOT_SPECIFIED;
+    $user->save();
+
+    ViewTestData::createTestViews(get_class($this), ['content_translation_test_views']);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function getTranslatorPermissions() {
+    $permissions = parent::getTranslatorPermissions();
+    $permissions[] = 'access user profiles';
+    return $permissions;
+  }
+
+  /**
+   * Tests the content translation overview link field handler.
+   */
+  public function testTranslationLink() {
+    $this->drupalGet('test-entity-translations-link');
+    $this->assertLinkByHref('user/1/translations');
+    $this->assertNoLinkByHref('user/2/translations', 'The translations link is not present when content_translation_translate_access() is FALSE.');
+  }
+
+}