diff --git a/tests/forms/RequirementsTest.php b/tests/forms/RequirementsTest.php index ac588a0ba..0958fd8bc 100644 --- a/tests/forms/RequirementsTest.php +++ b/tests/forms/RequirementsTest.php @@ -18,8 +18,10 @@ class RequirementsTest extends SapphireTest { $backend->javascript('http://www.mydomain.com/test.js'); $backend->javascript('https://www.mysecuredomain.com/test.js'); + $backend->javascript('//scheme-relative.example.com/test.js'); $backend->css('http://www.mydomain.com/test.css'); $backend->css('https://www.mysecuredomain.com/test.css'); + $backend->css('//scheme-relative.example.com/test.css'); $html = $backend->includeInHTML(false, self::$html_template); @@ -31,6 +33,10 @@ class RequirementsTest extends SapphireTest { (strpos($html, 'https://www.mysecuredomain.com/test.js') !== false), 'Load external secure javascript URL' ); + $this->assertTrue( + (strpos($html, '//scheme-relative.example.com/test.js') !== false), + 'Load external scheme-relative javascript URL' + ); $this->assertTrue( (strpos($html, 'http://www.mydomain.com/test.css') !== false), 'Load external CSS URL' @@ -39,6 +45,10 @@ class RequirementsTest extends SapphireTest { (strpos($html, 'https://www.mysecuredomain.com/test.css') !== false), 'Load external secure CSS URL' ); + $this->assertTrue( + (strpos($html, '//scheme-relative.example.com/test.css') !== false), + 'Load scheme-relative CSS URL' + ); } protected function setupCombinedRequirements($backend) { diff --git a/view/Requirements.php b/view/Requirements.php index e7e8ab2fa..57bfce3ed 100644 --- a/view/Requirements.php +++ b/view/Requirements.php @@ -784,7 +784,7 @@ class Requirements_Backend { * @return string|boolean */ protected function path_for_file($fileOrUrl) { - if(preg_match('/^http[s]?/', $fileOrUrl)) { + if(preg_match('{^//|http[s]?}', $fileOrUrl)) { return $fileOrUrl; } elseif(Director::fileExists($fileOrUrl)) { $prefix = Director::baseURL();