diff --git a/core/modules/path_alias/src/AliasManager.php b/core/modules/path_alias/src/AliasManager.php index 0e2df806792d..9eea31934b60 100644 --- a/core/modules/path_alias/src/AliasManager.php +++ b/core/modules/path_alias/src/AliasManager.php @@ -221,7 +221,7 @@ class AliasManager implements AliasManagerInterface { if (!empty($this->preloadedPathLookups[$langcode])) { $this->lookupMap[$langcode] = $this->pathAliasRepository->preloadPathAlias($this->preloadedPathLookups[$langcode], $langcode); // Keep a record of paths with no alias to avoid querying twice. - $this->noAlias[$langcode] = array_flip(array_diff_key($this->preloadedPathLookups[$langcode], array_keys($this->lookupMap[$langcode]))); + $this->noAlias[$langcode] = array_flip(array_diff($this->preloadedPathLookups[$langcode], array_keys($this->lookupMap[$langcode]))); } } diff --git a/core/modules/path_alias/tests/src/Unit/AliasManagerTest.php b/core/modules/path_alias/tests/src/Unit/AliasManagerTest.php index 1bff1a5d80ae..a03417c3517c 100644 --- a/core/modules/path_alias/tests/src/Unit/AliasManagerTest.php +++ b/core/modules/path_alias/tests/src/Unit/AliasManagerTest.php @@ -259,7 +259,14 @@ class AliasManagerTest extends UnitTestCase { $language = $this->setUpCurrentLanguage(); - $cached_paths = [$language->getId() => [$path]]; + // Use a set of cached paths where the tested path is in any position, not + // only in the first one. + $cached_paths = [ + $language->getId() => [ + '/another/path', + $path, + ], + ]; $this->cache->expects($this->once()) ->method('get') ->with($this->cacheKey)