Пример #1
0
 function testBasicParsing()
 {
     $url = new SimpleUrl("https://www.lastcraft.com/test/");
     $this->assertEqual($url->getScheme(), "https");
     $this->assertEqual($url->getHost(), "www.lastcraft.com");
     $this->assertEqual($url->getPath(), "/test/");
 }
Пример #2
0
 function assertUrl($raw, $parts, $params = false, $coords = false)
 {
     if (!is_array($params)) {
         $params = array();
     }
     $url = new SimpleUrl($raw);
     $this->assertIdentical($url->getScheme(), $parts[0], "[{$raw}] scheme -> %s");
     $this->assertIdentical($url->getUsername(), $parts[1], "[{$raw}] username -> %s");
     $this->assertIdentical($url->getPassword(), $parts[2], "[{$raw}] password -> %s");
     $this->assertIdentical($url->getHost(), $parts[3], "[{$raw}] host -> %s");
     $this->assertIdentical($url->getPort(), $parts[4], "[{$raw}] port -> %s");
     $this->assertIdentical($url->getPath(), $parts[5], "[{$raw}] path -> %s");
     $this->assertIdentical($url->getTld(), $parts[6], "[{$raw}] tld -> %s");
     $this->assertIdentical($url->getEncodedRequest(), $parts[7], "[{$raw}] encoded -> %s");
     $this->assertIdentical($url->getFragment(), $parts[8], "[{$raw}] fragment -> %s");
     if ($coords) {
         $this->assertIdentical($url->getX(), $coords[0], "[{$raw}] x -> %s");
         $this->assertIdentical($url->getY(), $coords[1], "[{$raw}] y -> %s");
     }
 }
Пример #3
0
 /**
  *    Test to see if link is an absolute one.
  *    @param string $url     Url to test.
  *    @return boolean        True if absolute.
  *    @access protected
  */
 function _linkIsAbsolute($url)
 {
     $parsed = new SimpleUrl($url);
     return (bool) ($parsed->getScheme() && $parsed->getHost());
 }
Пример #4
0
 function assertUrl($raw, $parts, $params = false)
 {
     if (!is_array($params)) {
         $params = array();
     }
     $url = new SimpleUrl($raw);
     $this->assertIdentical($url->getScheme(), $parts[0], "[{$raw}] scheme->%s");
     $this->assertIdentical($url->getUsername(), $parts[1], "[{$raw}] username->%s");
     $this->assertIdentical($url->getPassword(), $parts[2], "[{$raw}] password->%s");
     $this->assertIdentical($url->getHost(), $parts[3], "[{$raw}] host->%s");
     $this->assertIdentical($url->getPort(), $parts[4], "[{$raw}] port->%s");
     $this->assertIdentical($url->getPath(), $parts[5], "[{$raw}] path->%s");
     $this->assertIdentical($url->getTld(), $parts[6], "[{$raw}] tld->%s");
     $this->assertIdentical($url->getEncodedRequest(), $parts[7], "[{$raw}] encoded->%s");
     $query = new SimpleQueryString();
     foreach ($params as $key => $value) {
         $query->add($key, $value);
     }
     $this->assertIdentical($url->getRequest(), $query, "[{$raw}] request->%s");
     $this->assertIdentical($url->getFragment(), $parts[8], "[{$raw}] fragment->%s");
 }
Пример #5
0
 /**
  *    Replaces unknown sections to turn a relative
  *    URL into an absolute one. The base URL can
  *    be either a string or a SimpleUrl object.
  *    @param string/SimpleUrl $base       Base URL.
  *    @access public
  */
 function makeAbsolute($base)
 {
     if (!is_object($base)) {
         $base = new SimpleUrl($base);
     }
     $scheme = $this->getScheme() ? $this->getScheme() : $base->getScheme();
     $host = $this->getHost() ? $this->getHost() : $base->getHost();
     $port = $this->_extractAbsolutePort($base);
     $path = $this->normalisePath($this->_extractAbsolutePath($base));
     $identity = $this->_getIdentity() ? $this->_getIdentity() . '@' : '';
     $encoded = $this->getEncodedRequest();
     $fragment = $this->getFragment() ? '#' . $this->getFragment() : '';
     return new SimpleUrl("{$scheme}://{$identity}{$host}{$port}{$path}{$encoded}{$fragment}");
 }
Пример #6
0
 function testDOSDirnameAfterFile()
 {
     $url = new SimpleUrl('file://C:\\config.sys');
     $this->assertEqual($url->getScheme(), 'file');
     $this->assertIdentical($url->getHost(), false);
     $this->assertEqual($url->getPath(), '/C:/config.sys');
 }
