Mercurial > hg > isophonics-drupal-site
comparison core/modules/system/src/Tests/Routing/MockRouteProvider.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children | 7a779792577d |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4c8ae668cc8c |
---|---|
1 <?php | |
2 | |
3 namespace Drupal\system\Tests\Routing; | |
4 | |
5 use Symfony\Component\HttpFoundation\Request; | |
6 use Symfony\Component\Routing\Exception\RouteNotFoundException; | |
7 use Symfony\Component\Routing\RouteCollection; | |
8 use Drupal\Core\Routing\RouteProviderInterface; | |
9 | |
10 /** | |
11 * Easily configurable mock route provider. | |
12 */ | |
13 class MockRouteProvider implements RouteProviderInterface { | |
14 | |
15 /** | |
16 * A collection of routes for this route provider. | |
17 * | |
18 * @var RouteCollection | |
19 */ | |
20 protected $routes; | |
21 | |
22 /** | |
23 * Constructs a new MockRouteProvider. | |
24 * | |
25 * @param \Symfony\Component\Routing\RouteCollection $routes | |
26 * The route collection to use for this provider. | |
27 */ | |
28 public function __construct(RouteCollection $routes) { | |
29 $this->routes = $routes; | |
30 } | |
31 | |
32 /** | |
33 * Implements \Symfony\Cmf\Component\Routing\RouteProviderInterface::getRouteCollectionForRequest(). | |
34 * | |
35 * Simply return all routes to prevent | |
36 * \Symfony\Component\Routing\Exception\ResourceNotFoundException. | |
37 */ | |
38 public function getRouteCollectionForRequest(Request $request) { | |
39 return $this->routes; | |
40 } | |
41 | |
42 /** | |
43 * {@inheritdoc} | |
44 */ | |
45 public function getRouteByName($name) { | |
46 $routes = $this->getRoutesByNames([$name]); | |
47 if (empty($routes)) { | |
48 throw new RouteNotFoundException(sprintf('Route "%s" does not exist.', $name)); | |
49 } | |
50 | |
51 return reset($routes); | |
52 } | |
53 | |
54 /** | |
55 * {@inheritdoc} | |
56 */ | |
57 public function preLoadRoutes($names) { | |
58 // Nothing to do. | |
59 } | |
60 | |
61 /** | |
62 * {@inheritdoc} | |
63 */ | |
64 public function getRoutesByNames($names) { | |
65 $routes = []; | |
66 foreach ($names as $name) { | |
67 $routes[] = $this->routes->get($name); | |
68 } | |
69 | |
70 return $routes; | |
71 } | |
72 | |
73 /** | |
74 * {@inheritdoc} | |
75 */ | |
76 public function getRoutesByPattern($pattern) { | |
77 return new RouteCollection(); | |
78 } | |
79 | |
80 /** | |
81 * {@inheritdoc} | |
82 */ | |
83 public function getAllRoutes() { | |
84 return $this->routes->all(); | |
85 } | |
86 | |
87 /** | |
88 * {@inheritdoc} | |
89 */ | |
90 public function reset() { | |
91 $this->routes = []; | |
92 } | |
93 | |
94 } |