@@ -361,4 +361,43 @@ public function test_responsable_with_invalid_key(): void
361
361
$ page ['props ' ]['resource ' ]
362
362
);
363
363
}
364
+
365
+ public function test_the_page_url_is_prefixed_with_the_proxy_prefix (): void
366
+ {
367
+ if (version_compare (app ()->version (), '7 ' , '< ' )) {
368
+ $ this ->markTestSkipped ('This test requires Laravel 7 or higher. ' );
369
+ }
370
+
371
+ Request::setTrustedProxies (['1.2.3.4 ' ], Request::HEADER_X_FORWARDED_PREFIX );
372
+
373
+ $ request = Request::create ('/user/123 ' , 'GET ' );
374
+ $ request ->server ->set ('REMOTE_ADDR ' , '1.2.3.4 ' );
375
+ $ request ->headers ->set ('X_FORWARDED_PREFIX ' , '/sub/directory ' );
376
+
377
+ $ user = ['name ' => 'Jonathan ' ];
378
+ $ response = new Response ('User/Edit ' , ['user ' => $ user ], 'app ' , '123 ' );
379
+ $ response = $ response ->toResponse ($ request );
380
+ $ view = $ response ->getOriginalContent ();
381
+ $ page = $ view ->getData ()['page ' ];
382
+
383
+ $ this ->assertInstanceOf (BaseResponse::class, $ response );
384
+ $ this ->assertInstanceOf (View::class, $ view );
385
+
386
+ $ this ->assertSame ('/sub/directory/user/123 ' , $ page ['url ' ]);
387
+ }
388
+
389
+ public function test_the_page_url_doesnt_double_up (): void
390
+ {
391
+ $ request = Request::create ('/subpath/product/123 ' , 'GET ' , [], [], [], [
392
+ 'SCRIPT_FILENAME ' => '/project/public/index.php ' ,
393
+ 'SCRIPT_NAME ' => '/subpath/index.php ' ,
394
+ ]);
395
+ $ request ->headers ->add (['X-Inertia ' => 'true ' ]);
396
+
397
+ $ response = new Response ('Product/Show ' , []);
398
+ $ response = $ response ->toResponse ($ request );
399
+ $ page = $ response ->getData ();
400
+
401
+ $ this ->assertSame ('/subpath/product/123 ' , $ page ->url );
402
+ }
364
403
}
0 commit comments