protected function LanguageSwitchingTest::doTestLanguageLinkActiveClassAuthenticated in Drupal 9
Same name and namespace in other branches
- 8 core/modules/language/tests/src/Functional/LanguageSwitchingTest.php \Drupal\Tests\language\Functional\LanguageSwitchingTest::doTestLanguageLinkActiveClassAuthenticated()
For authenticated users, the "active" class is set by JavaScript.
See also
self::testLanguageLinkActiveClass()
1 call to LanguageSwitchingTest::doTestLanguageLinkActiveClassAuthenticated()
- LanguageSwitchingTest::testLanguageLinkActiveClass in core/
modules/ language/ tests/ src/ Functional/ LanguageSwitchingTest.php - Tests active class on links when switching languages.
File
- core/
modules/ language/ tests/ src/ Functional/ LanguageSwitchingTest.php, line 309
Class
- LanguageSwitchingTest
- Functional tests for the language switching feature.
Namespace
Drupal\Tests\language\FunctionalCode
protected function doTestLanguageLinkActiveClassAuthenticated() {
$function_name = '#type link';
$path = 'language_test/type-link-active-class';
// Test links generated by the link generator on an English page.
$current_language = 'English';
$this
->drupalGet($path);
// Language code 'none' link should be active.
$this
->assertSession()
->elementAttributeContains('named', [
'id',
'no_lang_link',
], 'data-drupal-link-system-path', $path);
// Language code 'en' link should be active.
$this
->assertSession()
->elementAttributeContains('named', [
'id',
'en_link',
], 'hreflang', 'en');
$this
->assertSession()
->elementAttributeContains('named', [
'id',
'en_link',
], 'data-drupal-link-system-path', $path);
// Language code 'fr' link should not be active.
$this
->assertSession()
->elementAttributeContains('named', [
'id',
'fr_link',
], 'hreflang', 'fr');
$this
->assertSession()
->elementAttributeContains('named', [
'id',
'fr_link',
], 'data-drupal-link-system-path', $path);
// Verify that drupalSettings contains the correct values.
$settings = $this
->getDrupalSettings();
$this
->assertSame($path, $settings['path']['currentPath'], 'drupalSettings.path.currentPath is set correctly to allow drupal.active-link to mark the correct links as active.');
$this
->assertFalse($settings['path']['isFront'], 'drupalSettings.path.isFront is set correctly to allow drupal.active-link to mark the correct links as active.');
$this
->assertSame('en', $settings['path']['currentLanguage'], 'drupalSettings.path.currentLanguage is set correctly to allow drupal.active-link to mark the correct links as active.');
// Test links generated by the link generator on a French page.
$current_language = 'French';
$this
->drupalGet('fr/language_test/type-link-active-class');
// Language code 'none' link should be active.
$this
->assertSession()
->elementAttributeContains('named', [
'id',
'no_lang_link',
], 'data-drupal-link-system-path', $path);
// Language code 'en' link should not be active.
$this
->assertSession()
->elementAttributeContains('named', [
'id',
'en_link',
], 'hreflang', 'en');
$this
->assertSession()
->elementAttributeContains('named', [
'id',
'en_link',
], 'data-drupal-link-system-path', $path);
// Language code 'fr' link should be active.
$this
->assertSession()
->elementAttributeContains('named', [
'id',
'fr_link',
], 'hreflang', 'fr');
$this
->assertSession()
->elementAttributeContains('named', [
'id',
'fr_link',
], 'data-drupal-link-system-path', $path);
// Verify that drupalSettings contains the correct values.
$settings = $this
->getDrupalSettings();
$this
->assertSame($path, $settings['path']['currentPath'], 'drupalSettings.path.currentPath is set correctly to allow drupal.active-link to mark the correct links as active.');
$this
->assertFalse($settings['path']['isFront'], 'drupalSettings.path.isFront is set correctly to allow drupal.active-link to mark the correct links as active.');
$this
->assertSame('fr', $settings['path']['currentLanguage'], 'drupalSettings.path.currentLanguage is set correctly to allow drupal.active-link to mark the correct links as active.');
}