From aea9c9ddbb1c0fd51192ebdcb1d1dfa258298e8c Mon Sep 17 00:00:00 2001 From: Christian Weiske Date: Thu, 12 May 2011 19:09:30 +0200 Subject: [PATCH] fix a test that failed when using a base URL without protocol --- tests/Api/OpenSearchTest.php | 2 +- tests/TestBaseApi.php | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/tests/Api/OpenSearchTest.php b/tests/Api/OpenSearchTest.php index 050713b..f438b46 100644 --- a/tests/Api/OpenSearchTest.php +++ b/tests/Api/OpenSearchTest.php @@ -27,7 +27,7 @@ class Api_OpenSearchTest extends TestBaseApi 1, count($arElements), 'OpenSearch link in HTML is missing' ); - $searchDescUrl = (string)$arElements[0]['href']; + $searchDescUrl = $this->completeUrl((string)$arElements[0]['href']); $this->assertNotNull($searchDescUrl, 'Search description URL is empty'); $req = new HTTP_Request2($searchDescUrl); diff --git a/tests/TestBaseApi.php b/tests/TestBaseApi.php index 8ed41cd..036ab6b 100644 --- a/tests/TestBaseApi.php +++ b/tests/TestBaseApi.php @@ -92,6 +92,23 @@ class TestBaseApi extends TestBase } + /** + * Completes an URL that's missing the protocol. + * Useful when re-using URLs extracted from HTML + * + * @param string $url Potentially partial URL + * + * @return string Full URL + */ + protected function completeUrl($url) + { + if (substr($url, 0, 2) == '//') { + $url = 'http:' . $url; + } + return $url; + } + + /** * Creates a user and a HTTP request object and prepares