PrefixSearchTest, SearchEnginePrefixTest: ignore ext. special pages
[lhc/web/wiklou.git] / tests / phpunit / includes / search / SearchEnginePrefixTest.php
index 6a3f95b..e0de588 100644 (file)
@@ -1,9 +1,12 @@
 <?php
+use MediaWiki\MediaWikiServices;
+
 /**
  * @group Search
  * @group Database
  */
 class SearchEnginePrefixTest extends MediaWikiLangTestCase {
+       private $originalHandlers;
 
        /**
         * @var SearchEngine
@@ -45,9 +48,26 @@ class SearchEnginePrefixTest extends MediaWikiLangTestCase {
                }
 
                // Avoid special pages from extensions interferring with the tests
-               $this->setMwGlobals( 'wgSpecialPages', [] );
-               $this->search = SearchEngine::create();
+               $this->setMwGlobals( [
+                       'wgSpecialPages' => [],
+                       'wgHooks' => [],
+               ] );
+
+               $this->search = MediaWikiServices::getInstance()->newSearchEngine();
                $this->search->setNamespaces( [] );
+
+               $this->originalHandlers = TestingAccessWrapper::newFromClass( 'Hooks' )->handlers;
+               TestingAccessWrapper::newFromClass( 'Hooks' )->handlers = [];
+
+               SpecialPageFactory::resetList();
+       }
+
+       public function tearDown() {
+               parent::tearDown();
+
+               TestingAccessWrapper::newFromClass( 'Hooks' )->handlers = $this->originalHandlers;
+
+               SpecialPageFactory::resetList();
        }
 
        protected function searchProvision( array $results = null ) {