Beispiel #1
0
 /**
  * Returns a pattern representing an uri. It can be used to check if two urls have the same
  * equivalence class.
  *
  * @return string
  */
 public function getPattern()
 {
     // file type
     $pattern = $this->getFileType() . ':';
     // schema (http, https)
     $pattern .= $this->uri->getScheme() . ':';
     // host
     $pattern .= $this->uri->getHost() . ':';
     $path = $this->uri->getPath() . '?' . $this->uri->getQuery();
     $pathNew = preg_replace("^[a-f0-9]{32}^", "<h>", $path);
     $pathNew = preg_replace("^[a-z\\-\\_]{1,}^i", "<s>", $pathNew);
     $pathNew = preg_replace("^[0-9]{1,}^", "<i>", $pathNew);
     $pattern .= $pathNew;
     return $pattern;
 }
Beispiel #2
0
 public function testConstructor()
 {
     $uri = new Uri('http://*****:*****@example.com:81/foo/bar?a=2&b=3#baz');
     $this->assertEquals('http', $uri->getScheme());
     $this->assertEquals('example.com', $uri->getHost());
     $this->assertEquals('/foo/bar', $uri->getPath());
     $this->assertEquals(81, $uri->getPort());
     $this->assertEquals('user:password', $uri->getUserInfo());
     $this->assertEquals('a=2&b=3', $uri->getQuery());
     $this->assertEquals('baz', $uri->getFragment());
 }
 public function testShouldParseUriWithPortSuccessful()
 {
     $case = 'http://www.example.com:3232/payments/1?foo=bar&baz=bar#order';
     $uri = new Uri($case);
     $this->assertEquals(3232, $uri->getPort());
     $this->assertEquals('www.example.com', $uri->getHost());
     $this->assertEquals('http', $uri->getScheme());
     $this->assertNotEmpty($uri->getPath());
     $this->assertEquals('/payments/1', $uri->getPath());
     $this->assertNotEmpty($uri->getQuery());
     $this->assertEquals('foo=bar&baz=bar', $uri->getQuery());
     $this->assertNotEmpty($uri->getFragment());
     $this->assertEquals('order', $uri->getFragment());
     $this->assertEquals($case, $uri->__toString());
 }
Beispiel #4
0
 public function withUri(Uri $uri, bool $preserveHost = false) : HttpRequest
 {
     $request = clone $this;
     $request->uri = $uri;
     $host = $uri->getHost();
     if ($host != '') {
         $host .= $uri->getPort() ? ':' . $uri->getPort() : '';
         if ($preserveHost) {
             if (empty($request->getHeader('Host'))) {
                 $request = $request->withHeader('Host', $host);
             }
         } else {
             $request = $request->withHeader('Host', $host);
         }
     }
     return $request;
 }
 protected function _fetch(&$counter, $params)
 {
     $result = parent::_fetch($counter, $params);
     $uri = new Uri($_SERVER['PHP_SELF']);
     foreach ($result as $key => $data) {
         $nav_uri = new Uri($data['url']);
         if ($uri->getHost() != $nav_uri->getHost()) {
             continue;
         }
         if (is_integer($res = $uri->comparePath($nav_uri))) {
             if ($res >= 0) {
                 $result[$key]['in_path'] = true;
             }
             if ($res == 0) {
                 $result[$key]['selected'] = true;
             }
         }
     }
     return $result;
 }
 /**
  * @covers MediaCore\Uri::getHost
  */
 public function testGetHost()
 {
     $url = 'http://example.com/path/to/directory?foo=bar';
     $uri = new Uri($url);
     $this->assertEquals('example.com', $uri->getHost());
     $url = 'http://example.com:8080/path/to/directory?foo=bar';
     $uri = new Uri($url);
     $this->assertEquals('example.com', $uri->getHost());
 }
Beispiel #7
0
 public function testSetGetHost()
 {
     $host = 'somenewhost';
     $this->uri->setHost($host);
     $this->assertEquals($host, $this->uri->getHost());
 }
Beispiel #8
0
 public function testSetPort()
 {
     $uri = new Uri('http', 'www.yahoo.com:8080');
     $this->assertEquals('www.yahoo.com:8080', $uri->getAuthority());
     $this->assertEquals('www.yahoo.com', $uri->getHost());
     $this->assertEquals(8080, $uri->getPort());
     $this->assertEquals('http://www.yahoo.com:8080', $uri->toString());
 }