Issue #2430133 by JeroenT, znerol, mgifford: BlockLanguageTest tests non-existing pages

merge-requests/2333/merge
Alex Pott 2022-06-14 11:20:00 +01:00
parent d8435a0695
commit b8a325c351
No known key found for this signature in database
GPG Key ID: BDA67E7EE836E5CE
1 changed files with 24 additions and 5 deletions

View File

@ -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.