merged branch jfsimon/issue-7169 (PR #7179)
This PR was squashed before being merged into the master branch (closes #7179).
Commits
-------
c6fe27f
[2.3] [DomCrawler] adds schema relative URL support to link
Discussion
----------
[2.3] [DomCrawler] adds schema relative URL support to link
Adds support for `//relative/schema` URLs to `DomCrawler` links.
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #7169
---------------------------------------------------------------------------
by stof at 2013-02-25T19:17:10Z
👍
This commit is contained in:
commit
d59cf10593
@ -120,6 +120,11 @@ class Link
|
|||||||
return $baseUri.$uri;
|
return $baseUri.$uri;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// absolute URL with relative schema
|
||||||
|
if (0 === strpos($uri, '//')) {
|
||||||
|
return preg_replace('#^([^/]*)//.*$#', '$1', $this->currentUri).$uri;
|
||||||
|
}
|
||||||
|
|
||||||
// absolute path
|
// absolute path
|
||||||
if ('/' === $uri[0]) {
|
if ('/' === $uri[0]) {
|
||||||
return preg_replace('#^(.*?//[^/]+)(?:\/.*)?$#', '$1', $this->currentUri).$uri;
|
return preg_replace('#^(.*?//[^/]+)(?:\/.*)?$#', '$1', $this->currentUri).$uri;
|
||||||
|
@ -96,6 +96,10 @@ class LinkTest extends \PHPUnit_Framework_TestCase
|
|||||||
array('https://login.foo.com/foo', 'https://localhost/bar/', 'https://login.foo.com/foo'),
|
array('https://login.foo.com/foo', 'https://localhost/bar/', 'https://login.foo.com/foo'),
|
||||||
array('mailto:foo@bar.com', 'http://localhost/foo', 'mailto:foo@bar.com'),
|
array('mailto:foo@bar.com', 'http://localhost/foo', 'mailto:foo@bar.com'),
|
||||||
|
|
||||||
|
// tests schema relative URL (issue #7169)
|
||||||
|
array('//login.foo.com/foo', 'http://localhost/bar/', 'http://login.foo.com/foo'),
|
||||||
|
array('//login.foo.com/foo', 'https://localhost/bar/', 'https://login.foo.com/foo'),
|
||||||
|
|
||||||
array('?foo=2', 'http://localhost?foo=1', 'http://localhost?foo=2'),
|
array('?foo=2', 'http://localhost?foo=1', 'http://localhost?foo=2'),
|
||||||
array('?foo=2', 'http://localhost/?foo=1', 'http://localhost/?foo=2'),
|
array('?foo=2', 'http://localhost/?foo=1', 'http://localhost/?foo=2'),
|
||||||
array('?foo=2', 'http://localhost/bar?foo=1', 'http://localhost/bar?foo=2'),
|
array('?foo=2', 'http://localhost/bar?foo=1', 'http://localhost/bar?foo=2'),
|
||||||
|
Reference in New Issue
Block a user