@@ -46,19 +46,17 @@ protected function setUp(): void
4646 $ this ->logger = $ this ->createMock (LoggerInterface::class);
4747
4848 $ this ->session = $ this ->createMock (SessionInterface::class);
49- $ this ->request = $ this -> createMock ( Request::class );
50- $ this ->request ->attributes = new ParameterBag ([ '_stateless ' => false ] );
51- $ this ->request ->expects ( $ this -> any ())-> method ( ' getSession ' )-> willReturn ($ this ->session );
49+ $ this ->request = Request::create ( ' / ' );
50+ $ this ->request ->attributes -> set ( '_stateless ' , false );
51+ $ this ->request ->setSession ($ this ->session );
5252 $ this ->exception = $ this ->getMockBuilder (AuthenticationException::class)->onlyMethods (['getMessage ' ])->getMock ();
5353 }
5454
5555 public function testForward ()
5656 {
5757 $ options = ['failure_forward ' => true ];
5858
59- $ subRequest = $ this ->getRequest ();
60- $ subRequest ->attributes ->expects ($ this ->once ())
61- ->method ('set ' )->with (SecurityRequestAttributes::AUTHENTICATION_ERROR , $ this ->exception );
59+ $ subRequest = Request::create ('/ ' );
6260 $ this ->httpUtils ->expects ($ this ->once ())
6361 ->method ('createRequest ' )->with ($ this ->request , '/login ' )
6462 ->willReturn ($ subRequest );
@@ -67,6 +65,7 @@ public function testForward()
6765 $ result = $ handler ->onAuthenticationFailure ($ this ->request , $ this ->exception );
6866
6967 $ this ->assertSame ($ this ->response , $ result );
68+ $ this ->assertSame ($ this ->exception , $ subRequest ->attributes ->get (SecurityRequestAttributes::AUTHENTICATION_ERROR ));
7069 }
7170
7271 public function testRedirect ()
@@ -106,9 +105,7 @@ public function testExceptionIsPassedInRequestOnForward()
106105 {
107106 $ options = ['failure_forward ' => true ];
108107
109- $ subRequest = $ this ->getRequest ();
110- $ subRequest ->attributes ->expects ($ this ->once ())
111- ->method ('set ' )->with (SecurityRequestAttributes::AUTHENTICATION_ERROR , $ this ->exception );
108+ $ subRequest = Request::create ('/ ' );
112109
113110 $ this ->httpUtils ->expects ($ this ->once ())
114111 ->method ('createRequest ' )->with ($ this ->request , '/login ' )
@@ -118,6 +115,8 @@ public function testExceptionIsPassedInRequestOnForward()
118115
119116 $ handler = new DefaultAuthenticationFailureHandler ($ this ->httpKernel , $ this ->httpUtils , $ options , $ this ->logger );
120117 $ handler ->onAuthenticationFailure ($ this ->request , $ this ->exception );
118+
119+ $ this ->assertSame ($ this ->exception , $ subRequest ->attributes ->get (SecurityRequestAttributes::AUTHENTICATION_ERROR ));
121120 }
122121
123122 public function testRedirectIsLogged ()
@@ -137,7 +136,7 @@ public function testForwardIsLogged()
137136
138137 $ this ->httpUtils ->expects ($ this ->once ())
139138 ->method ('createRequest ' )->with ($ this ->request , '/login ' )
140- ->willReturn ($ this -> getRequest ( ));
139+ ->willReturn (Request:: create ( ' / ' ));
141140
142141 $ this ->logger
143142 ->expects ($ this ->once ())
@@ -161,9 +160,7 @@ public function testFailurePathCanBeOverwritten()
161160
162161 public function testFailurePathCanBeOverwrittenWithRequest ()
163162 {
164- $ this ->request ->expects ($ this ->once ())
165- ->method ('get ' )->with ('_failure_path ' )
166- ->willReturn ('/auth/login ' );
163+ $ this ->request ->attributes ->set ('_failure_path ' , '/auth/login ' );
167164
168165 $ this ->httpUtils ->expects ($ this ->once ())
169166 ->method ('createRedirectResponse ' )->with ($ this ->request , '/auth/login ' );
@@ -174,9 +171,7 @@ public function testFailurePathCanBeOverwrittenWithRequest()
174171
175172 public function testFailurePathCanBeOverwrittenWithNestedAttributeInRequest ()
176173 {
177- $ this ->request ->expects ($ this ->once ())
178- ->method ('get ' )->with ('_failure_path ' )
179- ->willReturn (['value ' => '/auth/login ' ]);
174+ $ this ->request ->attributes ->set ('_failure_path ' , ['value ' => '/auth/login ' ]);
180175
181176 $ this ->httpUtils ->expects ($ this ->once ())
182177 ->method ('createRedirectResponse ' )->with ($ this ->request , '/auth/login ' );
@@ -189,9 +184,7 @@ public function testFailurePathParameterCanBeOverwritten()
189184 {
190185 $ options = ['failure_path_parameter ' => '_my_failure_path ' ];
191186
192- $ this ->request ->expects ($ this ->once ())
193- ->method ('get ' )->with ('_my_failure_path ' )
194- ->willReturn ('/auth/login ' );
187+ $ this ->request ->attributes ->set ('_my_failure_path ' , '/auth/login ' );
195188
196189 $ this ->httpUtils ->expects ($ this ->once ())
197190 ->method ('createRedirectResponse ' )->with ($ this ->request , '/auth/login ' );
@@ -204,9 +197,7 @@ public function testFailurePathFromRequestWithInvalidUrl()
204197 {
205198 $ options = ['failure_path_parameter ' => '_my_failure_path ' ];
206199
207- $ this ->request ->expects ($ this ->once ())
208- ->method ('get ' )->with ('_my_failure_path ' )
209- ->willReturn ('some_route_name ' );
200+ $ this ->request ->attributes ->set ('_my_failure_path ' , 'some_route_name ' );
210201
211202 $ this ->logger ->expects ($ this ->exactly (2 ))
212203 ->method ('debug ' )
@@ -229,22 +220,12 @@ public function testAbsoluteUrlRedirectionFromRequest()
229220 {
230221 $ options = ['failure_path_parameter ' => '_my_failure_path ' ];
231222
232- $ this ->request ->expects ($ this ->once ())
233- ->method ('get ' )->with ('_my_failure_path ' )
234- ->willReturn ('https://localhost/some-path ' );
223+ $ this ->request ->attributes ->set ('_my_failure_path ' , 'https://localhost/some-path ' );
235224
236225 $ this ->httpUtils ->expects ($ this ->once ())
237226 ->method ('createRedirectResponse ' )->with ($ this ->request , 'https://localhost/some-path ' );
238227
239228 $ handler = new DefaultAuthenticationFailureHandler ($ this ->httpKernel , $ this ->httpUtils , $ options , $ this ->logger );
240229 $ handler ->onAuthenticationFailure ($ this ->request , $ this ->exception );
241230 }
242-
243- private function getRequest ()
244- {
245- $ request = $ this ->createMock (Request::class);
246- $ request ->attributes = $ this ->createMock (ParameterBag::class);
247-
248- return $ request ;
249- }
250231}
0 commit comments