Skip to content

Commit f040c1b

Browse files
author
Martin Brecht-Precht
committed
Added some more tests.
1 parent d3dd4ad commit f040c1b

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

Diff for: src/Url.php

+2
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,7 @@ public function removeQueryParameter(QueryParameterInterface $queryParameter)
359359
for ($i = 0; $i < count($this->queryParameters); $i++) {
360360
if ($this->queryParameters[$i]->getKey() === $queryParameter->getKey()) {
361361
unset($this->queryParameters[$i]);
362+
$this->queryParameters = array_values($this->queryParameters);
362363
return $this;
363364
}
364365
}
@@ -378,6 +379,7 @@ public function removeQueryParameterByKey($key)
378379
for ($i = 0; $i < count($this->queryParameters); $i++) {
379380
if ($this->queryParameters[$i]->getKey() === $key) {
380381
unset($this->queryParameters[$i]);
382+
$this->queryParameters = array_values($this->queryParameters);
381383
return $this;
382384
}
383385
}

Diff for: test/UrlTest.php

+22-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,12 @@ public function testParser()
1414
{
1515
$url = new Url('https://john:[email protected]:8443/path/to/resource?arg1=123&arg2=test#fragment');
1616

17+
$this->assertTrue($url->hasScheme());
18+
$this->assertTrue($url->hasHostname());
19+
$this->assertTrue($url->hasPath());
20+
21+
$this->assertEquals(2, $url->countQueryParameters());
22+
1723
$scheme = $url->getScheme();
1824
fwrite(STDOUT, 'Scheme "' . $scheme . '"' . PHP_EOL);
1925

@@ -37,9 +43,24 @@ public function testParser()
3743
fwrite(STDOUT, 'Query parameter "' . $queryParameter->getKey() . '" is "' . $queryParameter->getValue() . '"' . PHP_EOL);
3844
}
3945

46+
$url->setQueryParameters($queryParameters);
47+
48+
$queryParameter = new QueryParameter('arrrrrg1', '789');
49+
$queryParameter
50+
->setKey('arg1')
51+
->setValue('456');
52+
$url
53+
->addQueryParameter($queryParameter)
54+
->removeQueryParameter($queryParameter);
55+
4056
$fragment = $url->getFragment();
4157
fwrite(STDOUT, 'Fragment "' . $fragment . '"' . PHP_EOL);
4258

59+
$queryParameter = new QueryParameter('arrrrrg1', '789');
60+
$queryParameter
61+
->setKey('arg1')
62+
->setValue('456');
63+
4364
$url
4465
->setScheme('http')
4566
->setHostname('yourdomain.com')
@@ -48,7 +69,7 @@ public function testParser()
4869
->setPassword('supersecret')
4970
->setPath('path/to/another/resource')
5071
->removeQueryParameterByKey('arg2')
51-
->addQueryParameter(new QueryParameter('arg1', '456'))
72+
->addQueryParameter($queryParameter)
5273
->addQueryParameter(new QueryParameter('arg3', 'test'))
5374
->setFragment('target');
5475

0 commit comments

Comments
 (0)