X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=phpunit%2FRequestTest.php;h=0072714c4c953789cd389da55125afd242ba3e76;hb=4ebb73feef38aea0560abf7c3a9435dda4d77820;hp=56053ee148d5a487db4ee7d091a5a1f20874ac88;hpb=efdbb46bf78df0d34936c536bd78b05abadd3a0d;p=m6w6%2Fext-http diff --git a/phpunit/RequestTest.php b/phpunit/RequestTest.php index 56053ee..0072714 100644 --- a/phpunit/RequestTest.php +++ b/phpunit/RequestTest.php @@ -28,13 +28,26 @@ class RequestTest extends PHPUnit_Framework_TestCase protected $r; function setUp() { - $this->r = (new http\Client\Factory)->createClient(); + $f = new http\Client\Factory; + $this->r = $f->createClient(); $this->r->setOptions( array( "connecttimeout" => 30, "timeout" => 300, ) ); + $this->r->setOptions( + array( + "timeout" => 600 + ) + ); + $this->assertEquals( + array( + "connecttimeout" => 30, + "timeout" => 600, + ), + $this->r->getOptions() + ); } function testClone() { @@ -43,25 +56,32 @@ class RequestTest extends PHPUnit_Framework_TestCase } function testObserver() { - $this->r->attach(new ProgressObserver1); - $this->r->attach(new ProgressObserver2); + $test = $this; + $this->r->attach($o1 = new ProgressObserver1); + $this->r->attach($o2 = new ProgressObserver2); $this->r->attach( - new CallbackObserver( - function ($r) { + $o3 = new CallbackObserver( + function ($r) use ($test) { $p = (array) $r->getProgress(); - $this->assertArrayHasKey("started", $p); - $this->assertArrayHasKey("finished", $p); - $this->assertArrayHasKey("dlnow", $p); - $this->assertArrayHasKey("ulnow", $p); - $this->assertArrayHasKey("dltotal", $p); - $this->assertArrayHasKey("ultotal", $p); - $this->assertArrayHasKey("info", $p); + $test->assertArrayHasKey("started", $p); + $test->assertArrayHasKey("finished", $p); + $test->assertArrayHasKey("dlnow", $p); + $test->assertArrayHasKey("ulnow", $p); + $test->assertArrayHasKey("dltotal", $p); + $test->assertArrayHasKey("ultotal", $p); + $test->assertArrayHasKey("info", $p); } ) ); $this->r->setRequest(new http\Client\Request("GET", "http://dev.iworks.at/ext-http/"))->send(null); $this->assertRegexp("/(\.-)+/", $this->r->pi); $this->assertCount(3, $this->r->getObservers()); + $this->r->detach($o1); + $this->assertCount(2, $this->r->getObservers()); + $this->r->detach($o2); + $this->assertCount(1, $this->r->getObservers()); + $this->r->detach($o3); + $this->assertCount(0, $this->r->getObservers()); } function testCookies() { @@ -73,7 +93,27 @@ class RequestTest extends PHPUnit_Framework_TestCase $this->assertNotContains("Cookie", (string) $this->r->getRequestMessage()); $this->r->send(null); $this->assertContains("Cookie", (string) $this->r->getRequestMessage()); - $this->assertCount(2, $this->r->getResponseMessage()->getCookies()); + $cookies = $this->r->getResponseMessage()->getCookies(0, array("extra")); + $this->assertCount(2, $cookies); + foreach ($cookies as $cookie) { + if ($cookie->getCookie("perm")) { + $this->assertTrue(0 < $cookie->getExpires()); + } + if ($cookie->getCookie("temp")) { + $this->assertEquals(-1, $cookie->getExpires()); + } + } + $this->r->send(new http\Client\Request("GET", "http://dev.iworks.at/ext-http/.cookie1.php")); + $cookies = $this->r->getResponseMessage()->getCookies(0, array("bar")); + $this->assertCount(1, $cookies); + $cookies = $cookies[0]; + $this->assertEquals(array("bar"=>"foo"), $cookies->getExtras()); + $this->assertEquals(array("foo"=>"bar"), $cookies->getCookies()); + $cookies = $this->r->getResponseMessage()->getCookies(0, array("foo")); + $this->assertCount(1, $cookies); + $cookies = $cookies[0]; + $this->assertEquals(array("foo"=>"bar","bar"=>"foo"), $cookies->getCookies()); + $this->assertEquals(array(), $cookies->getExtras()); } function testResetCookies() { @@ -92,6 +132,23 @@ class RequestTest extends PHPUnit_Framework_TestCase $this->r->send(null); $this->assertNotEquals($c, array_map($f, $this->r->getResponseMessage()->getCookies())); } + + function testSsl() { + $this->r->setRequest(new http\Client\Request("GET", "https://twitter.com/")); + $this->r->setSslOptions(array("verify_peer" => true)); + $this->r->addSslOptions(array("verify_host" => 2)); + $this->assertEquals( + array( + "verify_peer" => true, + "verify_host" => 2, + ), + $this->r->getSslOptions() + ); + $this->r->send(); + $ti = $this->r->getTransferInfo(); + $this->assertArrayHasKey("ssl_engines", $ti); + $this->assertGreaterThan(0, count($ti["ssl_engines"])); + } function testHistory() { $body = new http\Message\Body;