@@ -81,6 +81,7 @@ public function testProcessShouldHandleUrlsCorrectly(
8181 bool $ isUriInBlocklistResult ,
8282 int $ statusCode ,
8383 TrailingSlashModeEnum $ trailingSlashMode ,
84+ int $ handlerStatusCode = 200 ,
8485 ): void {
8586 $ originalUri = new Uri ($ originalUrl );
8687 $ expectedUri = new Uri ($ expectedUrl );
@@ -96,9 +97,19 @@ public function testProcessShouldHandleUrlsCorrectly(
9697
9798 $ this ->requestMock ->expects ($ this ->once ())->method ('getUri ' )->willReturn ($ originalUri );
9899
99- if ($ originalUrl === $ expectedUrl ) {
100+ $ pathChanged = $ originalUrl !== $ expectedUrl ;
101+
102+ if (!$ pathChanged ) {
103+ $ this ->requestHandlerMock ->method ('handle ' )->willReturn ($ this ->responseMock );
104+ } elseif ($ handlerStatusCode >= 400 ) {
105+ $ this ->responseMock ->method ('getStatusCode ' )->willReturn ($ handlerStatusCode );
100106 $ this ->requestHandlerMock ->method ('handle ' )->willReturn ($ this ->responseMock );
107+ $ this ->responseFactoryMock ->expects ($ this ->never ())->method ('createResponse ' );
101108 } else {
109+ $ handlerResponseMock = $ this ->createMock (ResponseInterface::class);
110+ $ handlerResponseMock ->method ('getStatusCode ' )->willReturn ($ handlerStatusCode );
111+ $ this ->requestHandlerMock ->method ('handle ' )->willReturn ($ handlerResponseMock );
112+
102113 $ this ->responseFactoryMock
103114 ->expects ($ this ->once ())
104115 ->method ('createResponse ' )
@@ -169,6 +180,16 @@ public static function urlsDataProvider(): array
169180 'statusCode ' => 301 ,
170181 'trailingSlashMode ' => TrailingSlashModeEnum::REMOVE ,
171182 ],
183+ [
184+ 'originalUrl ' => 'https://local.dev/missing ' ,
185+ 'expectedUrl ' => 'https://local.dev/missing/ ' ,
186+ 'isTrailingSlashEnabledResult ' => true ,
187+ 'isToLowerCaseEnabledResult ' => false ,
188+ 'isUriInBlocklistResult ' => false ,
189+ 'statusCode ' => 301 ,
190+ 'trailingSlashMode ' => TrailingSlashModeEnum::ADD ,
191+ 'handlerStatusCode ' => 404 ,
192+ ],
172193 ];
173194 }
174195}
0 commit comments