Revert "merged master"
[lhc/web/wiklou.git] / tests / phpunit / includes / ExtraParserTest.php
index d10465f..a9088cb 100644 (file)
@@ -63,20 +63,48 @@ class ExtraParserTest extends MediaWikiTestCase {
         * cleanSig() makes all templates substs and removes tildes
         */
        function testCleanSig() {
+               global $wgCleanSignatures;
+               $oldCleanSignature = $wgCleanSignatures;
+               $wgCleanSignatures = true;
+
                $title = Title::newFromText( __FUNCTION__ );
                $outputText = $this->parser->cleanSig( "{{Foo}} ~~~~" );
+
+               $wgCleanSignatures = $oldCleanSignature;
                
                $this->assertEquals( "{{SUBST:Foo}} ", $outputText );
        }
-       
+
        /**
-        * cleanSigInSig() just removes tildes
+        * cleanSig() should do nothing if disabled
         */
-       function testCleanSigInSig() {
+       function testCleanSigDisabled() {
+               global $wgCleanSignatures;
+               $oldCleanSignature = $wgCleanSignatures;
+               $wgCleanSignatures = false;
+
                $title = Title::newFromText( __FUNCTION__ );
-               $outputText = $this->parser->cleanSigInSig( "{{Foo}} ~~~~" );
+               $outputText = $this->parser->cleanSig( "{{Foo}} ~~~~" );
+
+               $wgCleanSignatures = $oldCleanSignature;
                
-               $this->assertEquals( "{{Foo}} ", $outputText );
+               $this->assertEquals( "{{Foo}} ~~~~", $outputText );
+       }
+       
+       /**
+        * cleanSigInSig() just removes tildes
+        * @dataProvider provideStringsForCleanSigInSig
+        */
+       function testCleanSigInSig( $in, $out ) {
+               $this->assertEquals( Parser::cleanSigInSig( $in), $out );
+       }
+       
+       function provideStringsForCleanSigInSig() {
+               return array(
+                       array( "{{Foo}} ~~~~", "{{Foo}} " ),
+                       array( "~~~", "" ),
+                       array( "~~~~~", "" ),
+               );
        }
        
        function testGetSection() {
@@ -112,4 +140,28 @@ class ExtraParserTest extends MediaWikiTestCase {
                        'finalTitle' => $title,
                        'deps' => $deps );
        }
+
+       /**
+        * @group Database
+        */
+       function testTrackingCategory() {
+               $title = Title::newFromText( __FUNCTION__ );
+               $catName =  wfMsgForContent( 'broken-file-category' );
+               $cat = Title::makeTitleSafe( NS_CATEGORY, $catName );
+               $expected = array( $cat->getDBkey() );
+               $parserOutput = $this->parser->parse( "[[file:nonexistent]]" , $title, $this->options );
+               $result = $parserOutput->getCategoryLinks();
+               $this->assertEquals( $expected, $result );
+       }
+
+       /**
+        * @group Database
+        */
+       function testTrackingCategorySpecial() {
+               // Special pages shouldn't have tracking cats.
+               $title = SpecialPage::getTitleFor( 'Contributions' );
+               $parserOutput = $this->parser->parse( "[[file:nonexistent]]" , $title, $this->options );
+               $result = $parserOutput->getCategoryLinks();
+               $this->assertEmpty( $result );
+       }
  }