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());
 }
Esempio n. 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());
 }
Esempio n. 3
0
 /**
  * @param string $toResolve
  * @return Uri
  * @link http://tools.ietf.org/html/rfc3986#section-5.2.2
  */
 public function resolve($toResolve)
 {
     $r = new Uri($toResolve);
     if ($r->__toString() === '') {
         return clone $this;
     }
     $base = $this;
     $t = new \StdClass();
     $t->scheme = '';
     $t->authority = '';
     $t->path = '';
     $t->query = '';
     $t->fragment = '';
     if ('' !== $r->getScheme()) {
         $t->scheme = $r->getScheme();
         $t->authority = $r->getAuthority();
         $t->path = $this->removeDotSegments($r->getPath());
         $t->query = $r->getQuery();
     } else {
         if ('' !== $r->getAuthority()) {
             $t->authority = $r->getAuthority();
             $t->path = $this->removeDotSegments($r->getPath());
             $t->query = $r->getQuery();
         } else {
             if ('' == $r->getPath()) {
                 $t->path = $base->getPath();
                 if ($r->getQuery()) {
                     $t->query = $r->getQuery();
                 } else {
                     $t->query = $base->getQuery();
                 }
             } else {
                 if ($r->getPath() && substr($r->getPath(), 0, 1) == "/") {
                     $t->path = $this->removeDotSegments($r->getPath());
                 } else {
                     $t->path = $this->mergePaths($base->getPath(), $r->getPath());
                 }
                 $t->query = $r->getQuery();
             }
             $t->authority = $base->getAuthority();
         }
         $t->scheme = $base->getScheme();
     }
     $t->fragment = $r->getFragment();
     $result = $this->reconstitute($t->scheme, $t->authority, $t->path, $t->query, $t->fragment);
     return new Uri($result);
 }
Esempio n. 4
0
 /**
  * @covers MediaCore\Uri::getFragment
  */
 public function testGetFragment()
 {
     $url = 'http://www.example.org/foo.html#bar';
     $uri = new Uri($url);
     $this->assertEquals('bar', $uri->getFragment());
 }
Esempio n. 5
0
 public function testSetGetFragment()
 {
     $fragment = 'fragmentation';
     $this->uri->setFragment($fragment);
     $this->assertEquals($fragment, $this->uri->getFragment());
 }
Esempio n. 6
0
 public function testSetFragment()
 {
     $uri = new Uri('http', 'www.yahoo.com', '/', null, 'foo');
     $this->assertEquals('foo', $uri->getFragment());
     $this->assertEquals('http://www.yahoo.com/#foo', $uri->toString());
 }