public function AliasManagerTest::testGetAliasByPathCachedMissLanguage in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/tests/Drupal/Tests/Core/Path/AliasManagerTest.php \Drupal\Tests\Core\Path\AliasManagerTest::testGetAliasByPathCachedMissLanguage()
Tests the getAliasByPath cache when a different language is requested.
@covers ::getAliasByPath @covers ::writeCache
File
- core/
tests/ Drupal/ Tests/ Core/ Path/ AliasManagerTest.php, line 306 - Contains \Drupal\Tests\Core\Path\AliasManagerTest.
Class
- AliasManagerTest
- @coversDefaultClass \Drupal\Core\Path\AliasManager @group Path
Namespace
Drupal\Tests\Core\PathCode
public function testGetAliasByPathCachedMissLanguage() {
$path_part1 = $this
->randomMachineName();
$path_part2 = $this
->randomMachineName();
$path = '/' . $path_part1 . '/' . $path_part2;
$alias = $this
->randomMachineName();
$language = $this
->setUpCurrentLanguage();
$cached_language = new Language(array(
'id' => 'de',
));
$cached_paths = array(
$cached_language
->getId() => array(
$path,
),
);
$this->cache
->expects($this
->once())
->method('get')
->with($this->cacheKey)
->will($this
->returnValue((object) array(
'data' => $cached_paths,
)));
// Simulate a request so that the preloaded paths are fetched.
$this->aliasManager
->setCacheKey($this->path);
$this->aliasWhitelist
->expects($this
->any())
->method('get')
->with($path_part1)
->will($this
->returnValue(TRUE));
// The requested language is different than the cached, so this will
// need to load.
$this->aliasStorage
->expects($this
->never())
->method('preloadPathAlias');
$this->aliasStorage
->expects($this
->once())
->method('lookupPathAlias')
->with($path, $language
->getId())
->will($this
->returnValue($alias));
$this
->assertEquals($alias, $this->aliasManager
->getAliasByPath($path));
// Call it twice to test the static cache.
$this
->assertEquals($alias, $this->aliasManager
->getAliasByPath($path));
// There is already a cache entry, so this should not write out to the
// cache.
$this->cache
->expects($this
->never())
->method('set');
$this->aliasManager
->writeCache();
}