示例#1
0
 function testHttp()
 {
     $http = new SimpleHttpRequest("www.lastcraft.com/test/network_confirm.php?gkey=gvalue");
     $http->setCookie(new SimpleCookie("ckey", "cvalue"));
     $this->assertIsA($reponse = $http->fetch(), "SimpleHttpResponse");
     $this->assertEqual($reponse->getResponseCode(), 200);
     $this->assertEqual($reponse->getMimeType(), "text/html");
     $this->assertWantedPattern('/A target for the SimpleTest test suite/', $reponse->getContent());
     $this->assertWantedPattern('/gkey=gvalue/', $reponse->getContent());
     $this->assertWantedPattern('/ckey=cvalue/', $reponse->getContent());
 }
示例#2
0
 /**
  *    Adds additional manual headers.
  *    @param SimpleHttpRequest $request    Outgoing request.
  *    @access private
  */
 protected function addAdditionalHeaders(&$request)
 {
     foreach ($this->additional_headers as $header) {
         $request->addHeaderLine($header);
     }
 }
示例#3
0
 /**
  *    Sends the headers.
  *    @param SimpleSocket $socket   Open socket.
  *    @param string $method         HTTP request method,
  *                                  usually GET.
  *    @param string $content        Content to send with request.
  *    @access protected
  */
 function _dispatchRequest(&$socket, $method, $content)
 {
     parent::_dispatchRequest($socket, $method, SimpleUrl::encodeRequest($content));
 }
示例#4
0
 /**
  *    Presents the appropriate headers for this
  *    location for basic authentication.
  *    @param SimpleHttpRequest $request  Request to modify.
  *    @param string $username            Username for realm.
  *    @param string $password            Password for realm.
  *    @access public
  */
 static function addBasicHeaders($request, $username, $password)
 {
     if ($username && $password) {
         $request->addHeaderLine('Authorization: Basic ' . base64_encode("{$username}:{$password}"));
     }
 }
示例#5
0
 public function testContentHeadersCalculatedWithXmlEntityBody()
 {
     $socket = new MockSimpleSocket();
     $socket->expectAt(0, 'write', array("Content-Length: 27\r\n"));
     $socket->expectAt(1, 'write', array("Content-Type: text/xml\r\n"));
     $socket->expectAt(2, 'write', array("\r\n"));
     $socket->expectAt(3, 'write', array("<a><b>one</b><c>two</c></a>"));
     $route = new MockSimpleRoute();
     $route->setReturnReference('createConnection', $socket);
     $route->expect('createConnection', array('POST', 15));
     $request = new SimpleHttpRequest($route, new SimplePostEncoding('<a><b>one</b><c>two</c></a>', 'text/xml'));
     $this->assertIsA($request->fetch(15), 'SimpleHttpResponse');
 }
示例#6
0
 function testContentHeadersCalculated()
 {
     $socket = new MockSimpleSocket();
     $socket->expectArgumentsAt(0, 'write', array("Content-Length: 3\r\n"));
     $socket->expectArgumentsAt(1, 'write', array("Content-Type: application/x-www-form-urlencoded\r\n"));
     $socket->expectArgumentsAt(2, 'write', array("\r\n"));
     $socket->expectArgumentsAt(3, 'write', array("a=A"));
     $route = new MockSimpleRoute();
     $route->setReturnReference('createConnection', $socket);
     $route->expectArguments('createConnection', array('POST', 15));
     $request = new SimpleHttpRequest($route, new SimplePostEncoding(array('a' => 'A')));
     $this->assertIsA($request->fetch(15), 'SimpleHttpResponse');
 }
 public static function post($url, $data)
 {
     return SimpleHttpRequest::doConnect('post', $url, $data);
 }
示例#8
0
 /**
  *    Adds additional manual headers.
  *    @param SimpleHttpRequest $request    Outgoing request.
  *    @access private
  */
 function _addAdditionalHeaders($request)
 {
     foreach ($this->_additional_headers as $header) {
         $request->addHeaderLine($header);
     }
 }
示例#9
0
 /**
  *    Adds the current cookies to a request.
  *    @param SimpleHttpRequest $request    Request to modify.
  *    @param SimpleUrl $url                Cookie selector.
  *    @access private
  */
 function addHeaders(&$request, $url)
 {
     $cookies = $this->getValidCookies($url->getHost(), $url->getPath());
     foreach ($cookies as $cookie) {
         $request->setCookie($cookie);
     }
 }
示例#10
0
 /**
  *    Sends the headers and request data.
  *    @param SimpleSocket $socket  Open socket.
  *    @param string $method        HTTP request method, usually GET.
  *    @access protected
  */
 function _request(&$socket, $method) {
     $this->addHeaderLine('Content-Length: ' . strlen($this->_pushed_content));
     parent::_request($socket, $method);
     $socket->write($this->_pushed_content);
 }
示例#11
0
 /**
  *    Fetches a URL performing the standard tests.
  *    @param $url        Target to fetch as string.
  *    @param $request    Test version of SimpleHttpRequest.
  *    @return            Content of page.
  *    @access public
  */
 function fetchUrl($url, $request = false)
 {
     if (!is_object($request)) {
         $request = new SimpleHttpRequest($url);
     }
     foreach ($this->_cookie_jar->getValidCookies() as $cookie) {
         $request->setCookie($cookie);
     }
     $this->_response = $request->fetch();
     $this->_checkExpectations($url, $this->_response);
     foreach ($this->_response->getNewCookies() as $cookie) {
         $parsed_url = new SimpleUrl($url);
         if ($parsed_url->getHost()) {
             $cookie->setHost($parsed_url->getHost());
         }
         $this->_cookie_jar->setCookie($cookie);
     }
     return $this->_response->getContent();
 }
示例#12
0
 /**
  *    Presents the appropriate headers for this
  *    location for basic authentication.
  *    @param SimpleHttpRequest $request  Request to modify.
  *    @param string $username            Username for realm.
  *    @param string $password            Password for realm.
  *    @access public
  *    @static
  */
 function addBasicHeaders(&$request, $username, $password) {
     if ($username && $password) {
         $request->addHeaderLine(
                 'Authorization: Basic ' . base64_encode("$username:$password"));
     }
 }
示例#13
0
文件: http.php 项目: sebs/simpletest
 /**
  *    Sends the headers and request data.
  *    @param SimpleSocket $socket  Open socket.
  *    @param string $method        HTTP request method, usually GET.
  *    @access protected
  */
 function _request(&$socket, $method)
 {
     $this->addHeaderLine('Content-Length: ' . strlen($this->_pushed_content));
     $this->addHeaderLine('Content-Type: application/x-www-form-urlencoded');
     parent::_request($socket, $method);
     $socket->write($this->_pushed_content);
 }
示例#14
0
 function testMultipleCookieWriting()
 {
     $request = new SimpleHttpRequest("a.valid.host/and/path");
     $request->setCookie(new SimpleCookie("a", "A"));
     $request->setCookie(new SimpleCookie("b", "B"));
     $socket =& new MockSimpleSocket($this);
     $socket->setReturnValue("isError", false);
     $socket->expectArgumentsSequence(2, "write", array("Cookie: a=A;b=B\r\n"));
     $request->fetch($socket);
     $socket->tally();
 }