From 147836f8d697beb69b39f067c04150928268b035 Mon Sep 17 00:00:00 2001 From: Wilmer Arambula Date: Sat, 9 Aug 2025 06:17:56 -0400 Subject: [PATCH 1/2] refactor(tests): Move server parameter tests to new `ServerParamsPsr7Test` class for better organization and clarity. --- tests/adapter/ServerParamsPsr7Test.php | 106 +++++++++++++++++++++ tests/adapter/ServerRequestAdapterTest.php | 90 ----------------- 2 files changed, 106 insertions(+), 90 deletions(-) create mode 100644 tests/adapter/ServerParamsPsr7Test.php diff --git a/tests/adapter/ServerParamsPsr7Test.php b/tests/adapter/ServerParamsPsr7Test.php new file mode 100644 index 00000000..58aae0b4 --- /dev/null +++ b/tests/adapter/ServerParamsPsr7Test.php @@ -0,0 +1,106 @@ + '192.168.1.100', + 'REQUEST_TIME' => '1234567890', + 'SERVER_NAME' => 'old.example.com', + ]; + + $request = new Request(); + + $request->setPsr7Request( + FactoryHelper::createRequest('GET', 'https://old.example.com/api'), + ); + + self::assertEmpty( + $request->getServerParams(), + 'Server parameters should be an empty array when using a PSR-7 request, ignoring global $_SERVER.', + ); + } + + public function testReturnServerParamsFromPsr7RequestOverridesGlobalServer(): void + { + $_SERVER = [ + 'REMOTE_ADDR' => '192.168.1.100', + 'REQUEST_TIME' => '1234567890', + 'SERVER_NAME' => 'old.example.com', + ]; + + $request = new Request(); + + $request->setPsr7Request( + FactoryHelper::createRequest( + 'GET', + 'https://old.example.com/api', + serverParams: [ + 'HTTP_X_FORWARDED_FOR' => '203.0.113.1', + 'REMOTE_ADDR' => '10.0.0.50', + 'REQUEST_TIME' => null, + 'SERVER_NAME' => 'new.example.com', + ], + ), + ); + + $serverParams = $request->getServerParams(); + + self::assertSame( + '10.0.0.50', + $serverParams['REMOTE_ADDR'] ?? null, + "Server parameter 'REMOTE_ADDR' should be taken from PSR-7 'serverParams', not from global \$_SERVER.", + ); + self::assertNull( + $serverParams['REQUEST_TIME'] ?? null, + "Server parameter 'REQUEST_TIME' should be 'null' when not set in PSR-7 'serverParams', even if present " . + 'in global $_SERVER.', + ); + } + + public function testReturnServerParamsFromPsr7RequestWhenAdapterIsSet(): void + { + $request = new Request(); + + $request->setPsr7Request( + FactoryHelper::createRequest( + 'GET', + 'https://old.example.com/api', + serverParams: [ + 'HTTP_X_FORWARDED_FOR' => '203.0.113.1', + 'REQUEST_TIME' => '1234567890', + ], + ), + ); + + $serverParams = $request->getServerParams(); + + self::assertSame( + '203.0.113.1', + $serverParams['HTTP_X_FORWARDED_FOR'] ?? null, + "'HTTP_X_FORWARDED_FOR' should match the value from PSR-7 'serverParams'.", + ); + self::assertSame( + '1234567890', + $serverParams['REQUEST_TIME'] ?? null, + "'REQUEST_TIME' should match the value from PSR-7 'serverParams'.", + ); + self::assertNull( + $serverParams['REMOTE_ADDR'] ?? null, + "'REMOTE_ADDR' should not be set when not present in PSR-7 'serverParams'.", + ); + } +} diff --git a/tests/adapter/ServerRequestAdapterTest.php b/tests/adapter/ServerRequestAdapterTest.php index 43e63514..2690a9e3 100644 --- a/tests/adapter/ServerRequestAdapterTest.php +++ b/tests/adapter/ServerRequestAdapterTest.php @@ -587,26 +587,6 @@ public function testReturnEmptyScriptUrlWhenAdapterIsSetInWorkerMode(): void ); } - public function testReturnEmptyServerParamsWhenAdapterIsSet(): void - { - $_SERVER = [ - 'REMOTE_ADDR' => '192.168.1.100', - 'REQUEST_TIME' => '1234567890', - 'SERVER_NAME' => 'old.example.com', - ]; - - $request = new Request(); - - $request->setPsr7Request( - FactoryHelper::createRequest('GET', 'https://old.example.com/api'), - ); - - self::assertEmpty( - $request->getServerParams(), - 'Server parameters should be an empty array when using a PSR-7 request, ignoring global $_SERVER.', - ); - } - public function testReturnEmptyStringFromHeaderWhenCsrfHeaderPresentButEmpty(): void { $request = new Request(); @@ -1550,76 +1530,6 @@ public function testReturnServerParamFromPsr7RequestWhenAdapterIsSet(): void ); } - public function testReturnServerParamsFromPsr7RequestOverridesGlobalServer(): void - { - $_SERVER = [ - 'REMOTE_ADDR' => '192.168.1.100', - 'REQUEST_TIME' => '1234567890', - 'SERVER_NAME' => 'old.example.com', - ]; - - $request = new Request(); - - $request->setPsr7Request( - FactoryHelper::createRequest( - 'GET', - 'https://old.example.com/api', - serverParams: [ - 'HTTP_X_FORWARDED_FOR' => '203.0.113.1', - 'REMOTE_ADDR' => '10.0.0.50', - 'REQUEST_TIME' => null, - 'SERVER_NAME' => 'new.example.com', - ], - ), - ); - - $serverParams = $request->getServerParams(); - - self::assertSame( - '10.0.0.50', - $serverParams['REMOTE_ADDR'] ?? null, - "Server parameter 'REMOTE_ADDR' should be taken from PSR-7 'serverParams', not from global \$_SERVER.", - ); - self::assertNull( - $serverParams['REQUEST_TIME'] ?? null, - "Server parameter 'REQUEST_TIME' should be 'null' when not set in PSR-7 'serverParams', even if present " . - 'in global $_SERVER.', - ); - } - - public function testReturnServerParamsFromPsr7RequestWhenAdapterIsSet(): void - { - $request = new Request(); - - $request->setPsr7Request( - FactoryHelper::createRequest( - 'GET', - 'https://old.example.com/api', - serverParams: [ - 'HTTP_X_FORWARDED_FOR' => '203.0.113.1', - 'REQUEST_TIME' => '1234567890', - ], - ), - ); - - $serverParams = $request->getServerParams(); - - self::assertSame( - '203.0.113.1', - $serverParams['HTTP_X_FORWARDED_FOR'] ?? null, - "'HTTP_X_FORWARDED_FOR' should match the value from PSR-7 'serverParams'.", - ); - self::assertSame( - '1234567890', - $serverParams['REQUEST_TIME'] ?? null, - "'REQUEST_TIME' should match the value from PSR-7 'serverParams'.", - ); - self::assertNull( - $serverParams['REMOTE_ADDR'] ?? null, - "'REMOTE_ADDR' should not be set when not present in PSR-7 'serverParams'.", - ); - } - public function testReturnUploadedFilesRecursivelyConvertsNestedArrays(): void { $file1 = dirname(__DIR__) . '/support/stub/files/test1.txt'; From 017d078e306dc476d78e12e26bb689a0ee3c3ec5 Mon Sep 17 00:00:00 2001 From: Wilmer Arambula Date: Sat, 9 Aug 2025 06:30:10 -0400 Subject: [PATCH 2/2] Apply fixed review coderabbitai nitpick comments. --- tests/adapter/ServerParamsPsr7Test.php | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/tests/adapter/ServerParamsPsr7Test.php b/tests/adapter/ServerParamsPsr7Test.php index 58aae0b4..90d10f0c 100644 --- a/tests/adapter/ServerParamsPsr7Test.php +++ b/tests/adapter/ServerParamsPsr7Test.php @@ -59,6 +59,16 @@ public function testReturnServerParamsFromPsr7RequestOverridesGlobalServer(): vo $serverParams = $request->getServerParams(); + self::assertCount( + 4, + $serverParams, + "Only parameters present in PSR-7 'serverParams' should be returned.", + ); + self::assertSame( + '203.0.113.1', + $serverParams['HTTP_X_FORWARDED_FOR'] ?? null, + "'HTTP_X_FORWARDED_FOR' should be taken from PSR-7 'serverParams'.", + ); self::assertSame( '10.0.0.50', $serverParams['REMOTE_ADDR'] ?? null, @@ -66,8 +76,13 @@ public function testReturnServerParamsFromPsr7RequestOverridesGlobalServer(): vo ); self::assertNull( $serverParams['REQUEST_TIME'] ?? null, - "Server parameter 'REQUEST_TIME' should be 'null' when not set in PSR-7 'serverParams', even if present " . - 'in global $_SERVER.', + "Server parameter 'REQUEST_TIME' should be 'null' when explicitly set to 'null' in PSR-7 'serverParams', " . + 'even if present in global $_SERVER.', + ); + self::assertSame( + 'new.example.com', + $serverParams['SERVER_NAME'] ?? null, + "'SERVER_NAME' should be taken from PSR-7 'serverParams'.", ); } @@ -88,6 +103,11 @@ public function testReturnServerParamsFromPsr7RequestWhenAdapterIsSet(): void $serverParams = $request->getServerParams(); + self::assertCount( + 2, + $serverParams, + "Only parameters present in PSR-7 'serverParams' should be returned.", + ); self::assertSame( '203.0.113.1', $serverParams['HTTP_X_FORWARDED_FOR'] ?? null,