getMockBuilder( '\MediaWiki\Title\Title' ) ->disableOriginalConstructor() ->getMock(); $title->expects( $this->any() ) ->method( 'getFragment' ) ->willReturn( 'Foo' ); $instance = new SearchResult( $title ); $this->assertInstanceOf( '\Title', $instance->getSectionTitle() ); } public function testGetSectionTitle_WithoutFragment() { $title = $this->getMockBuilder( '\MediaWiki\Title\Title' ) ->disableOriginalConstructor() ->getMock(); $title->expects( $this->any() ) ->method( 'getFragment' ) ->willReturn( '' ); $instance = new SearchResult( $title ); $this->assertNull( $instance->getSectionTitle() ); } public function testExcerpt() { $title = $this->getMockBuilder( '\MediaWiki\Title\Title' ) ->disableOriginalConstructor() ->getMock(); $title->expects( $this->any() ) ->method( 'getFragment' ) ->willReturn( '' ); $instance = new SearchResult( $title ); $instance->setExcerpt( 'Foo ...' ); $this->assertEquals( 'Foo ...', $instance->getExcerpt() ); } public function testGetTitleSnippet() { $title = $this->getMockBuilder( '\MediaWiki\Title\Title' ) ->disableOriginalConstructor() ->getMock(); $title->expects( $this->any() ) ->method( 'getNamespace' ) ->willReturn( NS_MAIN ); $title->expects( $this->any() ) ->method( 'getDBKey' ) ->willReturn( 'Foo' ); $title->expects( $this->any() ) ->method( 'getFragment' ) ->willReturn( '' ); $instance = new SearchResult( $title ); $this->assertEquals( 'Foo', $instance->getTitleSnippet() ); } public function testGetTextSnippet_HasHighlight() { $title = $this->getMockBuilder( '\MediaWiki\Title\Title' ) ->disableOriginalConstructor() ->getMock(); $instance = new SearchResult( $title ); $instance->setExcerpt( 'Foobar', true ); $this->assertEquals( "Foobar", $instance->getTextSnippet( [ 'Foo' ] ) ); } public function testGetTextSnippet_NoHighlight() { $title = $this->getMockBuilder( '\MediaWiki\Title\Title' ) ->disableOriginalConstructor() ->getMock(); $instance = new SearchResult( $title ); $instance->setExcerpt( 'Foobar' ); $this->assertIsString( $instance->getTextSnippet( [ 'Foo' ] ) ); } }