private function createResponse($content, $statusCode = 200)
 {
     $response = new Response();
     $response->setContent($content);
     $response->setHeaders(array('HTTP/1.1 ' . $statusCode . ' REASON'));
     return $response;
 }
 /**
  * @see Client\ClientInterface
  */
 public function send(Message\Request $request, Message\Response $response)
 {
     if (!($queued = $this->receiveFromQueue())) {
         throw new \LogicException('There are no queued responses.');
     }
     $response->setHeaders($queued->getHeaders());
     $response->setContent($queued->getContent());
 }
Example #3
0
 /**
  * Driver should make an HTTP request when making an RPC call and process response corrcely if result is null.
  */
 public function testCallWithNullResult()
 {
     $httpResponse = new HttpResponse();
     $httpResponse->setHeaders(['X-PHP-Version: 6.0']);
     $httpResponse->setContent(json_encode(['jsonrpc' => '2.0', 'result' => null]));
     $this->expectHttpRequest('http://phpunit', 'POST', ['Accept: application/json', 'User-Agent: Service Bus Client', 'Content-Type: application/json'], '{"jsonrpc":"2.0","method":"add","params":{"a":10,"b":53},"id":1}', $httpResponse);
     $response = $this->driver->call($this->identity, $this->createRequest())->resolve();
     $this->assertNull($response->getValue());
 }
 /**
  * Driver should make an HTTP request when making an RPC call.
  */
 public function testCall()
 {
     $httpResponse = new HttpResponse();
     $httpResponse->setHeaders(['X-PHP-Version: 6.0', 'X-Message-Bus-Foo-Bar: boo', 'X-Message-Bus-Baz: 1']);
     $httpResponse->setContent(json_encode(['jsonrpc' => '2.0', 'result' => 99]));
     $this->expectHttpRequest('http://phpunit', 'POST', ['Accept: application/json', 'User-Agent: Message Bus Client', 'Content-Type: application/json', 'X-Message-To: calc', 'X-Message-Topic: add', 'X-Message-Version: 1.0', 'X-Message-Bus-Base: dec'], '{"jsonrpc":"2.0","method":"add","params":{"a":10,"b":53},"id":1}', $httpResponse);
     $response = $this->driver->call($this->location, $this->createRequest())->resolve();
     $this->assertEquals(99, $response->getValue());
     $this->assertEquals(['foo_bar' => 'boo', 'baz' => 1], $response->getHeaders());
 }
 protected function getExportResponse()
 {
     $zip = new \ZipArchive();
     $zip->open($this->zipFile, $zip::CREATE);
     $zip->addFile('test/etc/diary.csv', 'diary.csv');
     $zip->close();
     $response = new Response();
     $response->setHeaders(array('HTTP/1.1 200 OK', 'Content-Type: application/zip'));
     $response->setContent(file_get_contents($this->zipFile));
     return $response;
 }
 /**
  * @test
  * @dataProvider getAuthCode
  */
 public function testGetAuthTokenGivenCode($code)
 {
     $response = new Response();
     $response->setContent('{"access_token": "ea135929105c4f29a0f5117d2960926f", "expires_in": 2592000}');
     $response->setHeaders(array('HTTP/1.1 200 OK'));
     $httpClient = $this->getHttpClientMock();
     $httpClient->expects($this->once())->method('post')->with($this->equalTo('https://oauth.yandex.ru/token'), $this->anything(), $this->stringContains($code))->will($this->returnValue($response));
     $auth = new Auth('test', 'test', $httpClient);
     $token = $auth->getAuthToken($code);
     $this->assertInstanceOf('\\Yandex\\Auth\\Token', $token);
     $this->assertEquals($token->getToken(), 'ea135929105c4f29a0f5117d2960926f');
 }
 /**
  * @test
  */
 public function shouldAllowFactoryHttpExceptionFromRequestAndResponse()
 {
     $request = new Request();
     $request->setHost('http://example.com');
     $request->setResource('/foobar');
     $response = new Response();
     $response->setHeaders(array('HTTP/1.1 404 Not Found'));
     $httpException = HttpException::factory($request, $response);
     $this->assertInstanceOf('Payum\\Core\\Exception\\Http\\HttpException', $httpException);
     $this->assertSame($request, $httpException->getRequest());
     $this->assertSame($response, $httpException->getResponse());
     $this->assertEquals("Client error response\n[status code] 404\n[reason phrase] Not Found\n[url] http://example.com/foobar", $httpException->getMessage());
     $this->assertEquals(404, $httpException->getCode());
 }
Example #8
0
 /**
  * @see ClientInterface
  */
 public function send(Message\Request $request, Message\Response $response)
 {
     if ($cookieJar = $this->getCookieJar()) {
         $cookieJar->clearExpiredCookies();
         $cookieJar->addCookieHeaders($request);
     }
     $context = stream_context_create($this->getStreamContextArray($request));
     $content = file_get_contents($request->getUrl(), 0, $context);
     $response->setHeaders($http_response_header);
     $response->setContent($content);
     if ($cookieJar) {
         $cookieJar->processSetCookieHeaders($request, $response);
     }
 }
