1<?php
2/**
3 * @author     Jan Schneider <jan@horde.org>
4 * @license    http://www.horde.org/licenses/lgpl21 LGPL 2.1
5 * @category   Horde
6 * @package    Url
7 * @subpackage UnitTests
8 */
9
10class Horde_Url_RemoveTest extends PHPUnit_Framework_TestCase
11{
12    public function testRemoveRaw()
13    {
14        $url = new Horde_Url('test?foo=1&bar=2');
15        $this->assertEquals('test?bar=2', (string)$url->remove('foo'));
16
17        $url = new Horde_Url('test?foo=1&bar=2');
18        $this->assertEquals('test?foo=1', (string)$url->remove('bar'));
19
20        $url = new Horde_Url('test?foo=1&bar=2');
21        $this->assertEquals('test', (string)$url->remove(array('foo', 'bar')));
22
23        $url = new Horde_Url('test?foo=1&bar=2&baz=3');
24        $this->assertEquals('test?bar=2&baz=3', (string)$url->remove('foo'));
25
26        $url = new Horde_Url('test?foo=1#baz');
27        $url->setAnchor('');
28        $this->assertEquals('test?foo=1', (string)$url);
29    }
30
31    public function testRemoveEncoded()
32    {
33        $url = new Horde_Url('test?foo=1&amp;bar=2');
34        $this->assertEquals('test?bar=2', (string)$url->remove('foo'));
35
36        $url = new Horde_Url('test?foo=1&amp;bar=2');
37        $this->assertEquals('test?foo=1', (string)$url->remove('bar'));
38
39        $url = new Horde_Url('test?foo=1&amp;bar=2');
40        $this->assertEquals('test', (string)$url->remove(array('foo', 'bar')));
41
42        $url = new Horde_Url('test?foo=1&amp;bar=2&amp;baz=3');
43        $this->assertEquals('test?bar=2&amp;baz=3', (string)$url->remove('foo'));
44
45        $url = new Horde_Url('test?foo=1&amp;bar=2#baz');
46        $url->setAnchor('');
47        $this->assertEquals('test?foo=1&amp;bar=2', (string)$url);
48    }
49
50    public function testRemoveChaining()
51    {
52        $url = new Horde_Url('test?foo=1&bar=2');
53        $this->assertEquals('test', (string)$url->remove('foo')->remove('bar'));
54    }
55}
56