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/"); }
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"); } }
/** * 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()); }
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"); }
/** * 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}"); }
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'); }
/** * 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}"); }
/** * 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}"); }
/** * 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}"); }
/** * 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); }