Esempio n. 1
0
 /**
  * @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());
 }
Esempio n. 3
0
 /**
  * @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');
 }
Esempio n. 4
0
 /**
  * @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());
 }