Exemplo n.º 1
0
 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");
 }
Exemplo n.º 2
0
 /**
  *    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);
 }
Exemplo n.º 3
0
 /**
  *    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());
 }
Exemplo n.º 4
0
 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);
 }
Exemplo n.º 5
0
 /**
  *    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);
 }
Exemplo n.º 6
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");
 }
Exemplo n.º 7
0
 /**
  *    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;
 }
Exemplo n.º 8
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');
 }
Exemplo n.º 9
0
 /**
  * @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);
 }
Exemplo n.º 10
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");
     $this->assertIdentical($url->getRequest(), $params, "[$raw] request->%s");
     $this->assertIdentical($url->getFragment(), $parts[8], "[$raw] fragment->%s");
 }