diff options
10 files changed, 111 insertions, 73 deletions
diff --git a/tests/phpunit/MediaWikiIntegrationTestCase.php b/tests/phpunit/MediaWikiIntegrationTestCase.php index 68361887bd68..57b609eafeb2 100644 --- a/tests/phpunit/MediaWikiIntegrationTestCase.php +++ b/tests/phpunit/MediaWikiIntegrationTestCase.php @@ -1,11 +1,13 @@ <?php +use MediaWiki\Linker\LinkTarget; use MediaWiki\Logger\LegacyLogger; use MediaWiki\Logger\LegacySpi; use MediaWiki\Logger\LogCapturingSpi; use MediaWiki\Logger\LoggerFactory; use MediaWiki\MainConfigNames; use MediaWiki\MediaWikiServices; +use MediaWiki\Page\PageIdentity; use MediaWiki\Page\ProperPageIdentity; use MediaWiki\Permissions\Authority; use MediaWiki\Permissions\UltimateAuthority; @@ -2528,7 +2530,7 @@ abstract class MediaWikiIntegrationTestCase extends PHPUnit\Framework\TestCase { /** * Edits or creates a page/revision - * @param string|Title|WikiPage $page the page to edit + * @param string|PageIdentity|LinkTarget|WikiPage $page the page to edit * @param string|Content $content the new content of the page * @param string $summary Optional summary string for the revision * @param int $defaultNs Optional namespace id @@ -2551,14 +2553,18 @@ abstract class MediaWikiIntegrationTestCase extends PHPUnit\Framework\TestCase { ' method should return true. Use @group Database or $this->tablesUsed.' ); } + $services = $this->getServiceContainer(); if ( $page instanceof WikiPage ) { $title = $page->getTitle(); - } elseif ( $page instanceof Title ) { - $title = $page; - $page = WikiPage::factory( $title ); + } elseif ( $page instanceof PageIdentity ) { + $page = $services->getWikiPageFactory()->newFromTitle( $page ); + $title = $page->getTitle(); + } elseif ( $page instanceof LinkTarget ) { + $page = $services->getWikiPageFactory()->newFromLinkTarget( $page ); + $title = $page->getTitle(); } else { - $title = Title::newFromText( $page, $defaultNs ); - $page = WikiPage::factory( $title ); + $title = $services->getTitleFactory()->newFromText( $page, $defaultNs ); + $page = $services->getWikiPageFactory()->newFromTitle( $title ); } if ( $performer === null ) { @@ -2566,7 +2572,9 @@ abstract class MediaWikiIntegrationTestCase extends PHPUnit\Framework\TestCase { } if ( is_string( $content ) ) { - $content = ContentHandler::makeContent( $content, $title ); + $content = $services->getContentHandlerFactory() + ->getContentHandler( $title->getContentModel() ) + ->unserializeContent( $content ); } return $page->doUserEditContent( diff --git a/tests/phpunit/includes/api/ApiChangeContentModelTest.php b/tests/phpunit/includes/api/ApiChangeContentModelTest.php index 2113528265bc..627d750f2613 100644 --- a/tests/phpunit/includes/api/ApiChangeContentModelTest.php +++ b/tests/phpunit/includes/api/ApiChangeContentModelTest.php @@ -219,11 +219,12 @@ class ApiChangeContentModelTest extends ApiTestCase { $title = Title::newFromText( 'Dummy:NoDirectEditing' ); $dummyContent = ContentHandler::getForModelID( 'testing' )->makeEmptyContent(); - WikiPage::factory( $title )->doUserEditContent( + $this->editPage( + $title, $dummyContent, - $this->getTestSysop()->getUser(), 'EditSummaryForThisTest', - EDIT_NEW | EDIT_SUPPRESS_RC + NS_MAIN, + $this->getTestSysop()->getUser() ); $this->assertSame( 'testing', diff --git a/tests/phpunit/includes/api/ApiComparePagesTest.php b/tests/phpunit/includes/api/ApiComparePagesTest.php index ea82b1708dac..28777f0046f1 100644 --- a/tests/phpunit/includes/api/ApiComparePagesTest.php +++ b/tests/phpunit/includes/api/ApiComparePagesTest.php @@ -14,13 +14,17 @@ class ApiComparePagesTest extends ApiTestCase { protected static $repl = []; protected function addPage( $page, $text, $model = CONTENT_MODEL_WIKITEXT ) { - $title = Title::newFromText( 'ApiComparePagesTest ' . $page ); - $content = ContentHandler::makeContent( $text, $title, $model ); - - $page = WikiPage::factory( $title ); + $title = Title::makeTitle( NS_MAIN, 'ApiComparePagesTest ' . $page ); + $content = $this->getServiceContainer()->getContentHandlerFactory() + ->getContentHandler( $model ) + ->unserializeContent( $text ); $user = static::getTestSysop()->getUser(); - $status = $page->doUserEditContent( - $content, $user, 'Test for ApiComparePagesTest: ' . $text + $status = $this->editPage( + $title, + $content, + 'Test for ApiComparePagesTest: ' . $text, + NS_MAIN, + $user ); if ( !$status->isOK() ) { $this->fail( "Failed to create $title: " . $status->getWikiText( false, false, 'en' ) ); diff --git a/tests/phpunit/includes/api/ApiStashEditTest.php b/tests/phpunit/includes/api/ApiStashEditTest.php index b8f035ae6225..acab37c8c6da 100644 --- a/tests/phpunit/includes/api/ApiStashEditTest.php +++ b/tests/phpunit/includes/api/ApiStashEditTest.php @@ -242,12 +242,23 @@ class ApiStashEditTest extends ApiTestCase { public function testMidEditContentModelMismatch() { $name = ucfirst( __FUNCTION__ ); - $page = WikiPage::factory( Title::makeTitle( NS_MAIN, $name ) ); - + $title = Title::makeTitle( NS_MAIN, $name ); $content = new CssContent( 'Css' ); $user = $this->getTestSysop()->getUser(); - $revRecord = $page->doUserEditContent( $content, $user, '' )->value['revision-record']; - $page->doUserEditContent( new WikitextContent( 'Text' ), $user, '' ); + $revRecord = $this->editPage( + $title, + $content, + '', + NS_MAIN, + $user + )->value['revision-record']; + $this->editPage( + $title, + new WikitextContent( 'Text' ), + '', + NS_MAIN, + $user + ); $this->setExpectedApiException( [ 'apierror-contentmodel-mismatch', 'wikitext', 'css' ] diff --git a/tests/phpunit/includes/api/format/ApiFormatXmlTest.php b/tests/phpunit/includes/api/format/ApiFormatXmlTest.php index 4261fe578d8f..b0a542a90318 100644 --- a/tests/phpunit/includes/api/format/ApiFormatXmlTest.php +++ b/tests/phpunit/includes/api/format/ApiFormatXmlTest.php @@ -11,16 +11,28 @@ class ApiFormatXmlTest extends ApiFormatTestBase { protected function setUp(): void { parent::setUp(); - $page = WikiPage::factory( Title::newFromText( 'MediaWiki:ApiFormatXmlTest.xsl' ) ); $user = self::getTestSysop()->getUser(); - $page->doUserEditContent( new WikitextContent( - '<?xml version="1.0"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" />' - ), $user, 'Summary' ); - // phpcs:enable - $page = WikiPage::factory( Title::newFromText( 'MediaWiki:ApiFormatXmlTest' ) ); - $page->doUserEditContent( new WikitextContent( 'Bogus' ), $user, 'Summary' ); - $page = WikiPage::factory( Title::newFromText( 'ApiFormatXmlTest' ) ); - $page->doUserEditContent( new WikitextContent( 'Bogus' ), $user, 'Summary' ); + $this->editPage( + Title::makeTitle( NS_MEDIAWIKI, 'ApiFormatXmlTest.xsl' ), + '<?xml version="1.0"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" />', + 'Summary', + NS_MAIN, + $user + ); + $this->editPage( + Title::makeTitle( NS_MEDIAWIKI, 'ApiFormatXmlTest' ), + 'Bogus', + 'Summary', + NS_MAIN, + $user + ); + $this->editPage( + Title::makeTitle( NS_MAIN, 'ApiFormatXmlTest' ), + 'Bogus', + 'Summary', + NS_MAIN, + $user + ); } public static function provideGeneralEncoding() { diff --git a/tests/phpunit/includes/api/query/ApiQueryAllPagesTest.php b/tests/phpunit/includes/api/query/ApiQueryAllPagesTest.php index 825002ea0c9f..bf7b097cdeb8 100644 --- a/tests/phpunit/includes/api/query/ApiQueryAllPagesTest.php +++ b/tests/phpunit/includes/api/query/ApiQueryAllPagesTest.php @@ -14,13 +14,13 @@ class ApiQueryAllPagesTest extends ApiTestCase { * in wrong search results */ public function testPrefixNormalizationSearchBug() { - $title = Title::newFromText( 'Category:Template:xyz' ); - $page = WikiPage::factory( $title ); - - $page->doUserEditContent( - ContentHandler::makeContent( 'Some text', $page->getTitle() ), - $this->getTestSysop()->getUser(), - 'inserting content' + $title = Title::makeTitle( NS_CATEGORY, 'Template:xyz' ); + $this->editPage( + $title, + 'Some text', + 'inserting content', + NS_MAIN, + $this->getTestSysop()->getUser() ); $result = $this->doApiRequest( [ diff --git a/tests/phpunit/includes/api/query/ApiQueryAllRevisionsTest.php b/tests/phpunit/includes/api/query/ApiQueryAllRevisionsTest.php index e63c906c5d2b..cd78526d0aa4 100644 --- a/tests/phpunit/includes/api/query/ApiQueryAllRevisionsTest.php +++ b/tests/phpunit/includes/api/query/ApiQueryAllRevisionsTest.php @@ -17,19 +17,20 @@ class ApiQueryAllRevisionsTest extends ApiTestCase { * @group medium */ public function testContentComesWithContentModelAndFormat() { - $pageName = 'Help:' . __METHOD__; - $title = Title::newFromText( $pageName ); - $page = WikiPage::factory( $title ); - - $page->doUserEditContent( - ContentHandler::makeContent( 'Some text', $page->getTitle() ), - $this->getTestSysop()->getUser(), - 'inserting content' + $title = Title::makeTitle( NS_HELP, 'TestContentComesWithContentModelAndFormat' ); + $this->editPage( + $title, + 'Some text', + 'inserting content', + NS_MAIN, + $this->getTestSysop()->getUser() ); - $page->doUserEditContent( - ContentHandler::makeContent( 'Some other text', $page->getTitle() ), - $this->getTestSysop()->getUser(), - 'adding revision' + $this->editPage( + $title, + 'Some other text', + 'adding revision', + NS_MAIN, + $this->getTestSysop()->getUser() ); $apiResult = $this->doApiRequest( [ @@ -44,7 +45,7 @@ class ApiQueryAllRevisionsTest extends ApiTestCase { $this->assertArrayHasKey( 'allrevisions', $apiResult[0]['query'] ); $this->assertArrayHasKey( 0, $apiResult[0]['query']['allrevisions'] ); $this->assertArrayHasKey( 'title', $apiResult[0]['query']['allrevisions'][0] ); - $this->assertSame( $pageName, $apiResult[0]['query']['allrevisions'][0]['title'] ); + $this->assertSame( $title->getPrefixedText(), $apiResult[0]['query']['allrevisions'][0]['title'] ); $this->assertArrayHasKey( 'revisions', $apiResult[0]['query']['allrevisions'][0] ); $this->assertCount( 2, $apiResult[0]['query']['allrevisions'][0]['revisions'] ); diff --git a/tests/phpunit/includes/api/query/ApiQueryRecentChangesIntegrationTest.php b/tests/phpunit/includes/api/query/ApiQueryRecentChangesIntegrationTest.php index 4264ab612617..9f92de297f47 100644 --- a/tests/phpunit/includes/api/query/ApiQueryRecentChangesIntegrationTest.php +++ b/tests/phpunit/includes/api/query/ApiQueryRecentChangesIntegrationTest.php @@ -23,12 +23,12 @@ class ApiQueryRecentChangesIntegrationTest extends ApiTestCase { private function doPageEdit( User $user, LinkTarget $target, $summary ) { static $i = 0; - $title = Title::newFromLinkTarget( $target ); - $page = WikiPage::factory( $title ); - $page->doUserEditContent( - ContentHandler::makeContent( __CLASS__ . $i++, $title ), - $user, - $summary + $this->editPage( + $target, + __CLASS__ . $i++, + $summary, + NS_MAIN, + $user ); } diff --git a/tests/phpunit/includes/api/query/ApiQueryUserContribsTest.php b/tests/phpunit/includes/api/query/ApiQueryUserContribsTest.php index 2873b093c580..8c7318b28396 100644 --- a/tests/phpunit/includes/api/query/ApiQueryUserContribsTest.php +++ b/tests/phpunit/includes/api/query/ApiQueryUserContribsTest.php @@ -18,14 +18,15 @@ class ApiQueryUserContribsTest extends ApiTestCase { User::newFromName( 'IW>' . __CLASS__, false ), ]; - $title = Title::newFromText( __CLASS__ ); - $page = WikiPage::factory( $title ); + $title = Title::makeTitle( NS_MAIN, 'ApiQueryUserContribsTest' ); for ( $i = 0; $i < 3; $i++ ) { foreach ( array_reverse( $users ) as $user ) { - $status = $page->doUserEditContent( - ContentHandler::makeContent( "Test revision $user #$i", $title ), - $user, - 'Test edit' + $status = $this->editPage( + $title, + "Test revision $user #$i", + 'Test edit', + NS_MAIN, + $user ); if ( !$status->isOK() ) { $this->fail( "Failed to edit $title: " . $status->getWikiText( false, false, 'en' ) ); diff --git a/tests/phpunit/includes/api/query/ApiQueryWatchlistIntegrationTest.php b/tests/phpunit/includes/api/query/ApiQueryWatchlistIntegrationTest.php index 222b76ba2f71..79bfeb02f524 100644 --- a/tests/phpunit/includes/api/query/ApiQueryWatchlistIntegrationTest.php +++ b/tests/phpunit/includes/api/query/ApiQueryWatchlistIntegrationTest.php @@ -30,12 +30,12 @@ class ApiQueryWatchlistIntegrationTest extends ApiTestCase { } private function doPageEdit( User $user, LinkTarget $target, $content, $summary ) { - $title = Title::newFromLinkTarget( $target ); - $page = WikiPage::factory( $title ); - $page->doUserEditContent( - ContentHandler::makeContent( $content, $title ), - $user, - $summary + $this->editPage( + $target, + $content, + $summary, + NS_MAIN, + $user ); } @@ -62,12 +62,12 @@ class ApiQueryWatchlistIntegrationTest extends ApiTestCase { } private function doAnonPageEdit( LinkTarget $target, $content, $summary ) { - $title = Title::newFromLinkTarget( $target ); - $page = WikiPage::factory( $title ); - $page->doUserEditContent( - ContentHandler::makeContent( $content, $title ), - User::newFromId( 0 ), - $summary + $this->editPage( + $target, + $content, + $summary, + NS_MAIN, + $this->getServiceContainer()->getUserFactory()->newAnonymous() ); } |