http_test.php.svn-base
来自「PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。」· SVN-BASE 代码 · 共 427 行 · 第 1/2 页
SVN-BASE
427 行
<?php// $Id: http_test.php 1505 2007-04-30 23:39:59Z lastcraft $require_once(dirname(__FILE__) . '/../autorun.php');require_once(dirname(__FILE__) . '/../encoding.php');require_once(dirname(__FILE__) . '/../http.php');require_once(dirname(__FILE__) . '/../socket.php');require_once(dirname(__FILE__) . '/../cookies.php');Mock::generate('SimpleSocket');Mock::generate('SimpleCookieJar');Mock::generate('SimpleRoute');Mock::generatePartial('SimpleRoute', 'PartialSimpleRoute', array('_createSocket'));Mock::generatePartial( 'SimpleProxyRoute', 'PartialSimpleProxyRoute', array('_createSocket'));class TestOfDirectRoute extends UnitTestCase { function testDefaultGetRequest() { $socket = &new MockSimpleSocket(); $socket->expectArgumentsAt(0, 'write', array("GET /here.html HTTP/1.0\r\n")); $socket->expectArgumentsAt(1, 'write', array("Host: a.valid.host\r\n")); $socket->expectArgumentsAt(2, 'write', array("Connection: close\r\n")); $socket->expectCallCount('write', 3); $route = &new PartialSimpleRoute(); $route->setReturnReference('_createSocket', $socket); $route->SimpleRoute(new SimpleUrl('http://a.valid.host/here.html')); $this->assertReference($route->createConnection('GET', 15), $socket); } function testDefaultPostRequest() { $socket = &new MockSimpleSocket(); $socket->expectArgumentsAt(0, 'write', array("POST /here.html HTTP/1.0\r\n")); $socket->expectArgumentsAt(1, 'write', array("Host: a.valid.host\r\n")); $socket->expectArgumentsAt(2, 'write', array("Connection: close\r\n")); $socket->expectCallCount('write', 3); $route = &new PartialSimpleRoute(); $route->setReturnReference('_createSocket', $socket); $route->SimpleRoute(new SimpleUrl('http://a.valid.host/here.html')); $route->createConnection('POST', 15); } function testGetWithPort() { $socket = &new MockSimpleSocket(); $socket->expectArgumentsAt(0, 'write', array("GET /here.html HTTP/1.0\r\n")); $socket->expectArgumentsAt(1, 'write', array("Host: a.valid.host:81\r\n")); $socket->expectArgumentsAt(2, 'write', array("Connection: close\r\n")); $socket->expectCallCount('write', 3); $route = &new PartialSimpleRoute(); $route->setReturnReference('_createSocket', $socket); $route->SimpleRoute(new SimpleUrl('http://a.valid.host:81/here.html')); $route->createConnection('GET', 15); } function testGetWithParameters() { $socket = &new MockSimpleSocket(); $socket->expectArgumentsAt(0, 'write', array("GET /here.html?a=1&b=2 HTTP/1.0\r\n")); $socket->expectArgumentsAt(1, 'write', array("Host: a.valid.host\r\n")); $socket->expectArgumentsAt(2, 'write', array("Connection: close\r\n")); $socket->expectCallCount('write', 3); $route = &new PartialSimpleRoute(); $route->setReturnReference('_createSocket', $socket); $route->SimpleRoute(new SimpleUrl('http://a.valid.host/here.html?a=1&b=2')); $route->createConnection('GET', 15); }}class TestOfProxyRoute extends UnitTestCase { function testDefaultGet() { $socket = &new MockSimpleSocket(); $socket->expectArgumentsAt(0, 'write', array("GET http://a.valid.host/here.html HTTP/1.0\r\n")); $socket->expectArgumentsAt(1, 'write', array("Host: my-proxy:8080\r\n")); $socket->expectArgumentsAt(2, 'write', array("Connection: close\r\n")); $socket->expectCallCount('write', 3); $route = &new PartialSimpleProxyRoute(); $route->setReturnReference('_createSocket', $socket); $route->SimpleProxyRoute( new SimpleUrl('http://a.valid.host/here.html'), new SimpleUrl('http://my-proxy')); $route->createConnection('GET', 15); } function testDefaultPost() { $socket = &new MockSimpleSocket(); $socket->expectArgumentsAt(0, 'write', array("POST http://a.valid.host/here.html HTTP/1.0\r\n")); $socket->expectArgumentsAt(1, 'write', array("Host: my-proxy:8080\r\n")); $socket->expectArgumentsAt(2, 'write', array("Connection: close\r\n")); $socket->expectCallCount('write', 3); $route = &new PartialSimpleProxyRoute(); $route->setReturnReference('_createSocket', $socket); $route->SimpleProxyRoute( new SimpleUrl('http://a.valid.host/here.html'), new SimpleUrl('http://my-proxy')); $route->createConnection('POST', 15); } function testGetWithPort() { $socket = &new MockSimpleSocket(); $socket->expectArgumentsAt(0, 'write', array("GET http://a.valid.host:81/here.html HTTP/1.0\r\n")); $socket->expectArgumentsAt(1, 'write', array("Host: my-proxy:8081\r\n")); $socket->expectArgumentsAt(2, 'write', array("Connection: close\r\n")); $socket->expectCallCount('write', 3); $route = &new PartialSimpleProxyRoute(); $route->setReturnReference('_createSocket', $socket); $route->SimpleProxyRoute( new SimpleUrl('http://a.valid.host:81/here.html'), new SimpleUrl('http://my-proxy:8081')); $route->createConnection('GET', 15); } function testGetWithParameters() { $socket = &new MockSimpleSocket(); $socket->expectArgumentsAt(0, 'write', array("GET http://a.valid.host/here.html?a=1&b=2 HTTP/1.0\r\n")); $socket->expectArgumentsAt(1, 'write', array("Host: my-proxy:8080\r\n")); $socket->expectArgumentsAt(2, 'write', array("Connection: close\r\n")); $socket->expectCallCount('write', 3); $route = &new PartialSimpleProxyRoute(); $route->setReturnReference('_createSocket', $socket); $route->SimpleProxyRoute( new SimpleUrl('http://a.valid.host/here.html?a=1&b=2'), new SimpleUrl('http://my-proxy')); $route->createConnection('GET', 15); } function testGetWithAuthentication() { $encoded = base64_encode('Me:Secret'); $socket = &new MockSimpleSocket(); $socket->expectArgumentsAt(0, 'write', array("GET http://a.valid.host/here.html HTTP/1.0\r\n")); $socket->expectArgumentsAt(1, 'write', array("Host: my-proxy:8080\r\n")); $socket->expectArgumentsAt(2, 'write', array("Proxy-Authorization: Basic $encoded\r\n")); $socket->expectArgumentsAt(3, 'write', array("Connection: close\r\n")); $socket->expectCallCount('write', 4); $route = &new PartialSimpleProxyRoute(); $route->setReturnReference('_createSocket', $socket); $route->SimpleProxyRoute( new SimpleUrl('http://a.valid.host/here.html'), new SimpleUrl('http://my-proxy'), 'Me', 'Secret'); $route->createConnection('GET', 15); }}class TestOfHttpRequest extends UnitTestCase { function testReadingBadConnection() { $socket = &new MockSimpleSocket(); $route = &new MockSimpleRoute(); $route->setReturnReference('createConnection', $socket); $request = &new SimpleHttpRequest($route, new SimpleGetEncoding()); $reponse = &$request->fetch(15); $this->assertTrue($reponse->isError()); } function testReadingGoodConnection() { $socket = &new MockSimpleSocket(); $socket->expectOnce('write', array("\r\n")); $route = &new MockSimpleRoute(); $route->setReturnReference('createConnection', $socket); $route->expectArguments('createConnection', array('GET', 15)); $request = &new SimpleHttpRequest($route, new SimpleGetEncoding()); $this->assertIsA($request->fetch(15), 'SimpleHttpResponse'); } function testWritingAdditionalHeaders() { $socket = &new MockSimpleSocket(); $socket->expectArgumentsAt(0, 'write', array("My: stuff\r\n")); $socket->expectArgumentsAt(1, 'write', array("\r\n")); $socket->expectCallCount('write', 2); $route = &new MockSimpleRoute(); $route->setReturnReference('createConnection', $socket); $request = &new SimpleHttpRequest($route, new SimpleGetEncoding()); $request->addHeaderLine('My: stuff'); $request->fetch(15); } function testCookieWriting() { $socket = &new MockSimpleSocket(); $socket->expectArgumentsAt(0, 'write', array("Cookie: a=A\r\n")); $socket->expectArgumentsAt(1, 'write', array("\r\n")); $socket->expectCallCount('write', 2); $route = &new MockSimpleRoute(); $route->setReturnReference('createConnection', $socket); $jar = new SimpleCookieJar(); $jar->setCookie('a', 'A'); $request = &new SimpleHttpRequest($route, new SimpleGetEncoding()); $request->readCookiesFromJar($jar, new SimpleUrl('/')); $this->assertIsA($request->fetch(15), 'SimpleHttpResponse'); }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?