diff --git a/core/modules/node/src/Tests/Views/NodeLanguageTest.php b/core/modules/node/src/Tests/Views/NodeLanguageTest.php index 96e1bb6..223fb0e 100644 --- a/core/modules/node/src/Tests/Views/NodeLanguageTest.php +++ b/core/modules/node/src/Tests/Views/NodeLanguageTest.php @@ -229,19 +229,50 @@ public function testLanguages() { * Tests native name display in language field. */ public function testNativeLanguageField() { - // Modify the test view to display native language names. + $this->assertLanguageNames(); + + // Modify test view to display native language names and set translations. $config = \Drupal::config('views.view.test_language'); $config->set('display.default.display_options.fields.langcode.native_language', TRUE); $config->save(); - - // Set translations for the two languages. \Drupal::languageManager()->getLanguageConfigOverride('fr', 'language.entity.fr')->set('label', 'Français')->save(); \Drupal::languageManager()->getLanguageConfigOverride('es', 'language.entity.es')->set('label', 'Español')->save(); + $this->assertLanguageNames(TRUE); + + // Modify field to use language field instead of node_language field. + $config = \Drupal::config('views.view.test_language'); + $this->assertEqual($config->get('display.default.display_options.fields.langcode.plugin_id'), 'node_language'); + $config->set('display.default.display_options.fields.langcode.plugin_id', 'language'); + $config->save(); + $this->assertLanguageNames(TRUE); + + // Modify the test view to display English language names. + $config = \Drupal::config('views.view.test_language'); + $config->set('display.default.display_options.fields.langcode.native_language', FALSE); + $config->save(); + $this->assertLanguageNames(); + } - // Test the view now displays the native language names. + /** + * Assert the presence of language names in their English or native forms. + * + * @param bool $native + * (optional) Whether to assert the language name in its native form. + */ + protected function assertLanguageNames($native = FALSE) { $this->drupalGet('test-language'); - $this->assertText('Français', 'French language shown translated.'); - $this->assertText('Español', 'Spanish language shown translated.'); + if ($native) { + $this->assertText('Français', 'French language shown translated.'); + $this->assertText('Español', 'Spanish language shown translated.'); + $this->assertNoText('French', 'French language not shown in English.'); + $this->assertNoText('Spanish', 'Spanish language not shown in English.'); + } + else { + $this->assertNoText('Français', 'French language not shown translated.'); + $this->assertNoText('Español', 'Spanish language not shown translated.'); + $this->assertText('French', 'French language shown in English.'); + $this->assertText('Spanish', 'Spanish language shown in English.'); + } } }