/** * Tests the getAliasByPath cache with an unpreloaded path with alias. * * @covers ::getAliasByPath * @covers ::writeCache */ public function testGetAliasByPathUncachedMissWithAlias() { $path_part1 = $this->randomMachineName(); $path_part2 = $this->randomMachineName(); $path = $path_part1 . '/' . $path_part2; $cached_path = $this->randomMachineName(); $cached_no_alias_path = $this->randomMachineName(); $cached_alias = $this->randomMachineName(); $new_alias = $this->randomMachineName(); $language = $this->setUpCurrentLanguage(); $cached_paths = array($language->getId() => array($cached_path, $cached_no_alias_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)); $this->aliasStorage->expects($this->once())->method('preloadPathAlias')->with($cached_paths[$language->getId()], $language->getId())->will($this->returnValue(array($cached_path => $cached_alias))); $this->aliasStorage->expects($this->once())->method('lookupPathAlias')->with($path, $language->getId())->will($this->returnValue($new_alias)); $this->assertEquals($new_alias, $this->aliasManager->getAliasByPath($path)); // Call it twice to test the static cache. $this->assertEquals($new_alias, $this->aliasManager->getAliasByPath($path)); // This needs to write out the cache. $expected_new_cache = array($language->getId() => array($cached_path, $path, $cached_no_alias_path)); $this->cache->expects($this->once())->method('set')->with($this->cacheKey, $expected_new_cache, (int) $_SERVER['REQUEST_TIME'] + 60 * 60 * 24); $this->aliasManager->writeCache(); }
/** * Tests the getAliasByPath cache with an unpreloaded path with alias. * * @covers ::getAliasByPath * @covers ::writeCache */ public function testGetAliasByPathUncachedMissWithAlias() { $path_part1 = $this->randomMachineName(); $path_part2 = $this->randomMachineName(); $path = '/' . $path_part1 . '/' . $path_part2; $cached_path = $this->randomMachineName(); $cached_no_alias_path = $this->randomMachineName(); $cached_alias = $this->randomMachineName(); $new_alias = $this->randomMachineName(); $language = $this->setUpCurrentLanguage(); $cached_paths = array($language->getId() => array($cached_path, $cached_no_alias_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)); $this->aliasStorage->expects($this->once())->method('preloadPathAlias')->with($cached_paths[$language->getId()], $language->getId())->will($this->returnValue(array($cached_path => $cached_alias))); $this->aliasStorage->expects($this->once())->method('lookupPathAlias')->with($path, $language->getId())->will($this->returnValue($new_alias)); $this->assertEquals($new_alias, $this->aliasManager->getAliasByPath($path)); // Call it twice to test the static cache. $this->assertEquals($new_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(); }