From b8a325c351b29b37a5c1245ac234855cb191c878 Mon Sep 17 00:00:00 2001 From: Alex Pott Date: Tue, 14 Jun 2022 11:20:00 +0100 Subject: [PATCH] Issue #2430133 by JeroenT, znerol, mgifford: BlockLanguageTest tests non-existing pages --- .../src/Functional/BlockLanguageTest.php | 29 +++++++++++++++---- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/core/modules/block/tests/src/Functional/BlockLanguageTest.php b/core/modules/block/tests/src/Functional/BlockLanguageTest.php index a1380da619a..717a047b2fe 100644 --- a/core/modules/block/tests/src/Functional/BlockLanguageTest.php +++ b/core/modules/block/tests/src/Functional/BlockLanguageTest.php @@ -23,7 +23,7 @@ class BlockLanguageTest extends BrowserTestBase { * * @var array */ - protected static $modules = ['language', 'block', 'content_translation']; + protected static $modules = ['language', 'block', 'content_translation', 'node']; /** * {@inheritdoc} @@ -48,6 +48,18 @@ class BlockLanguageTest extends BrowserTestBase { // Verify that language was added successfully. $this->assertSession()->pageTextContains('French'); + + // Set path prefixes for both languages. + $this->config('language.negotiation')->set('url', [ + 'source' => 'path_prefix', + 'prefixes' => [ + 'en' => 'en', + 'fr' => 'fr', + ], + ])->save(); + + $this->drupalCreateContentType(['type' => 'page']); + $this->drupalCreateNode(); } /** @@ -80,10 +92,12 @@ class BlockLanguageTest extends BrowserTestBase { // Check that a page has a block. $this->drupalGet('en'); + $this->assertSession()->statusCodeEquals(200); $this->assertSession()->pageTextContains('Powered by Drupal'); // Check that a page doesn't has a block for the current language anymore. $this->drupalGet('fr'); + $this->assertSession()->statusCodeEquals(200); $this->assertSession()->pageTextNotContains('Powered by Drupal'); } @@ -161,9 +175,10 @@ class BlockLanguageTest extends BrowserTestBase { $this->submitForm($edit, 'Save block'); // Interface negotiation depends on request arguments. - $this->drupalGet('node', ['query' => ['language' => 'en']]); + $this->drupalGet('node/1', ['query' => ['language' => 'en']]); + $this->assertSession()->statusCodeEquals(200); $this->assertSession()->pageTextNotContains('Powered by Drupal'); - $this->drupalGet('node', ['query' => ['language' => 'fr']]); + $this->drupalGet('node/1', ['query' => ['language' => 'fr']]); $this->assertSession()->pageTextContains('Powered by Drupal'); // Log in again in order to clear the interface language stored in the @@ -174,8 +189,10 @@ class BlockLanguageTest extends BrowserTestBase { // Content language does not depend on session/request arguments. // It will fall back on English (site default) and not display the block. $this->drupalGet('en'); + $this->assertSession()->statusCodeEquals(200); $this->assertSession()->pageTextNotContains('Powered by Drupal'); $this->drupalGet('fr'); + $this->assertSession()->statusCodeEquals(200); $this->assertSession()->pageTextNotContains('Powered by Drupal'); // Change visibility to now depend on content language for this block. @@ -187,9 +204,11 @@ class BlockLanguageTest extends BrowserTestBase { // Content language negotiation does not depend on request arguments. // It will fall back on English (site default) and not display the block. - $this->drupalGet('node', ['query' => ['language' => 'en']]); + $this->drupalGet('node/1', ['query' => ['language' => 'en']]); + $this->assertSession()->statusCodeEquals(200); $this->assertSession()->pageTextNotContains('Powered by Drupal'); - $this->drupalGet('node', ['query' => ['language' => 'fr']]); + $this->drupalGet('node/1', ['query' => ['language' => 'fr']]); + $this->assertSession()->statusCodeEquals(200); $this->assertSession()->pageTextNotContains('Powered by Drupal'); // Content language negotiation depends on path prefix.