Пример #7
0
 /**
  *    Replaces unknown sections to turn a relative
  *    URL into an absolute one. The base URL can
  *    be either a string or a SimpleUrl object.
  *    @param string/SimpleUrl $base       Base URL.
  *    @access public
  */
 function makeAbsolute($base)
 {
     if (!is_object($base)) {
         $base = new SimpleUrl($base);
     }
     $scheme = $this->getScheme() ? $this->getScheme() : $base->getScheme();
     $host = $this->getHost() ? $this->getHost() : $base->getHost();
     if (substr($this->_path, 0, 1) == "/") {
         $path = $this->normalisePath($this->_path);
     } else {
         $path = $this->normalisePath($base->getBasePath() . $this->_path);
     }
     $identity = '';
     if ($this->_username && $this->_password) {
         $identity = $this->_username . ':' . $this->_password . '@';
     }
     $encoded = $this->getEncodedRequest();
     $fragment = $this->getFragment() ? '#' . $this->getFragment() : '';
     return new SimpleUrl("{$scheme}://{$identity}{$host}{$path}{$encoded}{$fragment}");
 }
Пример #8
0
 /**
  *    Replaces unknown sections to turn a relative
  *    URL into an absolute one. The base URL can
  *    be either a string or a SimpleUrl object.
  *    @param string/SimpleUrl $base       Base URL.
  *    @access public
  */
 function makeAbsolute($base)
 {
     if (!is_object($base)) {
         $base = new SimpleUrl($base);
     }
     if ($this->getHost()) {
         $scheme = $this->getScheme();
         $host = $this->getHost();
         $port = $this->getPort() ? ':' . $this->getPort() : '';
         $identity = $this->getIdentity() ? $this->getIdentity() . '@' : '';
         if (!$identity) {
             $identity = $base->getIdentity() ? $base->getIdentity() . '@' : '';
         }
     } else {
         $scheme = $base->getScheme();
         $host = $base->getHost();
         $port = $base->getPort() ? ':' . $base->getPort() : '';
         $identity = $base->getIdentity() ? $base->getIdentity() . '@' : '';
     }
     $path = $this->normalisePath($this->extractAbsolutePath($base));
     $encoded = $this->getEncodedRequest();
     $fragment = $this->getFragment() ? '#' . $this->getFragment() : '';
     $coords = $this->getX() === false ? '' : '?' . $this->getX() . ',' . $this->getY();
     return new SimpleUrl("{$scheme}://{$identity}{$host}{$port}{$path}{$encoded}{$fragment}{$coords}");
 }
Пример #9
0
 /**
  *    Replaces unknown sections to turn a relative
  *    URL into an absolute one. The base URL can
  *    be either a string or a SimpleUrl object.
  *    @param string/SimpleUrl $base       Base URL.
  *    @access public
  */
 function makeAbsolute($base)
 {
     if (!is_object($base)) {
         $base = new SimpleUrl($base);
     }
     $scheme = $this->getScheme() ? $this->getScheme() : $base->getScheme();
     $host = $this->getHost();
     $port = $this->getPort() ? ':' . $this->getPort() : '';
     $path = $this->normalisePath($this->_path);
     if (!$host) {
         $host = $base->getHost();
         $port = $base->getPort() ? ':' . $base->getPort() : '';
         if ($this->_isRelativePath($this->_path)) {
             $path = $this->normalisePath($base->getBasePath() . $this->_path);
         }
     }
     $identity = $this->_getIdentity() ? $this->_getIdentity() . '@' : '';
     $encoded = $this->getEncodedRequest();
     $fragment = $this->getFragment() ? '#' . $this->getFragment() : '';
     $coords = $this->_x !== false ? '?' . $this->_x . ',' . $this->_y : '';
     return new SimpleUrl("{$scheme}://{$identity}{$host}{$port}{$path}{$encoded}{$fragment}{$coords}");
 }
Пример #10
0
 /**
  *    Replaces unknown sections to turn a relative
  *    URL into an absolute one.
  *    @param string $base            Base URL.
  *    @access public
  */
 function makeAbsolute($base) {
     $base_url = new SimpleUrl($base);
     if (!$this->getScheme()) {
         $this->_scheme = $base_url->getScheme();
     }
     if (!$this->getHost()) {
         $this->_host = $base_url->getHost();
     }
     if (substr($this->getPath(), 0, 1) != "/") {
         $this->_path = $base_url->getBasePath() . $this->getPath();
     }
     $this->_path = $this->normalisePath($this->_path);
 }