diff --git a/src/Facebook/Http/GraphRawResponse.php b/src/Facebook/Http/GraphRawResponse.php index 324a94472..21ed94635 100644 --- a/src/Facebook/Http/GraphRawResponse.php +++ b/src/Facebook/Http/GraphRawResponse.php @@ -105,6 +105,13 @@ public function getHttpResponseCode() public function setHttpResponseCodeFromHeader($rawResponseHeader) { preg_match('|HTTP/\d\.\d\s+(\d+)\s+.*|', $rawResponseHeader, $match); + + if (isset($match[1])) { + $this->httpResponseCode = (int)$match[1]; + } + + preg_match('|HTTP/\d\s+(\d+)\s+.*|', $rawResponseHeader, $match); + $this->httpResponseCode = (int)$match[1]; } diff --git a/tests/Http/GraphRawResponseTest.php b/tests/Http/GraphRawResponseTest.php index aca6ba8de..b4b52c8fc 100644 --- a/tests/Http/GraphRawResponseTest.php +++ b/tests/Http/GraphRawResponseTest.php @@ -47,6 +47,24 @@ class GraphRawResponseTest extends \PHPUnit_Framework_TestCase 'X-FB-Debug' => '02QQiffE7JG2rV6i/Agzd0gI2/OOQ2lk5UW0=', 'Access-Control-Allow-Origin' => '*', ]; + + protected $fakeRawHeaderVersion2 = <<
'"9d86b21aa74d74e574bbb35ba13524a52deb96e5"', + 'Content-Type' => 'text/javascript; charset=UTF-8', + 'X-FB-Rev' => '9244769', + 'Date' => 'Mon, 5 December 2022 18:37:17 GMT', + 'X-FB-Debug' => '02QQiffE7JG2rV6i/Agzd0gI2/OOQ2lk5UW0=', + 'Access-Control-Allow-Origin' => '*', + ]; public function testCanSetTheHeadersFromAnArray() { @@ -79,4 +97,14 @@ public function testWillIgnoreProxyHeaders() $this->assertEquals($this->fakeHeadersAsArray, $headers); $this->assertEquals(200, $httpResponseCode); } + + public function testCanSetTheHeadersFromAStringWithVersionTwo() + { + $response = new GraphRawResponse($this->fakeRawHeaderVersion2, ''); + $headers = $response->getHeaders(); + $httpResponseCode = $response->getHttpResponseCode(); + + $this->assertEquals($this->fakeHeadersAsArrayVersion2, $headers); + $this->assertEquals(200, $httpResponseCode); + } }