Merge "Revert "Function for "pretty timestamps" that are human readable and understan...
[lhc/web/wiklou.git] / tests / phpunit / includes / specials / SpecialSearchTest.php
index eb60cf2..9d7dc71 100644 (file)
 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(
@@ -81,9 +80,15 @@ class SpecialSearchTest extends MediaWikiTestCase {
                                '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'
                        ),
                );
        }
@@ -102,5 +107,35 @@ class SpecialSearchTest extends MediaWikiTestCase {
                }
                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>"
+               );
+
+       }
 }