/** * @see PKPTestCase::tearDown() */ protected function tearDown() { HookRegistry::resetCalledHooks(); parent::tearDown(); }
/** * @covers PKPRequest::getProtocol */ public function testGetProtocolNoHttpsVariable() { $_SERVER = array(); self::assertEquals('http', $this->request->getProtocol()); // The hook should have been triggered once. self::assertEquals(array(array('Request::getProtocol', array('http'))), HookRegistry::getCalledHooks()); // Calling getProtocol() twice should return the same // result without triggering the hook again. HookRegistry::resetCalledHooks(); self::assertEquals('http', $this->request->getProtocol()); self::assertEquals(array(), HookRegistry::getCalledHooks()); }
/** * @covers ArticleSearch */ public function testRetrieveResultsViaPluginHook() { // Diverting a search to the search plugin hook. HookRegistry::register('SubmissionSearch::retrieveResults', array($this, 'callbackRetrieveResults')); $testCases = array(array(null => 'query'), array('1' => 'author'), array('2' => 'title'), array(null => 'query', 1 => 'author', 2 => 'title')); $testFromDate = date('Y-m-d H:i:s', strtotime('2011-03-15 00:00:00')); $testToDate = date('Y-m-d H:i:s', strtotime('2012-03-15 18:30:00')); $error = ''; foreach ($testCases as $testCase) { // Test a simple search with the simulated callback. $journal = new Journal(); $keywords = $testCase; $articleSearch = new ArticleSearch(); $searchResult = $articleSearch->retrieveResults($journal, $keywords, $error, $testFromDate, $testToDate); // Check the parameters passed into the callback. $expectedPage = 1; $expectedItemsPerPage = 20; $expectedTotalResults = 3; $expectedError = ''; $expectedParams = array($journal, $testCase, $testFromDate, $testToDate, $expectedPage, $expectedItemsPerPage, $expectedTotalResults, $expectedError); self::assertEquals($expectedParams, $this->_retrieveResultsParams); // Test and clear the call history of the hook registry. $calledHooks = HookRegistry::getCalledHooks(); self::assertEquals('SubmissionSearch::retrieveResults', $calledHooks[0][0]); HookRegistry::resetCalledHooks(true); // Test whether the result from the hook is being returned. self::assertInstanceOf('VirtualArrayIterator', $searchResult); // Test the total count. self::assertEquals(3, $searchResult->getCount()); // Test the search result. $firstResult = $searchResult->next(); self::assertArrayHasKey('article', $firstResult); self::assertEquals(SUBMISSION_SEARCH_TEST_ARTICLE_FROM_PLUGIN, $firstResult['article']->getId()); self::assertEquals('', $error); } // Remove the test hook. HookRegistry::clear('SubmissionSearch::retrieveResults'); }
/** * @covers PKPRouter::getIndexUrl */ public function testGetIndexUrl() { $this->_setUpMockEnvironment(); $this->setTestConfiguration('request1', 'classes/core/config', false); // no restful URLs $_SERVER = array('HOSTNAME' => 'mydomain.org', 'SCRIPT_NAME' => '/base/index.php'); HookRegistry::resetCalledHooks(); self::assertEquals('http://mydomain.org/base/index.php', $this->router->getIndexUrl($this->request)); // Several hooks should have been triggered. self::assertEquals(array(array('Request::getServerHost', array('mydomain.org')), array('Request::getProtocol', array('http')), array('Request::getBasePath', array('/base')), array('Request::getBaseUrl', array('http://mydomain.org/base')), array('Router::getIndexUrl', array('http://mydomain.org/base/index.php'))), HookRegistry::getCalledHooks()); // Calling getIndexUrl() twice should return the same // result without triggering the hooks again. HookRegistry::resetCalledHooks(); self::assertEquals('http://mydomain.org/base/index.php', $this->router->getIndexUrl($this->request)); self::assertEquals(array(), HookRegistry::getCalledHooks()); }