Example #9
0
 /**
  * @see ClientInterface
  *
  * @throws RuntimeException If file_get_contents() fires an error
  */
 public function send(Message\Request $request, Message\Response $response)
 {
     if ($cookieJar = $this->getCookieJar()) {
         $cookieJar->clearExpiredCookies();
         $cookieJar->addCookieHeaders($request);
     }
     $context = stream_context_create($this->getStreamContextArray($request));
     $content = @file_get_contents($request->getUrl(), 0, $context);
     if (false === $content) {
         $error = error_get_last();
         throw new \RuntimeException($error['message']);
     }
     $response->setHeaders((array) $http_response_header);
     $response->setContent($content);
     if ($cookieJar) {
         $cookieJar->processSetCookieHeaders($request, $response);
     }
 }
 /**
  * @test
  */
 public function testGetHostListUrl()
 {
     $response = new Response();
     $response->setHeaders(array('HTTP/1.1 200 OK'));
     $response->setContent('
         <service>
           <workspace>
             <collection href="https://webmaster.yandex.ru/api/123456789/hosts">
               <title>Host list</title>
             </collection>
           </workspace>
         </service>
     ');
     $httpClient = $this->getHttpClientMock();
     $httpClient->expects($this->once())->method('get')->with($this->equalTo('https://webmaster.yandex.ru/api/123456789'))->will($this->returnValue($response));
     $webmaster = new Webmaster('test', 'test', $httpClient);
     $webmaster->setToken('ea135929105c4f29a0f5117d2960926f');
     $url = $webmaster->getHostListUrl(123456789);
     $this->assertEquals($url, 'https://webmaster.yandex.ru/api/123456789/hosts');
 }
Example #11
0
 public function testDigestAuthHeader()
 {
     $request = new Message\Request();
     $request->setMethod('GET');
     $request->setResource('/auth-digest');
     $request->setHost('http://test.webdav.org');
     $request->setProtocolVersion('1.1');
     $response = new Message\Response();
     $response->setHeaders(array("Date: Wed, 24 Jun 2015 21:49:39 GMT", "Server: Apache/2.0.54 (Debian GNU/Linux) DAV/2 SVN/1.3.2", "WWW-Authenticate: Digest realm=\"test\", nonce=\"5PvRe0oZBQA=874ad6aea3519069f30dfc704e594dde6e01b2a6\", algorithm=MD5, domain=\"/auth-digest/\", qop=\"auth\"", "Content-Length: 401", "Content-Type: text/html; charset=iso-8859-1"));
     $response->setContent("<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n<html><head>\n<title>401 Authorization Required</title>\n</head><body>\n<h1>Authorization Required</h1>\n<p>This server could not verify that you\nare authorized to access the document\nrequested.  Either you supplied the wrong\ncredentials (e.g., bad password), or your\nbrowser doesn\\'t understand how to supply\nthe credentials required.</p>\n</body></html>");
     // Simulate the First Request/Response, where the server returns 401
     $listener = new DigestAuthListener('user1', 'user1');
     $listener->preSend($request);
     $listener->postSend($request, $response);
     // Simulate sending the second Request using the calculated Authorization Header
     $request = new Message\Request();
     $request->setMethod('GET');
     $request->setResource('/auth-digest');
     $request->setHost('http://test.webdav.org');
     $request->setProtocolVersion('1.1');
     $this->assertEmpty($request->getHeader('Authorization'));
     $listener->preSend($request);
     $this->assertEquals('Digest username="******", realm="test", nonce="5PvRe0oZBQA=874ad6aea3519069f30dfc704e594dde6e01b2a6", response="b2cf05a5d3f51d84a8866309aed6cb5d", uri="/auth-digest"', $request->getHeader('Authorization'));
 }
Example #12
0
 /**
  * Invalid traction request
  */
 public function invalidResultProvider()
 {
     $response = new TransportResponse();
     $response->setHeaders(array("HTTP/1.1 200 OK", "Date: Thu, 13 Sep 2012 01:54:17 GMT", "Server: TractionPlatform", "TRAC-RESULT: 1", "TRAC-ERROR: Incorrect Login credentials", "Transfer-Encoding: chunked", "Content-Type: text/plain; charset=UTF-8"));
     return array(array($response));
 }
Example #13
0
 private function createResponse($statusCode = 200, $content = true)
 {
     $response = new Response();
     $response->setHeaders(array(sprintf("HTTP/1.1 %s FOOBAR", $statusCode)));
     if ($content) {
         $response->setContent($this->xml);
     }
     return $response;
 }