Example #1
0
 public function testSimpleEntityBodyMidStream()
 {
     $stream = fopen('php://memory', 'w');
     fwrite($stream, 'test stream data');
     fseek($stream, 9, SEEK_SET);
     $factory = new Bringit_EntityBodyFactory();
     $body = $factory->createFromStream($stream);
     $this->assertEqual($body->contentLength(), 7);
     $this->assertEqual(fread($body->contentStream(), 1024), 'am data');
 }
 public function testDispatchPutRequest()
 {
     $entityBodyFactory = new Bringit_EntityBodyFactory();
     $body = $entityBodyFactory->createFromString('test content');
     $header = new Bringit_Header_RequestHeader();
     $builder = new Bringit_RequestBuilder();
     $request = $builder->method(Bringit_Request::METHOD_PUT)->url('http://' . self::TESTHOST . '/test')->header($header)->body($body)->create();
     $dispatcher = new Bringit_RequestDispatcher();
     $response = $dispatcher->dispatch($request);
     $responseBody = $response->entityBody()->contentString();
     $this->assertWantedPattern('#The requested method PUT is not allowed#', $responseBody);
 }
 public function testDispatchPutRequest()
 {
     $entityBodyFactory = new Bringit_EntityBodyFactory();
     $body = $entityBodyFactory->createFromString('test content');
     $header = new Bringit_Header_RequestHeader();
     $builder = new Bringit_RequestBuilder();
     $request = $builder->method(Bringit_Request::METHOD_PUT)->url('http://' . self::TESTHOST . '/test')->header($header)->body($body)->create();
     $dispatcher = new Bringit_RequestDispatcher();
     $response = $dispatcher->dispatch($request);
     $responseBody = $response->entityBody()->contentString();
     $host = self::TESTHOST;
     $this->assertEqual("PUT /test HTTP/1.1\r\n" . "Host: {$host}\r\n" . "Content-Length: 12\r\n" . "\r\n" . "test content", $responseBody);
 }
Example #4
0
 public function testPutRequest()
 {
     $builder = new Bringit_RequestBuilder();
     $url = new Bringit_Url('http://example.org:81/blarg');
     $header = new Bringit_Header_RequestHeader();
     $header['Content-Type'] = 'text/plain';
     $entityBodyFactory = new Bringit_EntityBodyFactory();
     $entityBody = $entityBodyFactory->createFromString('testing');
     $request = $builder->method(Bringit_Request::METHOD_PUT)->url($url)->header($header)->body($entityBody)->create();
     $this->assertIsA($request, 'Bringit_Request');
     $this->assertEqual($request->requestMethod(), Bringit_Request::METHOD_PUT);
     $this->assertReference($request->url(), $url);
     $this->assertReference($request->header(), $header);
     $this->assertTrue($request->hasEntityBody(), 'should have entity body');
     $this->assertReference($request->entityBody(), $entityBody);
     $this->assertEqual($request->requestLine()->__toString(), "PUT /blarg HTTP/1.1\r\n");
     $this->assertEqual($header['Host'], 'example.org:81');
 }
Example #5
0
 public function handleRequest($request)
 {
     $url = $request->url();
     $socket = fsockopen($this->_ipAddress, $url->port(), $errno, $errstr, self::SOCKET_TIMEOUT_OPEN);
     if (!$socket) {
         throw new Bringit_Exception_ConnectionException(sprintf("Unable to open socket to %s:%d for %s (%d: %s)", $this->_ipAddress, $url->port(), $url, $errno, $errstr));
     }
     // write request line to socket
     fwrite($socket, $request->requestLine()->__toString());
     // write headers to socket
     fwrite($socket, $request->header()->__toString());
     if ($request->hasEntityBody()) {
         $bodyStream = $request->entityBody()->contentStream();
         while (!feof($bodyStream)) {
             fwrite($socket, fread($bodyStream, self::FREAD_CHUNKSIZE));
         }
     }
     $parser = new Bringit_Header_ResponseHeaderParser();
     $responseHeader = $parser->parseStream($socket);
     $entityBodyFactory = new Bringit_EntityBodyFactory();
     $entityBody = $entityBodyFactory->createFromStream($socket);
     return new Bringit_Response($request, $responseHeader, $entityBody);
 }