Security update for Core, with self-updated composer
[yaffs-website] / web / core / tests / Drupal / Tests / Core / Routing / RouteMatchTest.php
1 <?php
2
3 namespace Drupal\Tests\Core\Routing;
4
5 use Drupal\Core\Routing\RouteMatch;
6 use Symfony\Cmf\Component\Routing\RouteObjectInterface;
7 use Symfony\Component\HttpFoundation\ParameterBag;
8 use Symfony\Component\HttpFoundation\Request;
9 use Symfony\Component\Routing\Route;
10
11 /**
12  * @coversDefaultClass \Drupal\Core\Routing\RouteMatch
13  * @group Routing
14  */
15 class RouteMatchTest extends RouteMatchTestBase {
16
17   /**
18    * {@inheritdoc}
19    */
20   protected function getRouteMatch($name, Route $route, array $parameters, array $raw_parameters) {
21     return new RouteMatch($name, $route, $parameters, $raw_parameters);
22   }
23
24   /**
25    * @covers ::createFromRequest
26    * @covers ::__construct
27    */
28   public function testRouteMatchFromRequest() {
29     $request = new Request();
30
31     // A request that hasn't been routed yet.
32     $route_match = RouteMatch::createFromRequest($request);
33     $this->assertNull($route_match->getRouteName());
34     $this->assertNull($route_match->getRouteObject());
35     $this->assertSame([], $route_match->getParameters()->all());
36     $this->assertNull($route_match->getParameter('foo'));
37     $this->assertSame([], $route_match->getRawParameters()->all());
38     $this->assertNull($route_match->getRawParameter('foo'));
39
40     // A routed request without parameter upcasting.
41     $route = new Route('/test-route/{foo}');
42     $request->attributes->set(RouteObjectInterface::ROUTE_NAME, 'test_route');
43     $request->attributes->set(RouteObjectInterface::ROUTE_OBJECT, $route);
44     $request->attributes->set('foo', '1');
45     $route_match = RouteMatch::createFromRequest($request);
46     $this->assertSame('test_route', $route_match->getRouteName());
47     $this->assertSame($route, $route_match->getRouteObject());
48     $this->assertSame(['foo' => '1'], $route_match->getParameters()->all());
49     $this->assertSame([], $route_match->getRawParameters()->all());
50
51     // A routed request with parameter upcasting.
52     $foo = new \stdClass();
53     $foo->value = 1;
54     $request->attributes->set('foo', $foo);
55     $request->attributes->set('_raw_variables', new ParameterBag(['foo' => '1']));
56     $route_match = RouteMatch::createFromRequest($request);
57     $this->assertSame(['foo' => $foo], $route_match->getParameters()->all());
58     $this->assertSame(['foo' => '1'], $route_match->getRawParameters()->all());
59   }
60
61 }