File: UrlTest.php

package info (click to toggle)
php-pecl-http 2.0.4-1
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 1,436 kB
  • ctags: 1,839
  • sloc: ansic: 15,322; php: 726; xml: 254; makefile: 10; pascal: 3
file content (49 lines) | stat: -rw-r--r-- 1,594 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php

class UrlTest extends PHPUnit_Framework_TestCase {
	protected $url; 
	function setUp() {
		$this->url = "http://user:pass@www.example.com:8080/path/file.ext".
			"?foo=bar&more[]=1&more[]=2#hash";
    }

	function testStandard() {
		$this->assertEquals($this->url, (string) new http\Url($this->url));
		
		$url = new http\Url($this->url, 
			array("path" => "changed", "query" => "foo=&added=this"), 
			http\Url::JOIN_PATH |
			http\Url::JOIN_QUERY |
			http\Url::STRIP_AUTH |
			http\Url::STRIP_FRAGMENT
		);

		$this->assertEquals("http", $url->scheme);
		$this->assertEmpty($url->user);
		$this->assertEmpty($url->pass);
		$this->assertEquals("www.example.com", $url->host);
		$this->assertEquals(8080, $url->port);
		$this->assertEquals("/path/changed", $url->path);
		$this->assertEquals("more%5B0%5D=1&more%5B1%5D=2&added=this", $url->query);
        $this->assertEmpty($url->fragment);
    }

    function testMod() {
        $tmp = new http\Url($this->url);
        $mod = $tmp->mod(array("query" => "set=1"), http\Url::REPLACE);
        $this->assertNotEquals($tmp->toArray(), $mod->toArray());
        $this->assertEquals("set=1", $mod->query);
        $this->assertEquals("new_fragment", $tmp->mod("#new_fragment")->fragment);
    }

    function testStrings() {
        $url = new http\Url($this->url);
        $this->assertEquals((string) $url, (string) new http\Url((string) $url));
    }

    function testArrays() {
        $url = new http\Url($this->url);
		$url2 = new http\Url($url->toArray());
        $this->assertEquals($url->toArray(), $url2->toArray());
    }
}