update( 'DocumentationViewer', 'link_base', 'dev/docs' ); // disable automatic module registration so modules don't interfere. Config::inst()->update( 'DocumentationManifest', 'automatic_registration', false ); Config::inst()->remove('DocumentationManifest', 'register_entities'); Config::inst()->update('DocumentationSearch', 'enabled', true); Config::inst()->update( 'DocumentationManifest', 'register_entities', array( array( 'Path' => DOCSVIEWER_PATH . "/tests/docs-search/", 'Title' => 'Docs Search Test', ) ) ); $this->manifest = new DocumentationManifest(true); } public function tearDown() { parent::tearDown(); Config::unnest(); } public function testOpenSearchControllerAccessible() { $c = new DocumentationOpenSearchController(); $response = $c->handleRequest(new SS_HTTPRequest('GET', ''), DataModel::inst()); $this->assertEquals(404, $response->getStatusCode()); Config::inst()->update('DocumentationSearch', 'enabled', false); $response = $c->handleRequest(new SS_HTTPRequest('GET', 'description/'), DataModel::inst()); $this->assertEquals(404, $response->getStatusCode()); // test we get a response to the description. The meta data test will // check that the individual fields are valid but we should check urls // are there Config::inst()->update('DocumentationSearch', 'enabled', true); $response = $c->handleRequest(new SS_HTTPRequest('GET', 'description'), DataModel::inst()); $this->assertEquals(200, $response->getStatusCode()); $desc = new SimpleXMLElement($response->getBody()); $this->assertEquals(2, count($desc->Url)); } }