Skip to content

Commit c84f4fd

Browse files
committed
Url: fixed isEqual() for same param values & regular sorting on numbers
1 parent 2d43b10 commit c84f4fd

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
@@ -423,9 +423,9 @@ public function isEqual($url)
423423
{
424424
$url = new self($url);
425425
$query = $url->query;
426-
sort($query);
426+
ksort($query);
427427
$query2 = $this->query;
428-
sort($query2);
428+
ksort($query2);
429429
$http = in_array($this->scheme, array('http', 'https'), TRUE);
430430
return $url->scheme === $this->scheme
431431
&& !strcasecmp($url->host, $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)