Skip to content

Commit 5a05cdc

Browse files
hrachdg
authored andcommitted
Url: fixed isEqual() for same param values & regular sorting on numbers
1 parent 9ad00c8 commit 5a05cdc

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

src/Http/Url.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -414,9 +414,9 @@ public function isEqual($url)
414414
{
415415
$url = new self($url);
416416
parse_str($url->query, $query);
417-
sort($query);
417+
ksort($query);
418418
parse_str($this->query, $query2);
419-
sort($query2);
419+
ksort($query2);
420420
$http = in_array($this->scheme, array('http', 'https'), TRUE);
421421
return $url->scheme === $this->scheme
422422
&& !strcasecmp(rawurldecode($url->host), rawurldecode($this->host))

tests/Http/Url.isEqual().phpt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,14 @@ Assert::true( $url->isEqual('http://example.com/?arr[0]=item1&arr[1]=item2') );
3131
Assert::false( $url->isEqual('http://example.com/?arr[1]=item1&arr[0]=item2') );
3232

3333

34+
$url = new Url('http://example.com/?a=9999&b=127.0.0.1&c=1234&d=123456789');
35+
Assert::true( $url->isEqual('http://example.com/?d=123456789&a=9999&b=127.0.0.1&c=1234') );
36+
37+
38+
$url = new Url('http://example.com/?a=123&b=456');
39+
Assert::false( $url->isEqual('http://example.com/?a=456&b=123') );
40+
41+
3442
$url = new Url('http://user:pass@example.com');
3543
Assert::true( $url->isEqual('http://example.com') );
3644

0 commit comments

Comments
 (0)