1616use Symfony \Bundle \WebProfilerBundle \EventListener \WebDebugToolbarListener ;
1717use Symfony \Component \DependencyInjection \ContainerBuilder ;
1818use Symfony \Component \DependencyInjection \Definition ;
19+ use Symfony \Component \DependencyInjection \Reference ;
1920use Symfony \Component \HttpFoundation \RequestStack ;
2021use Symfony \Component \HttpKernel \DataCollector \DumpDataCollector ;
2122
@@ -26,35 +27,51 @@ public function testProcessWithoutFileLinkFormatParameter()
2627$ container =new ContainerBuilder ();
2728$ container ->addCompilerPass (new DumpDataCollectorPass ());
2829
29- $ definition =new Definition (DumpDataCollector::class, [null ,null ,null ,null ]);
30+ $ definition =new Definition (DumpDataCollector::class, [null ,null ,new Reference ( ' .virtual_request_stack ' ) ,null ]);
3031$ container ->setDefinition ('data_collector.dump ' ,$ definition );
3132
3233$ container ->compile ();
3334
3435$ this ->assertNull ($ definition ->getArgument (1 ));
3536 }
3637
37- public function testProcessWithToolbarEnabled ()
38+ public function testProcessWithToolbarEnabledAndVirtualRequestStackPresent ()
3839 {
3940$ container =new ContainerBuilder ();
41+ $ container ->register ('request_stack ' , RequestStack::class);
42+ $ container ->register ('.virtual_request_stack ' , RequestStack::class);
4043$ container ->addCompilerPass (new DumpDataCollectorPass ());
41- $ requestStack =new RequestStack ();
4244
43- $ definition =new Definition (DumpDataCollector::class, [null ,null ,null ,$ requestStack ]);
45+ $ definition =new Definition (DumpDataCollector::class, [null ,null ,null ,new Reference ( ' .virtual_request_stack ' ) ]);
4446$ container ->setDefinition ('data_collector.dump ' ,$ definition );
4547$ container ->setParameter ('web_profiler.debug_toolbar.mode ' , WebDebugToolbarListener::ENABLED );
4648
4749$ container ->compile ();
4850
49- $ this ->assertSame ($ requestStack ,$ definition ->getArgument (3 ));
51+ $ this ->assertEquals (new Reference ('.virtual_request_stack ' ),$ definition ->getArgument (3 ));
52+ }
53+
54+ public function testProcessWithToolbarEnabledAndVirtualRequestStackNotPresent ()
55+ {
56+ $ container =new ContainerBuilder ();
57+ $ container ->register ('request_stack ' , RequestStack::class);
58+ $ container ->addCompilerPass (new DumpDataCollectorPass ());
59+
60+ $ definition =new Definition (DumpDataCollector::class, [null ,null ,null ,new Reference ('.virtual_request_stack ' )]);
61+ $ container ->setDefinition ('data_collector.dump ' ,$ definition );
62+ $ container ->setParameter ('web_profiler.debug_toolbar.mode ' , WebDebugToolbarListener::ENABLED );
63+
64+ $ container ->compile ();
65+
66+ $ this ->assertEquals (new Reference ('request_stack ' ),$ definition ->getArgument (3 ));
5067 }
5168
5269public function testProcessWithToolbarDisabled ()
5370 {
5471$ container =new ContainerBuilder ();
5572$ container ->addCompilerPass (new DumpDataCollectorPass ());
5673
57- $ definition =new Definition (DumpDataCollector::class, [null ,null ,null ,new RequestStack ()]);
74+ $ definition =new Definition (DumpDataCollector::class, [null ,null ,new Reference ( ' .virtual_request_stack ' ) ,new RequestStack ()]);
5875$ container ->setDefinition ('data_collector.dump ' ,$ definition );
5976$ container ->setParameter ('web_profiler.debug_toolbar.mode ' , WebDebugToolbarListener::DISABLED );
6077
@@ -68,7 +85,7 @@ public function testProcessWithoutToolbar()
6885$ container =new ContainerBuilder ();
6986$ container ->addCompilerPass (new DumpDataCollectorPass ());
7087
71- $ definition =new Definition (DumpDataCollector::class, [null ,null ,null ,new RequestStack ()]);
88+ $ definition =new Definition (DumpDataCollector::class, [null ,null ,new Reference ( ' .virtual_request_stack ' ) ,new RequestStack ()]);
7289$ container ->setDefinition ('data_collector.dump ' ,$ definition );
7390
7491$ container ->compile ();