diff --git a/core/tests/Drupal/FunctionalTests/Core/Path/AliasManagerTest.php b/core/tests/Drupal/FunctionalTests/Core/Path/AliasManagerTest.php
new file mode 100644
index 0000000..8765a0f
--- /dev/null
+++ b/core/tests/Drupal/FunctionalTests/Core/Path/AliasManagerTest.php
@@ -0,0 +1,94 @@
+<?php
+
+namespace Drupal\FunctionalTests\Core\Path;
+
+use Drupal\Core\Language\LanguageInterface;
+use Drupal\language\Entity\ConfigurableLanguage;
+use Drupal\Tests\BrowserTestBase;
+use Symfony\Component\HttpFoundation\Request;
+
+/**
+ * Tests the functionality of AliasManager in KernelTestBase tests.
+ *
+ * @group path
+ */
+class AliasManagerTest extends BrowserTestBase {
+
+  protected static $modules = ['system', 'node', 'path', 'language'];
+
+  public function testAliasedRouteCache() {
+    $this->loginAdmin();
+    $this->createContentType(['type' => 'page']);
+    ConfigurableLanguage::createFromLangcode('ro')->save();
+
+    // Confirm that the additional language was created.
+    $this->assertEquals(2, count(\Drupal::languageManager()->getLanguages()), 'There are two languages.');
+
+    $node = $this->createAliasedNode('/test-page', 'en');
+
+    // Confirm that alias was created and saved.
+    $path = $this->container->get('path.alias_storage')
+      ->load(['alias' => '/test-page']);
+    $this->assertTrue($path, 'Alias was created.');
+
+    // Confirm that the node default route exists.
+    $request = Request::create('/node/' . $node->id());
+    $routes = $this->container->get('router.route_provider')
+      ->getRouteCollectionForRequest($request);
+    $this->assertEquals(1, $routes->count());
+
+    // Confirm that the route for the aliased path is found in default language.
+    $routes = $this->container->get('router.route_provider')
+      ->getRouteCollectionForRequest(Request::create('/test-page'));
+    $this->assertEquals(1, $routes->count());
+
+    // Confirm that the page can be reached through alias.
+    $this->drupalGet('/test-page');
+    $this->assertSession()->statusCodeEquals(200);
+
+    // Begin proving the issue.
+    // Ensure that the current request is on the language on which the test page
+    // is not translated.
+    $this->resetAll();
+    $this->createAliasedNode('/ro-page', 'ro');
+    \Drupal::requestStack()->push(Request::create('/ro/ro-page'));
+    \Drupal::languageManager()->reset();
+    $this->assertEquals('ro', \Drupal::languageManager()->getCurrentLanguage(LanguageInterface::TYPE_URL)->getId());
+
+    // Prove that the route won't be found in the current language. This happens
+    // because the alias manager won't find the alias in the current language
+    // context. In this step the route provider will cache that there are no
+    // routes for this request. With link rendering this happens right after the
+    // processInbound call in the PathValidator::getPathAttributes.
+    $routes = $this->container->get('router.route_provider')
+      ->getRouteCollectionForRequest(Request::create('/test-page'));
+    $this->assertEquals(1, $routes->count(), 'Route for the alias in ro language was not found.');
+
+    // Prove that the aliased page is not found.
+    $this->drupalGet('/test-page');
+    $this->assertSession()->statusCodeEquals(200);
+  }
+
+  protected function createAliasedNode($alias, $langcode) {
+    return $this->drupalCreateNode([
+      'type' => 'page',
+      'title' => 'Test page',
+      'path' => [
+        'alias' => $alias
+      ],
+      'langcode' => $langcode,
+    ]);
+  }
+
+  protected function addLanguage($langcode) {
+    $edit = array('predefined_langcode' => $langcode);
+    $this->drupalPostForm('admin/config/regional/language/add', $edit, 'Add language');
+    $this->container->get('language_manager')->reset();
+  }
+
+  protected function loginAdmin() {
+    $admin_user = $this->drupalCreateUser(array('administer languages', 'access administration pages', 'access content'));
+    $this->drupalLogin($admin_user);
+  }
+
+}
