class SpecialSearchTest extends MediaWikiTestCase {
private $search;
- function setUp() { }
- function tearDown() { }
-
/**
* @covers SpecialSearch::load
* @dataProvider provideSearchOptionsTests
* @param $requested Array Request parameters. For example array( 'ns5' => true, 'ns6' => true). NULL to use default options.
* @param $userOptions Array User options to test with. For example array('searchNs5' => 1 );. NULL to use default options.
+ * @param $expectedProfile An expected search profile name
+ * @param $expectedNs Array Expected namespaces
*/
function testProfileAndNamespaceLoading(
$requested, $userOptions, $expectedProfile, $expectedNS,
- $message = 'Profile name andnamespaces mismatches!'
+ $message = 'Profile name and namespaces mismatches!'
) {
$context = new RequestContext;
$context->setUser(
'Web request with specific NS should override user preference'
),
array(
- $EMPTY_REQUEST, array( 'searchNs2' => 1, 'searchNs14' => 1 ),
+ $EMPTY_REQUEST, array(
+ 'searchNs2' => 1,
+ 'searchNs14' => 1,
+ ) + array_fill_keys( array_map( function( $ns ) {
+ return "searchNs$ns";
+ }, $defaultNS ), 0 ),
'advanced', array( 2, 14 ),
'Bug 33583: search with no option should honor User search preferences'
+ . ' and have all other namespace disabled'
),
);
}
}
return $u;
}
+
+ /**
+ * Verify we do not expand search term in <title> on search result page
+ * https://gerrit.wikimedia.org/r/4841
+ */
+ function testSearchTermIsNotExpanded() {
+
+ # Initialize [[Special::Search]]
+ $search = new SpecialSearch();
+ $search->getContext()->setTitle( Title::newFromText('Special:Search' ) );
+ $search->load();
+
+ # Simulate a user searching for a given term
+ $term = '{{SITENAME}}';
+ $search->showResults( $term );
+
+ # Lookup the HTML page title set for that page
+ $pageTitle = $search
+ ->getContext()
+ ->getOutput()
+ ->getHTMLTitle();
+
+ # Compare :-]
+ $this->assertRegExp(
+ '/' . preg_quote( $term ) . '/',
+ $pageTitle,
+ "Search term '{$term}' should not be expanded in Special:Search <title>"
+ );
+
+ }
}