setMwGlobals( 'wgContentHandlerUseDB', false ); $mp = new MovePage( Title::newFromText( $old ), Title::newFromText( $new ) ); $status = $mp->isValidMove(); if ( $error === true ) { $this->assertTrue( $status->isGood() ); } else { $this->assertTrue( $status->hasMessage( $error ) ); } } /** * This should be kept in sync with TitleTest::provideTestIsValidMoveOperation */ public static function provideIsValidMove() { return [ // for MovePage::isValidMove [ 'Test', 'Test', 'selfmove' ], [ 'Special:FooBar', 'Test', 'immobile-source-namespace' ], [ 'Test', 'Special:FooBar', 'immobile-target-namespace' ], [ 'MediaWiki:Common.js', 'Help:Some wikitext page', 'bad-target-model' ], [ 'Page', 'File:Test.jpg', 'nonfile-cannot-move-to-file' ], // for MovePage::isValidFileMove [ 'File:Test.jpg', 'Page', 'imagenocrossnamespace' ], ]; } /** * Integration test to catch regressions like T74870. Taken and modified * from SemanticMediaWiki */ public function testTitleMoveCompleteIntegrationTest() { $oldTitle = Title::newFromText( 'Help:Some title' ); WikiPage::factory( $oldTitle )->doEditContent( new WikitextContent( 'foo' ), 'bar' ); $newTitle = Title::newFromText( 'Help:Some other title' ); $this->assertNull( WikiPage::factory( $newTitle )->getRevision() ); $this->assertTrue( $oldTitle->moveTo( $newTitle, false, 'test1', true ) ); $this->assertNotNull( WikiPage::factory( $oldTitle )->getRevision() ); $this->assertNotNull( WikiPage::factory( $newTitle )->getRevision() ); } }