private function runJobs()
 {
     JobQueueGroup::destroySingletons();
     $jobs = new RunJobs();
     $jobs->loadParamsAndArgs(null, ['quiet' => true], null);
     $jobs->execute();
 }
Пример #2
0
 function testTemplateCategories()
 {
     $title = Title::newFromText("Categorized from template");
     $page = WikiPage::factory($title);
     $user = new User();
     $user->mRights = array('createpage', 'edit', 'purge');
     $page->doEditContent(new WikitextContent('{{Categorising template}}'), 'Create a page with a template', 0, false, $user);
     $this->assertEquals(array(), $title->getParentCategories());
     $template = WikiPage::factory(Title::newFromText('Template:Categorising template'));
     $template->doEditContent(new WikitextContent('[[Category:Solved bugs]]'), 'Add a category through a template', 0, false, $user);
     // Run the job queue
     JobQueueGroup::destroySingletons();
     $jobs = new RunJobs();
     $jobs->loadParamsAndArgs(null, array('quiet' => true), null);
     $jobs->execute();
     $this->assertEquals(array('Category:Solved_bugs' => $title->getPrefixedText()), $title->getParentCategories());
 }
 /**
  * @covers Title::getParentCategories
  */
 public function testTemplateCategories()
 {
     $user = new User();
     $user->mRights = array('createpage', 'edit', 'purge', 'delete');
     $title = Title::newFromText("Categorized from template");
     $page = WikiPage::factory($title);
     $page->doEditContent(new WikitextContent('{{Categorising template}}'), 'Create a page with a template', 0, false, $user);
     $this->assertEquals(array(), $title->getParentCategories(), 'Verify that the category doesn\'t contain the page before the template is created');
     // Create template
     $template = WikiPage::factory(Title::newFromText('Template:Categorising template'));
     $template->doEditContent(new WikitextContent('[[Category:Solved bugs]]'), 'Add a category through a template', 0, false, $user);
     // Run the job queue
     JobQueueGroup::destroySingletons();
     $jobs = new RunJobs();
     $jobs->loadParamsAndArgs(null, array('quiet' => true), null);
     $jobs->execute();
     // Make sure page is in the category
     $this->assertEquals(array('Category:Solved_bugs' => $title->getPrefixedText()), $title->getParentCategories(), 'Verify that the page is in the category after the template is created');
     // Edit the template
     $template->doEditContent(new WikitextContent('[[Category:Solved bugs 2]]'), 'Change the category added by the template', 0, false, $user);
     // Run the job queue
     JobQueueGroup::destroySingletons();
     $jobs = new RunJobs();
     $jobs->loadParamsAndArgs(null, array('quiet' => true), null);
     $jobs->execute();
     // Make sure page is in the right category
     $this->assertEquals(array('Category:Solved_bugs_2' => $title->getPrefixedText()), $title->getParentCategories(), 'Verify that the page is in the right category after the template is edited');
     // Now delete the template
     $error = '';
     $template->doDeleteArticleReal('Delete the template', false, 0, true, $error, $user);
     // Run the job queue
     JobQueueGroup::destroySingletons();
     $jobs = new RunJobs();
     $jobs->loadParamsAndArgs(null, array('quiet' => true), null);
     $jobs->execute();
     // Make sure the page is no longer in the category
     $this->assertEquals(array(), $title->getParentCategories(), 'Verify that the page is no longer in the category after template deletion');
 }
Пример #4
0
 protected function prepareEnvironment()
 {
     global $wgMemc;
     // Don't share DB, storage, or memcached connections
     MediaWikiServices::resetChildProcessServices();
     FileBackendGroup::destroySingleton();
     LockManagerGroup::destroySingletons();
     JobQueueGroup::destroySingletons();
     ObjectCache::clear();
     RedisConnectionPool::destroySingletons();
     $wgMemc = null;
 }
Пример #5
0
 /**
  * @covers WikiPage::doDeleteUpdates
  */
 public function testDoDeleteUpdates()
 {
     $page = $this->createPage("WikiPageTest_testDoDeleteArticle", "[[original text]] foo", CONTENT_MODEL_WIKITEXT);
     $id = $page->getId();
     // Similar to MovePage logic
     wfGetDB(DB_MASTER)->delete('page', array('page_id' => $id), __METHOD__);
     $page->doDeleteUpdates($id);
     // Run the job queue
     JobQueueGroup::destroySingletons();
     $jobs = new RunJobs();
     $jobs->loadParamsAndArgs(null, array('quiet' => true), null);
     $jobs->execute();
     # ------------------------
     $dbr = wfGetDB(DB_SLAVE);
     $res = $dbr->select('pagelinks', '*', array('pl_from' => $id));
     $n = $res->numRows();
     $res->free();
     $this->assertEquals(0, $n, 'pagelinks should contain no more links from the page');
 }
Пример #6
0
 protected function prepareEnvironment()
 {
     global $wgMemc;
     // Don't share DB, storage, or memcached connections
     wfGetLBFactory()->destroyInstance();
     FileBackendGroup::destroySingleton();
     LockManagerGroup::destroySingletons();
     JobQueueGroup::destroySingletons();
     ObjectCache::clear();
     RedisConnectionPool::destroySingletons();
     $wgMemc = null;
 }
Пример #7
0
 /**
  * Resets some well known services that typically have state that may interfere with unit tests.
  * This is a lightweight alternative to resetGlobalServices().
  *
  * @note There is no guarantee that no references remain to stale service instances destroyed
  * by a call to doLightweightServiceReset().
  *
  * @throws MWException if called outside of PHPUnit tests.
  *
  * @see resetGlobalServices()
  */
 private function doLightweightServiceReset()
 {
     global $wgRequest;
     JobQueueGroup::destroySingletons();
     ObjectCache::clear();
     $services = MediaWikiServices::getInstance();
     $services->resetServiceForTesting('MainObjectStash');
     $services->resetServiceForTesting('LocalServerObjectCache');
     $services->getMainWANObjectCache()->clearProcessCache();
     FileBackendGroup::destroySingleton();
     // TODO: move global state into MediaWikiServices
     RequestContext::resetMain();
     if (session_id() !== '') {
         session_write_close();
         session_id('');
     }
     $wgRequest = new FauxRequest();
     MediaWiki\Session\SessionManager::resetCache();
 }
Пример #8
0
 /**
  * Resets some well known services that typically have state that may interfere with unit tests.
  * This is a lightweight alternative to resetGlobalServices().
  *
  * @note There is no guarantee that no references remain to stale service instances destroyed
  * by a call to doLightweightServiceReset().
  *
  * @throws MWException if called outside of PHPUnit tests.
  *
  * @see resetGlobalServices()
  */
 private function doLightweightServiceReset()
 {
     global $wgRequest;
     JobQueueGroup::destroySingletons();
     ObjectCache::clear();
     FileBackendGroup::destroySingleton();
     // TODO: move global state into MediaWikiServices
     RequestContext::resetMain();
     MediaHandler::resetCache();
     if (session_id() !== '') {
         session_write_close();
         session_id('');
     }
     $wgRequest = new FauxRequest();
     MediaWiki\Session\SessionManager::resetCache();
 }