From f5ac88ea87723f68d600470140102113ef3838bb Mon Sep 17 00:00:00 2001 From: Christian Weiske Date: Thu, 14 Apr 2011 16:53:46 +0200 Subject: test that opensearch link is the main page HTML head --- tests/Api/OpenSearchTest.php | 52 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 tests/Api/OpenSearchTest.php (limited to 'tests/Api/OpenSearchTest.php') diff --git a/tests/Api/OpenSearchTest.php b/tests/Api/OpenSearchTest.php new file mode 100644 index 0000000..346f026 --- /dev/null +++ b/tests/Api/OpenSearchTest.php @@ -0,0 +1,52 @@ +getRequest(); + $xhtml = $req->send()->getBody(); + + $xml = simplexml_load_string($xhtml); + $xml->registerXPathNamespace('h', reset($xml->getDocNamespaces())); + + $this->assertInstanceOf( + 'SimpleXMLElement', $xml, + 'SemanticScuttle main page XHTML could not be loaded - maybe invalid?' + ); + + $arElements = $xml->xpath( + '//h:head/h:link' + . '[@rel="search" and @type="application/opensearchdescription+xml"]' + ); + $this->assertEquals( + 1, count($arElements), + 'OpenSearch link in HTML is missing' + ); + $searchDescUrl = (string)$arElements[0]['href']; + $this->assertNotNull($searchDescUrl, 'Search description URL is empty'); + + //FIXME: verify that URL exists + $req = new HTTP_Request2($searchDescUrl); + $res = $req->send(); + $this->assertEquals( + 200, $res->getStatus(), + 'HTTP response status code is not 200' + ); + + $this->assertEquals( + $GLOBALS['unittestUrl'] . 'api/opensearch.php', + $searchDescUrl, + 'OpenSearch URL found, but it is not the expected one.' + . ' It may be that you misconfigured the "unittestUrl" setting' + ); + } + +} + +?> \ No newline at end of file -- cgit v1.2.3-54-g00ecf From dbccc1781e374f36225a3bdbc37b6f43d698a0b5 Mon Sep 17 00:00:00 2001 From: Christian Weiske Date: Thu, 14 Apr 2011 16:55:51 +0200 Subject: remove fixme --- tests/Api/OpenSearchTest.php | 1 - 1 file changed, 1 deletion(-) (limited to 'tests/Api/OpenSearchTest.php') diff --git a/tests/Api/OpenSearchTest.php b/tests/Api/OpenSearchTest.php index 346f026..72b4e4d 100644 --- a/tests/Api/OpenSearchTest.php +++ b/tests/Api/OpenSearchTest.php @@ -31,7 +31,6 @@ class Api_OpenSearchTest extends TestBaseApi $searchDescUrl = (string)$arElements[0]['href']; $this->assertNotNull($searchDescUrl, 'Search description URL is empty'); - //FIXME: verify that URL exists $req = new HTTP_Request2($searchDescUrl); $res = $req->send(); $this->assertEquals( -- cgit v1.2.3-54-g00ecf From 8a87a245b8bba49abd6ad7f9f457c421b09d9e30 Mon Sep 17 00:00:00 2001 From: Christian Weiske Date: Thu, 14 Apr 2011 16:58:47 +0200 Subject: test opensearch api content type --- tests/Api/OpenSearchTest.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'tests/Api/OpenSearchTest.php') diff --git a/tests/Api/OpenSearchTest.php b/tests/Api/OpenSearchTest.php index 72b4e4d..a242319 100644 --- a/tests/Api/OpenSearchTest.php +++ b/tests/Api/OpenSearchTest.php @@ -6,7 +6,6 @@ class Api_OpenSearchTest extends TestBaseApi protected $urlPart = ''; - public function testOpenSearchAvailable() { $req = $this->getRequest(); @@ -46,6 +45,15 @@ class Api_OpenSearchTest extends TestBaseApi ); } + public function testOpenSearchContentType() + { + $res = $this->getRequest('api/opensearch.php')->send(); + $this->assertEquals( + 'text/xml; charset=utf-8', + $res->getHeader('content-type') + ); + } + } ?> \ No newline at end of file -- cgit v1.2.3-54-g00ecf From 5d22905ce7eb97d60c3dafddc3e96136a2b94436 Mon Sep 17 00:00:00 2001 From: Christian Weiske Date: Thu, 14 Apr 2011 17:04:57 +0200 Subject: verify we get the correct search URL --- tests/Api/OpenSearchTest.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'tests/Api/OpenSearchTest.php') diff --git a/tests/Api/OpenSearchTest.php b/tests/Api/OpenSearchTest.php index a242319..050713b 100644 --- a/tests/Api/OpenSearchTest.php +++ b/tests/Api/OpenSearchTest.php @@ -54,6 +54,23 @@ class Api_OpenSearchTest extends TestBaseApi ); } + public function testOpenSearchSearchUrl() + { + $xml = $this->getRequest('api/opensearch.php')->send()->getBody(); + $x = simplexml_load_string($xml); + $x->registerXPathNamespace('os', reset($x->getDocNamespaces())); + + $arElements = $x->xpath('//os:Url[@type="text/html"]'); + $this->assertEquals( + 1, count($arElements), + 'Url in OpenSearch description is missing' + ); + $this->assertEquals( + $GLOBALS['unittestUrl'] . 'search.php/all/{searchTerms}', + (string)$arElements[0]['template'] + ); + } + } ?> \ No newline at end of file -- cgit v1.2.3-54-g00ecf