Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Commit 94185c9f authored by drishu's avatar drishu
Browse files

OEL-1167: Fixup test.

parent d7fc007c
No related branches found
No related tags found
2 merge requests!102Merge 1.x into EPIC-OEL-1255-migrate-paragraphs.,!94OEL-1167: Theme the content language switcher
...@@ -13,6 +13,7 @@ use Symfony\Component\HttpFoundation\Request; ...@@ -13,6 +13,7 @@ use Symfony\Component\HttpFoundation\Request;
* Test content language switcher rendering. * Test content language switcher rendering.
*/ */
class ContentLanguageSwitcherTest extends KernelTestBase { class ContentLanguageSwitcherTest extends KernelTestBase {
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
...@@ -84,7 +85,6 @@ class ContentLanguageSwitcherTest extends KernelTestBase { ...@@ -84,7 +85,6 @@ class ContentLanguageSwitcherTest extends KernelTestBase {
'title' => 'Hello, world!', 'title' => 'Hello, world!',
'type' => 'oe_demo_translatable_page', 'type' => 'oe_demo_translatable_page',
]); ]);
/** @var \Drupal\Core\Entity\EntityInterface $translation */ /** @var \Drupal\Core\Entity\EntityInterface $translation */
$node->addTranslation('es', ['title' => '¡Hola mundo!'])->save(); $node->addTranslation('es', ['title' => '¡Hola mundo!'])->save();
...@@ -96,7 +96,7 @@ class ContentLanguageSwitcherTest extends KernelTestBase { ...@@ -96,7 +96,7 @@ class ContentLanguageSwitcherTest extends KernelTestBase {
$block_manager = \Drupal::service('plugin.manager.block'); $block_manager = \Drupal::service('plugin.manager.block');
$config = [ $config = [
'id' => 'oe_multilingual_content_language_switcher', 'id' => 'oe_multilingual_content_language_switcher',
'label' => 'OpenEuropa Content Language Switcher', 'label' => 'Content language switcher',
'provider' => 'oe_multilingual', 'provider' => 'oe_multilingual',
'label_display' => '0', 'label_display' => '0',
]; ];
...@@ -104,6 +104,7 @@ class ContentLanguageSwitcherTest extends KernelTestBase { ...@@ -104,6 +104,7 @@ class ContentLanguageSwitcherTest extends KernelTestBase {
/** @var \Drupal\Core\Block\BlockBase $plugin_block */ /** @var \Drupal\Core\Block\BlockBase $plugin_block */
$plugin_block = $block_manager->createInstance('oe_multilingual_content_language_switcher', $config); $plugin_block = $block_manager->createInstance('oe_multilingual_content_language_switcher', $config);
$render = $plugin_block->build(); $render = $plugin_block->build();
$html = (string) $this->container->get('renderer')->renderRoot($render); $html = (string) $this->container->get('renderer')->renderRoot($render);
$crawler = new Crawler($html); $crawler = new Crawler($html);
...@@ -115,8 +116,11 @@ class ContentLanguageSwitcherTest extends KernelTestBase { ...@@ -115,8 +116,11 @@ class ContentLanguageSwitcherTest extends KernelTestBase {
// will have it. // will have it.
$this->assertUnavailableLanguage($crawler, 'This page is not available in български.'); $this->assertUnavailableLanguage($crawler, 'This page is not available in български.');
// Make sure that selected language is properly rendered.
$this->assertSelectedLanguage($crawler, 'English');
// Make sure that available languages are properly rendered. // Make sure that available languages are properly rendered.
$this->assertTranslationLinks($crawler, ['español', 'English']); $this->assertTranslationLinks($crawler, ['español']);
// Remove the spanish translation. // Remove the spanish translation.
$node->removeTranslation('es'); $node->removeTranslation('es');
...@@ -136,12 +140,6 @@ class ContentLanguageSwitcherTest extends KernelTestBase { ...@@ -136,12 +140,6 @@ class ContentLanguageSwitcherTest extends KernelTestBase {
// Verify that the content has been rendered in the fallback language. // Verify that the content has been rendered in the fallback language.
$this->assertSelectedLanguage($crawler, 'English'); $this->assertSelectedLanguage($crawler, 'English');
// Simulate a request to the canonical route of the node base language.
$this->setCurrentRequest('/node/' . $node->id());
$html = (string) $this->container->get('renderer')->renderRoot($render);
$crawler = new Crawler($html);
// Make sure that no language links are rendered. // Make sure that no language links are rendered.
$this->assertTranslationLinks($crawler, []); $this->assertTranslationLinks($crawler, []);
} }
...@@ -155,7 +153,8 @@ class ContentLanguageSwitcherTest extends KernelTestBase { ...@@ -155,7 +153,8 @@ class ContentLanguageSwitcherTest extends KernelTestBase {
* The label of the language. * The label of the language.
*/ */
protected function assertSelectedLanguage(Crawler $crawler, string $expected): void { protected function assertSelectedLanguage(Crawler $crawler, string $expected): void {
$actual = $crawler->filter('#dropdown-languages > div > a')->text(); // The selected language link will contain a svg, so we target that.
$actual = $crawler->filter('#dropdown-languages > div > a > svg')->parents()->first()->text();
$this->assertEquals($expected, trim($actual)); $this->assertEquals($expected, trim($actual));
} }
...@@ -182,6 +181,10 @@ class ContentLanguageSwitcherTest extends KernelTestBase { ...@@ -182,6 +181,10 @@ class ContentLanguageSwitcherTest extends KernelTestBase {
*/ */
protected function assertTranslationLinks(Crawler $crawler, array $expected): void { protected function assertTranslationLinks(Crawler $crawler, array $expected): void {
$elements = $crawler->filter('#dropdown-languages > div > a'); $elements = $crawler->filter('#dropdown-languages > div > a');
// Filter out the selected language.
$elements = $elements->reduce(function (Crawler $crawler) {
return $crawler->filter('svg')->count() === 0;
});
$this->assertSameSize($expected, $elements); $this->assertSameSize($expected, $elements);
$actual = array_column(iterator_to_array($elements), 'nodeValue'); $actual = array_column(iterator_to_array($elements), 'nodeValue');
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment