X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=tests%2Fphpunit%2Fincludes%2Fspecials%2FSpecialSearchTest.php;h=13c283816d1af46d90392184fda3eb4199efc521;hb=59ebff658ce912c1b0e7ef8d8f9bfec5a4e17b39;hp=7e60fddec2cf8efa53abf639e86b6346231846cc;hpb=7a6b211c486017c100c8398a25e45e8042e6727f;p=lhc%2Fweb%2Fwiklou.git diff --git a/tests/phpunit/includes/specials/SpecialSearchTest.php b/tests/phpunit/includes/specials/SpecialSearchTest.php index 7e60fddec2..13c283816d 100644 --- a/tests/phpunit/includes/specials/SpecialSearchTest.php +++ b/tests/phpunit/includes/specials/SpecialSearchTest.php @@ -145,34 +145,25 @@ class SpecialSearchTest extends MediaWikiTestCase { public function provideRewriteQueryWithSuggestion() { return array( array( - 'With results and a suggestion does not run suggested query', + 'With suggestion and no rewritten query shows did you mean', '/Did you mean: ]+>first suggestion/', - array( - new SpecialSearchTestMockResultSet( 'first suggestion', array( - SearchResult::newFromTitle( Title::newMainPage() ), - ) ), - new SpecialSearchTestMockResultSet( 'was never run', array() ), - ), + new SpecialSearchTestMockResultSet( 'first suggestion', null, array( + SearchResult::newFromTitle( Title::newMainPage() ), + ) ), ), array( - 'With no results and a suggestion responds with suggested query results', + 'With rewritten query informs user of change', '/Showing results for ]+>first suggestion/', - array( - new SpecialSearchTestMockResultSet( 'first suggestion', array() ), - new SpecialSearchTestMockResultSet( 'second suggestion', array( - SearchResult::newFromTitle( Title::newMainPage() ), - ) ), - ), + new SpecialSearchTestMockResultSet( 'asdf', 'first suggestion', array( + SearchResult::newFromTitle( Title::newMainPage() ), + ) ), ), array( 'When both queries have no results user gets no results', '/There were no results matching the query/', - array( - new SpecialSearchTestMockResultSet( 'first suggestion', array() ), - new SpecialSearchTestMockResultSet( 'second suggestion', array() ), - ), + new SpecialSearchTestMockResultSet( 'first suggestion', 'first suggestion', array() ), ), ); } @@ -180,8 +171,8 @@ class SpecialSearchTest extends MediaWikiTestCase { /** * @dataProvider provideRewriteQueryWithSuggestion */ - public function testRewriteQueryWithSuggestion( $message, $expectRegex, $fromResults ) { - $mockSearchEngine = $this->mockSearchEngine( $fromResults ); + public function testRewriteQueryWithSuggestion( $message, $expectRegex, $results ) { + $mockSearchEngine = $this->mockSearchEngine( $results ); $search = $this->getMockBuilder( 'SpecialSearch' ) ->setMethods( array( 'getSearchEngine' ) ) ->getMock(); @@ -199,17 +190,14 @@ class SpecialSearchTest extends MediaWikiTestCase { } } - protected function mockSearchEngine( array $returnValues ) { + protected function mockSearchEngine( $results ) { $mock = $this->getMockBuilder( 'SearchEngine' ) - ->setMethods( array( 'searchText' ) ) + ->setMethods( array( 'searchText', 'searchTitle' ) ) ->getMock(); $mock->expects( $this->any() ) ->method( 'searchText' ) - ->will( call_user_func_array( - array( $this, 'onConsecutiveCalls' ), - array_map( array( $this, 'returnValue' ), $returnValues ) - ) ); + ->will( $this->returnValue( $results ) ); return $mock; } @@ -219,9 +207,10 @@ class SpecialSearchTestMockResultSet extends SearchResultSet { protected $results; protected $suggestion; - public function __construct( $suggestion = null, array $results = array(), $containedSyntax = false) { - $this->results = $results; + public function __construct( $suggestion = null, $rewrittenQuery = null, array $results = array(), $containedSyntax = false) { $this->suggestion = $suggestion; + $this->rewrittenQuery = $rewrittenQuery; + $this->results = $results; $this->containedSyntax = $containedSyntax; } @@ -244,4 +233,16 @@ class SpecialSearchTestMockResultSet extends SearchResultSet { public function getSuggestionSnippet() { return $this->suggestion; } + + public function hasRewrittenQuery() { + return $this->rewrittenQuery !== null; + } + + public function getQueryAfterRewrite() { + return $this->rewrittenQuery; + } + + public function getQueryAfterRewriteSnippet() { + return htmlspecialchars( $this->rewrittenQuery ); + } }