From f4dc7aa95cef0093a5d9ba44c083517149900dbb Mon Sep 17 00:00:00 2001 From: Nyholm Date: Fri, 3 Aug 2018 00:40:41 +0200 Subject: [PATCH 1/6] Make sure we validate server version according to rfc2145 --- src/HttpBaseTest.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/HttpBaseTest.php b/src/HttpBaseTest.php index 4d08f6e..c3b8269 100644 --- a/src/HttpBaseTest.php +++ b/src/HttpBaseTest.php @@ -221,7 +221,8 @@ protected function assertResponse($response, array $options = []) $options = array_merge($this->defaultOptions, $options); - $this->assertSame($options['protocolVersion'], $response->getProtocolVersion()); + // The response version may be greater or equal to the request version. See https://tools.ietf.org/html/rfc2145#section-2.3 + $this->assertTrue(substr($options['protocolVersion'], 0, 1) === substr($response->getProtocolVersion(), 0, 1) &&1 !== version_compare($options['protocolVersion'], $response->getProtocolVersion())); $this->assertSame($options['statusCode'], $response->getStatusCode()); $this->assertSame($options['reasonPhrase'], $response->getReasonPhrase()); From e5584606f5886eedb540bcdbd8b951be1065ab66 Mon Sep 17 00:00:00 2001 From: Nyholm Date: Fri, 3 Aug 2018 10:41:07 +0200 Subject: [PATCH 2/6] Minor --- src/HttpBaseTest.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/HttpBaseTest.php b/src/HttpBaseTest.php index c3b8269..c4eb6d4 100644 --- a/src/HttpBaseTest.php +++ b/src/HttpBaseTest.php @@ -254,7 +254,8 @@ protected function assertRequest( ) { $request = $this->getRequest(); - $this->assertSame($protocolVersion, substr($request['SERVER']['SERVER_PROTOCOL'], 5)); + $actualProtocolVersion = substr($request['SERVER']['SERVER_PROTOCOL'], 5); + $this->assertTrue(substr($protocolVersion, 0, 1) === substr($actualProtocolVersion, 0, 1) &&1 !== version_compare($protocolVersion, $actualProtocolVersion)); $this->assertSame($method, $request['SERVER']['REQUEST_METHOD']); $defaultHeaders = [ From 16cc2559908b629620019e2068649b28e9720f49 Mon Sep 17 00:00:00 2001 From: Nyholm Date: Fri, 3 Aug 2018 10:43:05 +0200 Subject: [PATCH 3/6] cs --- src/HttpBaseTest.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/HttpBaseTest.php b/src/HttpBaseTest.php index c4eb6d4..e161ed6 100644 --- a/src/HttpBaseTest.php +++ b/src/HttpBaseTest.php @@ -222,7 +222,7 @@ protected function assertResponse($response, array $options = []) $options = array_merge($this->defaultOptions, $options); // The response version may be greater or equal to the request version. See https://tools.ietf.org/html/rfc2145#section-2.3 - $this->assertTrue(substr($options['protocolVersion'], 0, 1) === substr($response->getProtocolVersion(), 0, 1) &&1 !== version_compare($options['protocolVersion'], $response->getProtocolVersion())); + $this->assertTrue(substr($options['protocolVersion'], 0, 1) === substr($response->getProtocolVersion(), 0, 1) && 1 !== version_compare($options['protocolVersion'], $response->getProtocolVersion())); $this->assertSame($options['statusCode'], $response->getStatusCode()); $this->assertSame($options['reasonPhrase'], $response->getReasonPhrase()); @@ -255,7 +255,7 @@ protected function assertRequest( $request = $this->getRequest(); $actualProtocolVersion = substr($request['SERVER']['SERVER_PROTOCOL'], 5); - $this->assertTrue(substr($protocolVersion, 0, 1) === substr($actualProtocolVersion, 0, 1) &&1 !== version_compare($protocolVersion, $actualProtocolVersion)); + $this->assertTrue(substr($protocolVersion, 0, 1) === substr($actualProtocolVersion, 0, 1) && 1 !== version_compare($protocolVersion, $actualProtocolVersion)); $this->assertSame($method, $request['SERVER']['REQUEST_METHOD']); $defaultHeaders = [ From 6c7837c7fd5273ce9de6ba32e7af168bcc1347a0 Mon Sep 17 00:00:00 2001 From: Nyholm Date: Fri, 3 Aug 2018 11:04:58 +0200 Subject: [PATCH 4/6] Allow TEST_SERVER from environment --- src/PHPUnitUtility.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/PHPUnitUtility.php b/src/PHPUnitUtility.php index b134e23..0601d85 100644 --- a/src/PHPUnitUtility.php +++ b/src/PHPUnitUtility.php @@ -16,7 +16,11 @@ class PHPUnitUtility */ public static function getUri() { - return isset($_SERVER['TEST_SERVER']) ? $_SERVER['TEST_SERVER'] : false; + if (isset($_SERVER['TEST_SERVER'])) { + return $_SERVER['TEST_SERVER']; + } + + return getenv('TEST_SERVER'); } /** From 32465f4cd47e433ee8b9be07ac368dbfc4b55add Mon Sep 17 00:00:00 2001 From: Nyholm Date: Fri, 3 Aug 2018 11:14:16 +0200 Subject: [PATCH 5/6] Local only --- src/PHPUnitUtility.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PHPUnitUtility.php b/src/PHPUnitUtility.php index 0601d85..8439bef 100644 --- a/src/PHPUnitUtility.php +++ b/src/PHPUnitUtility.php @@ -20,7 +20,7 @@ public static function getUri() return $_SERVER['TEST_SERVER']; } - return getenv('TEST_SERVER'); + return getenv('TEST_SERVER', true); } /** From e6aea8b016c39347a4fa089d90aefcb2bbcad4c8 Mon Sep 17 00:00:00 2001 From: Nyholm Date: Fri, 3 Aug 2018 11:21:27 +0200 Subject: [PATCH 6/6] Changed my mind --- src/PHPUnitUtility.php | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/PHPUnitUtility.php b/src/PHPUnitUtility.php index 8439bef..b134e23 100644 --- a/src/PHPUnitUtility.php +++ b/src/PHPUnitUtility.php @@ -16,11 +16,7 @@ class PHPUnitUtility */ public static function getUri() { - if (isset($_SERVER['TEST_SERVER'])) { - return $_SERVER['TEST_SERVER']; - } - - return getenv('TEST_SERVER', true); + return isset($_SERVER['TEST_SERVER']) ? $_SERVER['TEST_SERVER'] : false; } /**