public function LanguageBrowserDetectionAcceptLanguageTest::testAcceptLanguageEmptyDefault in Drupal 8
Same name and namespace in other branches
- 9 core/modules/language/tests/src/Functional/LanguageBrowserDetectionAcceptLanguageTest.php \Drupal\Tests\language\Functional\LanguageBrowserDetectionAcceptLanguageTest::testAcceptLanguageEmptyDefault()
Tests with browsers with and without Accept-Language header.
File
- core/
modules/ language/ tests/ src/ Functional/ LanguageBrowserDetectionAcceptLanguageTest.php, line 74
Class
- LanguageBrowserDetectionAcceptLanguageTest
- Tests browser language detection with different accept-language headers.
Namespace
Drupal\Tests\language\FunctionalCode
public function testAcceptLanguageEmptyDefault() {
// Check correct headers.
$this
->drupalGet('/en/system-test/echo/language test', [], [
'Accept-Language' => 'en',
]);
$this
->assertSession()
->responseHeaderEquals('Content-Language', 'en');
$this
->assertSession()
->responseHeaderEquals('X-Drupal-Cache', 'MISS');
$this
->drupalGet('/fr/system-test/echo/language test', [], [
'Accept-Language' => 'en',
]);
$this
->assertSession()
->responseHeaderEquals('Content-Language', 'fr');
$this
->assertSession()
->responseHeaderEquals('X-Drupal-Cache', 'MISS');
$this
->drupalGet('/system-test/echo/language test', [], [
'Accept-Language' => 'en',
]);
$this
->assertSession()
->responseHeaderEquals('Content-Language', 'en');
$this
->assertNull($this
->drupalGetHeader('X-Drupal-Cache'));
// Check with UK browser.
$this
->drupalGet('/system-test/echo/language test', [], [
'Accept-Language' => 'en-UK,en',
]);
$this
->assertSession()
->responseHeaderEquals('Content-Language', 'en');
$this
->assertNull($this
->drupalGetHeader('X-Drupal-Cache'));
// Check with french browser.
$this
->drupalGet('/system-test/echo/language test', [], [
'Accept-Language' => 'fr-FR,fr',
]);
$this
->assertSession()
->responseHeaderEquals('Content-Language', 'fr');
$this
->assertNull($this
->drupalGetHeader('X-Drupal-Cache'));
// Check with browser without language settings - should return fallback language.
$this
->drupalGet('/system-test/echo/language test', [], [
'Accept-Language' => NULL,
]);
$this
->assertSession()
->responseHeaderEquals('Content-Language', 'en');
$this
->assertNull($this
->drupalGetHeader('X-Drupal-Cache'));
// Check with french browser again.
$this
->drupalGet('/system-test/echo/language test', [], [
'Accept-Language' => 'fr-FR,fr',
]);
$this
->assertSession()
->responseHeaderEquals('Content-Language', 'fr');
$this
->assertNull($this
->drupalGetHeader('X-Drupal-Cache'));
// Check with UK browser.
$this
->drupalGet('/system-test/echo/language test', [], [
'Accept-Language' => 'en-UK,en',
]);
$this
->assertSession()
->responseHeaderEquals('Content-Language', 'en');
$this
->assertNull($this
->drupalGetHeader('X-Drupal-Cache'));
// Check if prefixed URLs are still cached.
$this
->drupalGet('/en/system-test/echo/language test', [], [
'Accept-Language' => 'en',
]);
$this
->assertSession()
->responseHeaderEquals('Content-Language', 'en');
$this
->assertSession()
->responseHeaderEquals('X-Drupal-Cache', 'HIT');
$this
->drupalGet('/fr/system-test/echo/language test', [], [
'Accept-Language' => 'en',
]);
$this
->assertSession()
->responseHeaderEquals('Content-Language', 'fr');
$this
->assertSession()
->responseHeaderEquals('X-Drupal-Cache', 'HIT');
}