function testEncodedParameters() { $url = new SimpleUrl(''); $url->addRequestParameter('a', '?!"\'#~@[]{}:;<>,./|£$%^&*()_+-='); $this->assertIdentical($request = $url->getEncodedRequest(), '?a=%3F%21%22%27%23%7E%40%5B%5D%7B%7D%3A%3B%3C%3E%2C.%2F%7C%A3%24%25%5E%26%2A%28%29_%2B-%3D'); $url = new SimpleUrl('?a=%3F%21%22%27%23%7E%40%5B%5D%7B%7D%3A%3B%3C%3E%2C.%2F%7C%A3%24%25%5E%26%2A%28%29_%2B-%3D'); $this->assertEqual($url->getRequest(), array('a' => '?!"\'#~@[]{}:;<>,./|£$%^&*()_+-=')); }
function testUrlWithRequestKeyEncodedAndParamNamLookingLikePair() { $url = new SimpleUrl('/'); $url->addRequestParameter('foo[]=bar', ''); $this->assertEqual($url->getEncodedRequest(), '?foo%5B%5D%3Dbar='); $url = new SimpleUrl('/?foo%5B%5D%3Dbar='); $this->assertEqual($url->getEncodedRequest(), '?foo%5B%5D%3Dbar='); }
function testUrlWithRequestKeyEncoded() { $url = new SimpleUrl('/?foo%5B1%5D=bar'); $this->assertEqual($url->getEncodedRequest(), '?foo%5B1%5D=bar'); $url->addRequestParameter('a[1]', 'b[]'); $this->assertEqual($url->getEncodedRequest(), '?foo%5B1%5D=bar&a%5B1%5D=b%5B%5D'); $url = new SimpleUrl('/'); $url->addRequestParameter('a[1]', 'b[]'); $this->assertEqual($url->getEncodedRequest(), '?a%5B1%5D=b%5B%5D'); // param name, looking like pair $url = new SimpleUrl('/'); $url->addRequestParameter('foo[]=bar', ''); $this->assertEqual($url->getEncodedRequest(), '?foo%5B%5D%3Dbar='); $url = new SimpleUrl('/?foo%5B%5D%3Dbar='); $this->assertEqual($url->getEncodedRequest(), '?foo%5B%5D%3Dbar='); }