function testParseMultipleParameters() { $url = new SimpleUrl("/?a=A&b=B"); $this->assertEqual($url->getPath(), "/"); $this->assertEqual(count($request = $url->getRequest()), 2); $this->assertEqual($request["a"], "A"); $this->assertEqual($request["b"], "B"); }
/** * Reads the current cookies within the base URL. * @param string $name Key of cookie to find. * @param SimpleUrl $base Base URL to search from. * @return string/boolean Null if there is no base URL, false * if the cookie is not set. * @access public */ function getBaseCookieValue($name, $base) { if (!$base) { return null; } return $this->getCookieValue($base->getHost(), $base->getPath(), $name); }
/** * Adds another location to the realm. * @param SimpleUrl $url Somewhere in realm. * @access public */ function stretch($url) { $this->root = $this->getCommonPath($this->root, $url->getPath()); }
function testMakingCoordinateUrlAbsolute() { $url = new SimpleUrl('?1,2'); $this->assertEqual($url->getPath(), ''); $absolute = $url->makeAbsolute('http://host.com/I/am/here/'); $this->assertEqual($absolute->getScheme(), 'http'); $this->assertEqual($absolute->getHost(), 'host.com'); $this->assertEqual($absolute->getPath(), '/I/am/here/'); $this->assertEqual($absolute->getX(), 1); $this->assertEqual($absolute->getY(), 2); }
/** * Reads the current cookies for the base URL. * @param string $name Key of cookie to find. * @return string Null if there is no base URL, false * if the cookie is not set. * @access public */ function getBaseCookieValue($name) { if (!$this->getBaseUrl()) { return null; } $url = new SimpleUrl($this->getBaseUrl()); return $this->getCookieValue($url->getHost(), $url->getPath(), $name); }
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"); }
/** * Uses a URL to sift relevant cookies by host and * path. Results are list of strings of form "name=value". * @param SimpleUrl $url Url to select by. * @return array Valid name and value pairs. * @access public */ function selectAsPairs($url) { $pairs = array(); foreach ($this->cookies as $cookie) { if ($this->isMatch($cookie, $url->getHost(), $url->getPath(), $cookie->getName())) { $pairs[] = $cookie->getName() . '=' . $cookie->getValue(); } } return $pairs; }
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'); }
/** * @param SimpleUrl * @param SimpleEncoding * @return k_ActingAsSimpleHttpResponse */ protected function fetch(SimpleUrl $url, SimpleEncoding $parameters) { // extract primitives from SimpleTest abstractions $url_path = $url->getPath(); $url_query = array(); parse_str(str_replace('?', '', $url->getEncodedRequest()), $url_query); $method = $parameters->getMethod(); $data = array(); foreach ($parameters->getAll() as $pair) { $data[$pair->getKey()] = $pair->getValue(); } if (!in_array($url->getHost(), array("", $this->servername))) { return new k_ActingAsSimpleHttpResponse($url, $data, array("HTTP/1.1 502"), "External URL requested: " . $url->asString(), $method); } // set up a mocked environment $server = array('SERVER_NAME' => $this->servername, 'REQUEST_METHOD' => $method, 'REQUEST_URI' => $url_path); $headers = new k_VirtualHeaders(); $this->authenticator->addHeaders($headers, $url); foreach ($this->additional_headers as $line) { $headers->addHeaderLine($line); } $socket_buffer = new k_VirtualSocketBuffer(); $parameters->writeHeadersTo($socket_buffer); foreach ($socket_buffer->getLines() as $line) { $headers->addHeaderLine($line); } $superglobals = new k_adapter_MockGlobalsAccess($url_query, $data, $server, $headers->headers()); $response = k()->setContext(new k_HttpRequest("", null, $this->identity_loader, $this->language_loader, $this->translator_loader, $superglobals, $this->cookie_access, $this->session_access))->setComponentCreator($this->components)->setCharsetStrategy($this->charset_strategy)->run($this->root_class_name); $output = new k_SimpleOutputAccess(); $response->out($output); return $output->toSimpleHttpResponse($url, $data, $method); }
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"); $this->assertIdentical($url->getRequest(), $params, "[$raw] request->%s"); $this->assertIdentical($url->getFragment(), $parts[8], "[$raw] fragment->%s"); }