X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=tests%2Fphpunit%2Fincludes%2Fspecials%2FSpecialSearchTest.php;h=4e9d8263609dca44b462aecf17ca0539ef8738af;hb=6fbafe5494440f5c37686b250ed759f6a96271b9;hp=e9cf6a3516ad151848e97724c82134635257e170;hpb=f9090467a5c5e282898b7c2cee70cf14231707ca;p=lhc%2Fweb%2Fwiklou.git
diff --git a/tests/phpunit/includes/specials/SpecialSearchTest.php b/tests/phpunit/includes/specials/SpecialSearchTest.php
index e9cf6a3516..4e9d826360 100644
--- a/tests/phpunit/includes/specials/SpecialSearchTest.php
+++ b/tests/phpunit/includes/specials/SpecialSearchTest.php
@@ -73,7 +73,7 @@ class SpecialSearchTest extends MediaWikiTestCase {
[
$EMPTY_REQUEST, $NO_USER_PREF,
'default', $defaultNS,
- 'Bug 33270: No request nor user preferences should give default profile'
+ 'T35270: No request nor user preferences should give default profile'
],
[
[ 'ns5' => 1 ], $NO_USER_PREF,
@@ -88,7 +88,7 @@ class SpecialSearchTest extends MediaWikiTestCase {
return "searchNs$ns";
}, $defaultNS ), 0 ),
'advanced', [ 2, 14 ],
- 'Bug 33583: search with no option should honor User search preferences'
+ 'T35583: search with no option should honor User search preferences'
. ' and have all other namespace disabled'
],
];
@@ -150,23 +150,25 @@ class SpecialSearchTest extends MediaWikiTestCase {
[
'With suggestion and no rewritten query shows did you mean',
'/Did you mean: ]+>first suggestion/',
- new SpecialSearchTestMockResultSet( 'first suggestion', null, [
- SearchResult::newFromTitle( Title::newMainPage() ),
- ] ),
+ 'first suggestion',
+ null,
+ [ Title::newMainPage() ]
],
[
'With rewritten query informs user of change',
'/Showing results for ]+>first suggestion/',
- new SpecialSearchTestMockResultSet( 'asdf', 'first suggestion', [
- SearchResult::newFromTitle( Title::newMainPage() ),
- ] ),
+ 'asdf',
+ 'first suggestion',
+ [ Title::newMainPage() ]
],
[
'When both queries have no results user gets no results',
'/There were no results matching the query/',
- new SpecialSearchTestMockResultSet( 'first suggestion', 'first suggestion', [] ),
+ 'first suggestion',
+ 'first suggestion',
+ []
],
];
}
@@ -174,8 +176,24 @@ class SpecialSearchTest extends MediaWikiTestCase {
/**
* @dataProvider provideRewriteQueryWithSuggestion
*/
- public function testRewriteQueryWithSuggestion( $message, $expectRegex, $results ) {
- $mockSearchEngine = $this->mockSearchEngine( $results );
+ public function testRewriteQueryWithSuggestion(
+ $message,
+ $expectRegex,
+ $suggestion,
+ $rewrittenQuery,
+ array $resultTitles
+ ) {
+ $results = array_map( function( $title ) {
+ return SearchResult::newFromTitle( $title );
+ }, $resultTitles );
+
+ $searchResults = new SpecialSearchTestMockResultSet(
+ $suggestion,
+ $rewrittenQuery,
+ $results
+ );
+
+ $mockSearchEngine = $this->mockSearchEngine( $searchResults );
$search = $this->getMockBuilder( 'SpecialSearch' )
->setMethods( [ 'getSearchEngine' ] )
->getMock();
@@ -205,6 +223,27 @@ class SpecialSearchTest extends MediaWikiTestCase {
return $mock;
}
+
+ public function testSubPageRedirect() {
+ $this->setMwGlobals( [
+ 'wgScript' => '/w/index.php',
+ ] );
+
+ $ctx = new RequestContext;
+ $sp = Title::newFromText( 'Special:Search/foo_bar' );
+ SpecialPageFactory::executePath( $sp, $ctx );
+ $url = $ctx->getOutput()->getRedirect();
+ // some older versions of hhvm have a bug that doesn't parse relative
+ // urls with a port, so help it out a little bit.
+ // https://github.com/facebook/hhvm/issues/7136
+ $url = wfExpandUrl( $url, PROTO_CURRENT );
+
+ $parts = parse_url( $url );
+ $this->assertEquals( '/w/index.php', $parts['path'] );
+ parse_str( $parts['query'], $query );
+ $this->assertEquals( 'Special:Search', $query['title'] );
+ $this->assertEquals( 'foo bar', $query['search'] );
+ }
}
class SpecialSearchTestMockResultSet extends SearchResultSet {