22
22
use Symfony \Component \EventDispatcher \EventDispatcher ;
23
23
use Symfony \Component \HttpKernel \DataCollector \DumpDataCollector ;
24
24
use Symfony \Component \HttpKernel \KernelInterface ;
25
+ use Symfony \Component \HttpKernel \Profiler \Profile ;
25
26
use Symfony \Component \HttpKernel \Profiler \Profiler ;
26
27
use Symfony \Component \HttpKernel \Profiler \ProfilerStorageInterface ;
28
+ use Symfony \Component \Routing \RequestContext ;
29
+ use Symfony \Component \Routing \RouteCollection ;
27
30
use Symfony \Component \Routing \RouterInterface ;
28
31
29
32
class WebProfilerExtensionTest extends TestCase
@@ -58,15 +61,11 @@ protected function setUp(): void
58
61
59
62
$ this ->kernel = $ this ->createMock (KernelInterface::class);
60
63
61
- $ profiler = $ this ->createMock (Profiler::class);
62
- $ profilerStorage = $ this ->createMock (ProfilerStorageInterface::class);
63
- $ router = $ this ->createMock (RouterInterface::class);
64
-
65
64
$ this ->container = new ContainerBuilder ();
66
65
$ this ->container ->register ('data_collector.dump ' , DumpDataCollector::class)->setPublic (true );
67
66
$ this ->container ->register ('error_handler.error_renderer.html ' , HtmlErrorRenderer::class)->setPublic (true );
68
67
$ this ->container ->register ('event_dispatcher ' , EventDispatcher::class)->setPublic (true );
69
- $ this ->container ->register ('router ' , \get_class ( $ router ) )->setPublic (true );
68
+ $ this ->container ->register ('router ' , Router::class )->setPublic (true );
70
69
$ this ->container ->register ('twig ' , 'Twig\Environment ' )->setPublic (true );
71
70
$ this ->container ->register ('twig_loader ' , 'Twig\Loader\ArrayLoader ' )->addArgument ([])->setPublic (true );
72
71
$ this ->container ->register ('twig ' , 'Twig\Environment ' )->addArgument (new Reference ('twig_loader ' ))->setPublic (true );
@@ -78,9 +77,9 @@ protected function setUp(): void
78
77
$ this ->container ->setParameter ('kernel.charset ' , 'UTF-8 ' );
79
78
$ this ->container ->setParameter ('debug.file_link_format ' , null );
80
79
$ this ->container ->setParameter ('profiler.class ' , ['Symfony \\Component \\HttpKernel \\Profiler \\Profiler ' ]);
81
- $ this ->container ->register ('profiler ' , \get_class ( $ profiler ) )
80
+ $ this ->container ->register ('profiler ' , Profiler::class )
82
81
->setPublic (true )
83
- ->addArgument (new Definition (\get_class ( $ profilerStorage ) ));
82
+ ->addArgument (new Definition (NullProfilerStorage::class ));
84
83
$ this ->container ->setParameter ('data_collector.templates ' , []);
85
84
$ this ->container ->set ('kernel ' , $ this ->kernel );
86
85
$ this ->container ->addCompilerPass (new RegisterListenersPass ());
@@ -212,3 +211,54 @@ private function getCompiledContainer()
212
211
return $ this ->container ;
213
212
}
214
213
}
214
+
215
+ class Router implements RouterInterface
216
+ {
217
+ private $ context ;
218
+
219
+ public function setContext (RequestContext $ context ): void
220
+ {
221
+ $ this ->context = $ context ;
222
+ }
223
+
224
+ public function getContext (): RequestContext
225
+ {
226
+ return $ this ->context ;
227
+ }
228
+
229
+ public function getRouteCollection (): RouteCollection
230
+ {
231
+ return new RouteCollection ();
232
+ }
233
+
234
+ public function generate (string $ name , array $ parameters = [], int $ referenceType = self ::ABSOLUTE_PATH ): string
235
+ {
236
+ }
237
+
238
+ public function match (string $ pathinfo ): array
239
+ {
240
+ return [];
241
+ }
242
+ }
243
+
244
+ class NullProfilerStorage implements ProfilerStorageInterface
245
+ {
246
+ public function find (?string $ ip , ?string $ url , ?int $ limit , ?string $ method , ?int $ start = null , ?int $ end = null ): array
247
+ {
248
+ return [];
249
+ }
250
+
251
+ public function read (string $ token ): ?Profile
252
+ {
253
+ return null ;
254
+ }
255
+
256
+ public function write (Profile $ profile ): bool
257
+ {
258
+ return true ;
259
+ }
260
+
261
+ public function purge ()
262
+ {
263
+ }
264
+ }
0 commit comments