Add Curl::effectiveUrl

This commit is contained in:
Zach Borboa
2016-01-18 20:39:52 -08:00
parent ae0b44a948
commit 4f62b45d5b
2 changed files with 14 additions and 0 deletions
+2
View File
@@ -58,6 +58,7 @@ class Curl
public $baseUrl = null;
public $url = null;
public $effectiveUrl = null;
public $requestHeaders = null;
public $responseHeaders = null;
public $rawResponseHeaders = '';
@@ -346,6 +347,7 @@ class Curl
$this->httpError = in_array(floor($this->httpStatusCode / 100), array(4, 5));
$this->error = $this->curlError || $this->httpError;
$this->errorCode = $this->error ? ($this->curlError ? $this->curlErrorCode : $this->httpStatusCode) : 0;
$this->effectiveUrl = curl_getinfo($this->curl, CURLINFO_EFFECTIVE_URL);
// NOTE: CURLINFO_HEADER_OUT set to true is required for requestHeaders
// to not be empty (e.g. $curl->setOpt(CURLINFO_HEADER_OUT, true);).
+12
View File
@@ -250,6 +250,18 @@ class CurlTest extends PHPUnit_Framework_TestCase
$this->assertEquals('key=value', $curl->response);
}
public function testEffectiveUrl()
{
$test = new Test();
$test->server('redirect', 'GET');
$this->assertEquals(Test::TEST_URL, $test->curl->effectiveUrl);
$test = new Test();
$test->curl->setOpt(CURLOPT_FOLLOWLOCATION, true);
$test->server('redirect', 'GET');
$this->assertEquals(Test::TEST_URL . '?redirect', $test->curl->effectiveUrl);
}
public function testPostRequestMethod()
{
$test = new Test();