From f5ac88ea87723f68d600470140102113ef3838bb Mon Sep 17 00:00:00 2001 From: Christian Weiske Date: Thu, 14 Apr 2011 16:53:46 +0200 Subject: [PATCH] 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 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