diff options
| author | Christian Weiske <cweiske@cweiske.de> | 2011-04-14 16:53:46 +0200 | 
|---|---|---|
| committer | Christian Weiske <cweiske@cweiske.de> | 2011-04-14 16:53:46 +0200 | 
| commit | f5ac88ea87723f68d600470140102113ef3838bb (patch) | |
| tree | d97388009e2a35bc804a96ed0bded7f51e767209 /tests/Api | |
| parent | 542824a9ba6da477c0e1969b1c8815d0561dfcdf (diff) | |
| download | semanticscuttle-f5ac88ea87723f68d600470140102113ef3838bb.tar.gz semanticscuttle-f5ac88ea87723f68d600470140102113ef3838bb.tar.bz2 | |
test that opensearch link is the main page HTML head
Diffstat (limited to 'tests/Api')
| -rw-r--r-- | tests/Api/OpenSearchTest.php | 52 | 
1 files changed, 52 insertions, 0 deletions
| 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 @@ +<?php + + +class Api_OpenSearchTest extends TestBaseApi +{ +    protected $urlPart = ''; + + + +    public function testOpenSearchAvailable() +    { +        $req  = $this->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 | 
