Esempio n. 1
0
 /**
  * @covers Guzzle\Http\Message\Request::changedHeader
  * @covers Guzzle\Http\Message\Request::setHeader
  */
 public function testCatchesAllHostHeaderChanges()
 {
     // Tests setting using headers
     $this->request->setHeader('Host', 'www.abc.com');
     $this->assertEquals('www.abc.com', $this->request->getHost());
     $this->assertEquals('www.abc.com:8124', $this->request->getHeader('Host'));
     $this->assertEquals(8124, $this->request->getPort());
     // Tests setting using setHost()
     $this->request->setHost('abc.com');
     $this->assertEquals('abc.com', $this->request->getHost());
     $this->assertEquals('abc.com:8124', $this->request->getHeader('Host'));
     $this->assertEquals(8124, $this->request->getPort());
     // Tests setting with a port
     $this->request->setHost('abc.com:8081');
     $this->assertEquals('abc.com', $this->request->getHost());
     $this->assertEquals('abc.com:8081', $this->request->getHeader('Host'));
     $this->assertEquals(8081, $this->request->getPort());
     // Tests setting with a port using the Host header
     $this->request->setHeader('Host', 'solr.com:8983');
     $this->assertEquals('solr.com', $this->request->getHost());
     $this->assertEquals('solr.com:8983', (string) $this->request->getHeader('Host'));
     $this->assertEquals(8983, $this->request->getPort());
     // Tests setting with an inferred 443 port using the Host header
     $this->request->setScheme('https');
     $this->request->setHeader('Host', 'solr.com');
     $this->assertEquals('solr.com', $this->request->getHost());
     $this->assertEquals('solr.com:8983', (string) $this->request->getHeader('Host'));
     $this->assertEquals(8983, $this->request->getPort());
 }
Esempio n. 2
0
 public function testPermitsFalsyComponents()
 {
     $request = new Request('GET', 'http://0/0?0');
     $this->assertSame('0', $request->getHost());
     $this->assertSame('/0', $request->getPath());
     $this->assertSame('0=', $request->getQuery(true));
     $request = new Request('GET', '0');
     $this->assertEquals('/0', $request->getPath());
 }
Esempio n. 3
0
 public function testCanChangePortThroughScheme()
 {
     $request = new Request('GET', 'http://foo.com');
     $request->setScheme('https');
     $this->assertEquals('https://foo.com', (string) $request->getUrl());
     $this->assertEquals('foo.com', $request->getHost());
     $request->setScheme('http');
     $this->assertEquals('http://foo.com', (string) $request->getUrl());
     $this->assertEquals('foo.com', $request->getHost());
     $request->setPort(null);
     $this->assertEquals('http://foo.com', (string) $request->getUrl());
     $this->assertEquals('foo.com', $request->getHost());
 }
Esempio n. 4
0
 protected function generateRequest($url, array $subProtocols, array $headers)
 {
     $headers = array_merge($this->defaultHeaders, $headers);
     $headers['Sec-WebSocket-Key'] = $this->generateKey();
     $request = new Request('GET', $url, $headers);
     $scheme = strtolower($request->getScheme());
     if (!in_array($scheme, ['ws', 'wss'])) {
         throw new \InvalidArgumentException(sprintf('Cannot connect to invalid URL (%s)', $url));
     }
     $request->setScheme('HTTP');
     if (!$request->getPort()) {
         $request->setPort('wss' === $scheme ? 443 : 80);
     } else {
         $request->setHeader('Host', $request->getHeader('Host') . ":{$request->getPort()}");
     }
     if (!$request->getHeader('Origin')) {
         $request->setHeader('Origin', str_replace('ws', 'http', $scheme) . '://' . $request->getHost());
     }
     // do protocol headers
     if (count($subProtocols) > 0) {
         $protocols = implode(',', $subProtocols);
         if ($protocols != "") {
             $request->setHeader('Sec-WebSocket-Protocol', $protocols);
         }
     }
     return $request;
 }