Chris@0: '/hi/llamma:party', Chris@0: 'path_encoded_test.atsign' => '/bloggy/@Dries', Chris@0: 'path_encoded_test.parens' => '/cat(box)', Chris@0: ]; Chris@0: foreach ($route_paths as $route_name => $path) { Chris@0: $this->drupalGet(Url::fromRoute($route_name)); Chris@0: $this->assertSession()->pageTextContains('PathEncodedTestController works'); Chris@0: } Chris@0: } Chris@0: Chris@0: public function testAliasToEncoded() { Chris@0: $route_paths = [ Chris@0: 'path_encoded_test.colon' => '/hi/llamma:party', Chris@0: 'path_encoded_test.atsign' => '/bloggy/@Dries', Chris@0: 'path_encoded_test.parens' => '/cat(box)', Chris@0: ]; Chris@0: /** @var \Drupal\Core\Path\AliasStorageInterface $alias_storage */ Chris@0: $alias_storage = $this->container->get('path.alias_storage'); Chris@0: $aliases = []; Chris@0: foreach ($route_paths as $route_name => $path) { Chris@0: $aliases[$route_name] = $this->randomMachineName(); Chris@0: $alias_storage->save($path, '/' . $aliases[$route_name]); Chris@0: } Chris@0: foreach ($route_paths as $route_name => $path) { Chris@0: // The alias may be only a suffix of the generated path when the test is Chris@0: // run with Drupal installed in a subdirectory. Chris@0: $this->assertRegExp('@/' . rawurlencode($aliases[$route_name]) . '$@', Url::fromRoute($route_name)->toString()); Chris@0: $this->drupalGet(Url::fromRoute($route_name)); Chris@0: $this->assertSession()->pageTextContains('PathEncodedTestController works'); Chris@0: } Chris@0: } Chris@0: Chris@0: }