testEnvironment = new TestEnvironment(); $store = $this->getMockBuilder( '\SMW\Store' ) ->disableOriginalConstructor() ->getMockForAbstractClass(); $this->testEnvironment->registerObject( 'Store', $store ); } protected function tearDown(): void { $this->testEnvironment->tearDown(); parent::tearDown(); } public function testCanConstruct() { $this->assertInstanceOf( '\SMW\MediaWiki\Specials\SpecialAsk', new SpecialAsk() ); } public function testExecuteWithValidUser() { $outputPage = $this->getMockBuilder( '\MediaWiki\Output\OutputPage' ) ->disableOriginalConstructor() ->getMock(); $outputPage->expects( $this->atLeastOnce() ) ->method( 'addHtml' ); $query = ''; $instance = new SpecialAsk(); $instance->getContext()->setTitle( MediaWikiServices::getInstance()->getTitleFactory()->newFromText( 'SemanticMadiaWiki' ) ); $oldOutput = $instance->getOutput(); $instance->getContext()->setOutput( $outputPage ); $instance->getContext()->setUser( new MockSuperUser() ); $instance->execute( $query ); // Context is static avoid any succeeding tests to fail $instance->getContext()->setOutput( $oldOutput ); } }