Skip to content

Commit d17e9c7

Browse files
committed
Add URL::getUrl method
1 parent 65b4739 commit d17e9c7

File tree

2 files changed

+50
-18
lines changed

2 files changed

+50
-18
lines changed

src/URL.php

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ public function __construct(string $url)
6060
/**
6161
* @return string
6262
*/
63-
#[Pure]
6463
public function __toString() : string
6564
{
6665
return $this->toString();
@@ -262,8 +261,17 @@ public function getScheme() : ?string
262261
*
263262
* @return string
264263
*/
265-
#[Pure]
266264
public function toString() : string
265+
{
266+
return $this->getUrl();
267+
}
268+
269+
/**
270+
* @since 6.1
271+
*
272+
* @return string
273+
*/
274+
public function getUrl() : string
267275
{
268276
$url = $this->getScheme() . '://';
269277
$part = $this->getUser();

tests/URLTest.php

Lines changed: 40 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -23,22 +23,46 @@ public function setUp() : void
2323

2424
public function testSameUrl() : void
2525
{
26-
$url = 'http://domain.tld';
27-
self::assertNotSame($url, (new URL($url))->__toString());
28-
$url = 'http://domain.tld/';
29-
self::assertSame($url, (new URL($url))->__toString());
30-
$url = 'http://domain.tld/foo';
31-
self::assertSame($url, (new URL($url))->__toString());
32-
$url = 'http://domain.tld/foo/';
33-
self::assertSame($url, (new URL($url))->__toString());
34-
$url = 'http://domain.tld/foo/bar';
35-
self::assertSame($url, (new URL($url))->__toString());
36-
$url = 'http://domain.tld/foo/bar/';
37-
self::assertSame($url, (new URL($url))->__toString());
38-
$url = 'http://user:pass@domain.tld:8080/foo/bar?a=1&b=2#id';
39-
self::assertSame($url, (new URL($url))->__toString());
40-
$url = 'http://user:pass@domain.tld:8080/foo/bar/?a=1&b=2#id';
41-
self::assertSame($url, (new URL($url))->__toString());
26+
$expected = 'http://domain.tld';
27+
$url = new URL($expected);
28+
self::assertNotSame($expected, $url->getUrl());
29+
self::assertNotSame($expected, $url->toString());
30+
self::assertNotSame($expected, $url->__toString());
31+
$expected = 'http://domain.tld/';
32+
$url = new URL($expected);
33+
self::assertSame($expected, $url->getUrl());
34+
self::assertSame($expected, $url->toString());
35+
self::assertSame($expected, $url->__toString());
36+
$expected = 'http://domain.tld/foo';
37+
$url = new URL($expected);
38+
self::assertSame($expected, $url->getUrl());
39+
self::assertSame($expected, $url->toString());
40+
self::assertSame($expected, $url->__toString());
41+
$expected = 'http://domain.tld/foo/';
42+
$url = new URL($expected);
43+
self::assertSame($expected, $url->getUrl());
44+
self::assertSame($expected, $url->toString());
45+
self::assertSame($expected, $url->__toString());
46+
$expected = 'http://domain.tld/foo/bar';
47+
$url = new URL($expected);
48+
self::assertSame($expected, $url->getUrl());
49+
self::assertSame($expected, $url->toString());
50+
self::assertSame($expected, $url->__toString());
51+
$expected = 'http://domain.tld/foo/bar/';
52+
$url = new URL($expected);
53+
self::assertSame($expected, $url->getUrl());
54+
self::assertSame($expected, $url->toString());
55+
self::assertSame($expected, $url->__toString());
56+
$expected = 'http://user:pass@domain.tld:8080/foo/bar?a=1&b=2#id';
57+
$url = new URL($expected);
58+
self::assertSame($expected, $url->getUrl());
59+
self::assertSame($expected, $url->toString());
60+
self::assertSame($expected, $url->__toString());
61+
$expected = 'http://user:pass@domain.tld:8080/foo/bar/?a=1&b=2#id';
62+
$url = new URL($expected);
63+
self::assertSame($expected, $url->getUrl());
64+
self::assertSame($expected, $url->toString());
65+
self::assertSame($expected, $url->__toString());
4266
}
4367

4468
public function testPathEndsWithBar() : void

0 commit comments

Comments
 (0)