You are here

public function ConfigNamesMapperTest::testPopulateFromRouteMatch in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/config_translation/tests/src/Unit/ConfigNamesMapperTest.php \Drupal\Tests\config_translation\Unit\ConfigNamesMapperTest::testPopulateFromRouteMatch()

Tests ConfigNamesMapper::populateFromRouteMatch().

File

core/modules/config_translation/tests/src/Unit/ConfigNamesMapperTest.php, line 383
Contains \Drupal\Tests\config_translation\Unit\ConfigNamesMapperTest.

Class

ConfigNamesMapperTest
Tests the functionality provided by the configuration names mapper.

Namespace

Drupal\Tests\config_translation\Unit

Code

public function testPopulateFromRouteMatch() {

  // Make sure the language code is not set initially.
  $this
    ->assertSame(NULL, $this->configNamesMapper
    ->getInternalLangcode());

  // Test that an empty request does not set the language code.
  $route_match = new RouteMatch('example', new Route('/test/{langcode}'));
  $this->configNamesMapper
    ->populateFromRouteMatch($route_match);
  $this
    ->assertSame(NULL, $this->configNamesMapper
    ->getInternalLangcode());

  // Test that a request with a 'langcode' attribute sets the language code.
  $route_match = new RouteMatch('example', new Route('/test/{langcode}'), [
    'langcode' => 'xx',
  ]);
  $this->configNamesMapper
    ->populateFromRouteMatch($route_match);
  $this
    ->assertSame('xx', $this->configNamesMapper
    ->getInternalLangcode());

  // Test that the language code gets unset with the wrong request.
  $route_match = new RouteMatch('example', new Route('/test/{langcode}'));
  $this->configNamesMapper
    ->populateFromRouteMatch($route_match);
  $this
    ->assertSame(NULL, $this->configNamesMapper
    ->getInternalLangcode());
}