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