diff --git a/modules/oe_whitelabel_multilingual/oe_whitelabel_multilingual.module b/modules/oe_whitelabel_multilingual/oe_whitelabel_multilingual.module index cd951db5721033e5f039c3f1c44f44e6cc45c2f7..9a5a1e98042fba6f11437a85a84005e5f1801466 100755 --- a/modules/oe_whitelabel_multilingual/oe_whitelabel_multilingual.module +++ b/modules/oe_whitelabel_multilingual/oe_whitelabel_multilingual.module @@ -7,6 +7,8 @@ declare(strict_types = 1); +use Drupal\Component\Utility\Html; + /** * Implements hook_preprocess_links(). */ @@ -57,6 +59,9 @@ function oe_whitelabel_multilingual_preprocess_links__oe_multilingual_content_la ], ]; } + + // Generate required ids. + $variables['expandable_id'] = Html::getUniqueId('bcl-expandable'); } /** diff --git a/templates/overrides/navigation/links--oe-multilingual-content-language-block.html.twig b/templates/overrides/navigation/links--oe-multilingual-content-language-block.html.twig index 1250046bb7e7f0c83c70850379bc90083ca10076..784fbbf2f9324630b427745ad00fbc88dbf4d79f 100644 --- a/templates/overrides/navigation/links--oe-multilingual-content-language-block.html.twig +++ b/templates/overrides/navigation/links--oe-multilingual-content-language-block.html.twig @@ -4,7 +4,7 @@ _id, _message and _expandable are overwritten. @todo Call include once BCL 0.20 is available. #} - {% set _id = "dropdown-languages" %} + {% set _id = expandable_id %} {% set _message = { message: "This page is not available in @language."|t({'@language': unavailable_language}), path: bcl_icon_path, diff --git a/tests/src/Kernel/ContentLanguageSwitcherTest.php b/tests/src/Kernel/ContentLanguageSwitcherTest.php index 33881e7815d1098755a8033153cf44a209b64c7f..49c72b792642ca7b70fc5614f2d389164e03b4f5 100644 --- a/tests/src/Kernel/ContentLanguageSwitcherTest.php +++ b/tests/src/Kernel/ContentLanguageSwitcherTest.php @@ -109,7 +109,7 @@ class ContentLanguageSwitcherTest extends KernelTestBase { $crawler = new Crawler($html); // Make sure that content language switcher block is present. - $actual = $crawler->filter('#dropdown-languages'); + $actual = $crawler->filter('div.collapse.mt-3'); $this->assertCount(1, $actual); // Warning message doesn't contain the unavailable language, the translation @@ -154,7 +154,7 @@ class ContentLanguageSwitcherTest extends KernelTestBase { */ protected function assertSelectedLanguage(Crawler $crawler, string $expected): void { // The selected language link will contain a svg, so we target that. - $actual = $crawler->filter('#dropdown-languages > div > a > svg')->parents()->first()->text(); + $actual = $crawler->filter('div.collapse.mt-3 > div > a > svg')->parents()->first()->text(); $this->assertEquals($expected, trim($actual)); } @@ -180,7 +180,7 @@ class ContentLanguageSwitcherTest extends KernelTestBase { * The labels of the translations that should be rendered as links. */ protected function assertTranslationLinks(Crawler $crawler, array $expected): void { - $elements = $crawler->filter('#dropdown-languages > div > a'); + $elements = $crawler->filter('div.collapse.mt-3 > div > a'); // Filter out the selected language. $elements = $elements->reduce(function (Crawler $crawler) { return $crawler->filter('svg')->count() === 0;