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 + -
显示快捷键?