Fix doxygen docs before REL1_19 branching
[lhc/web/wiklou.git] / tests / phpunit / includes / TitleTest.php
index 7092561..1c8be5f 100644 (file)
@@ -14,4 +14,67 @@ class TitleTest extends MediaWikiTestCase {
                        }
                }
        }
+
+       /**
+        * @dataProvider dataBug31100
+        */
+       function testBug31100FixSpecialName( $text, $expectedParam ) {
+               $title = Title::newFromText( $text );
+               $fixed = $title->fixSpecialName();
+               $stuff = explode( '/', $fixed->getDbKey(), 2 );
+               if ( count( $stuff ) == 2 ) {
+                       $par = $stuff[1];
+               } else {
+                       $par = null;
+               }
+               $this->assertEquals( $expectedParam, $par, "Bug 31100 regression check: Title->fixSpecialName() should preserve parameter" );
+       }
+
+       function dataBug31100() {
+               return array(
+                       array( 'Special:Version', null ),
+                       array( 'Special:Version/', '' ),
+                       array( 'Special:Version/param', 'param' ),
+               );
+       }
+       
+       /**
+        * Auth-less test of Title::isValidMoveOperation
+        * 
+        * @group Database
+        * @param string $source
+        * @param string $target
+        * @param array|string|true $expected Required error
+        * @dataProvider dataTestIsValidMoveOperation
+        */
+       function testIsValidMoveOperation( $source, $target, $expected ) {
+               $title = Title::newFromText( $source );
+               $nt = Title::newFromText( $target );
+               $errors = $title->isValidMoveOperation( $nt, false );
+               if ( $expected === true ) {
+                       $this->assertTrue( $errors );
+               } else {
+                       $errors = $this->flattenErrorsArray( $errors );
+                       foreach ( (array)$expected as $error ) {
+                               $this->assertContains( $error, $errors );
+                       }
+               }
+       }
+       
+       function flattenErrorsArray( $errors ) {
+               $result = array();
+               foreach ( $errors as $error ) {
+                       $result[] = $error[0];
+               }
+               return $result;
+       }
+       
+       function dataTestIsValidMoveOperation() {
+               return array( 
+                       array( 'Test', 'Test', 'selfmove' ),
+                       array( 'File:Test.jpg', 'Page', 'imagenocrossnamespace' )
+               );
+       }
+       
+       
 }