public function testParameter() { $emptyUrl = new Url(''); $this->assertSame('?test=value', (string) $emptyUrl->parameter('test', 'value')); $this->assertSame('?test%5B0%5D=value', (string) $emptyUrl->parameter('test[]', 'value')); $this->assertSame('?test%5B99%5D=value', (string) $emptyUrl->parameter('test[99]', 'value')); $urlWithParam = new Url('?param=1'); $this->assertSame('?param%5B0%5D=1¶m%5B1%5D=value', (string) $urlWithParam->parameter('param[]', 'value')); $urlWithParams = new Url('?param[0]=123¶m[4]=456'); $this->assertSame('?param%5B0%5D=123¶m%5B4%5D=456¶m%5B5%5D=value', (string) $urlWithParams->parameter('param[]', 'value')); $this->assertSame('?param%5B0%5D=123¶m%5B4%5D=value', (string) $urlWithParams->parameter('param[4]', 'value')); $this->assertSame('?param%5B0%5D=123¶m%5B4%5D=value', (string) $urlWithParams->parameter('param', 'value', 4)); $this->assertSame('?param%5B0%5D=123', (string) $urlWithParams->removeParameter('param[4]')); $this->assertSame('?param%5B0%5D=123', (string) $urlWithParams->removeParameter('param', 4)); }