Allow MediaWikiTestCase::editPage to use given User
authorMusikAnimal <musikanimal@gmail.com>
Mon, 3 Jun 2019 19:52:46 +0000 (15:52 -0400)
committerMaxSem <maxsem.wiki@gmail.com>
Mon, 10 Jun 2019 19:54:01 +0000 (19:54 +0000)
Sometimes you need to edit pages with a non-sysop.

This is a follow-up to I9e48f7c00efbce8c2de3f5db3a74462d47ae8f64

Change-Id: I5a101638f57709c343a2e42ca0ae11527bee8cce

tests/phpunit/MediaWikiTestCase.php

index 486b16d..f9416be 100644 (file)
@@ -2380,13 +2380,20 @@ abstract class MediaWikiTestCase extends PHPUnit\Framework\TestCase {
         * @param string $text Content of the page
         * @param string $summary Optional summary string for the revision
         * @param int $defaultNs Optional namespace id
+        * @param User|null $user If null, static::getTestSysop()->getUser() is used.
         * @return Status Object as returned by WikiPage::doEditContent()
         * @throws MWException If this test cases's needsDB() method doesn't return true.
         *         Test cases can use "@group Database" to enable database test support,
         *         or list the tables under testing in $this->tablesUsed, or override the
         *         needsDB() method.
         */
-       protected function editPage( $pageName, $text, $summary = '', $defaultNs = NS_MAIN ) {
+       protected function editPage(
+               $pageName,
+               $text,
+               $summary = '',
+               $defaultNs = NS_MAIN,
+               User $user = null
+       ) {
                if ( !$this->needsDB() ) {
                        throw new MWException( 'When testing which pages, the test cases\'s needsDB()' .
                                ' method should return true. Use @group Database or $this->tablesUsed.' );
@@ -2395,7 +2402,13 @@ abstract class MediaWikiTestCase extends PHPUnit\Framework\TestCase {
                $title = Title::newFromText( $pageName, $defaultNs );
                $page = WikiPage::factory( $title );
 
-               return $page->doEditContent( ContentHandler::makeContent( $text, $title ), $summary );
+               return $page->doEditContent(
+                       ContentHandler::makeContent( $text, $title ),
+                       $summary,
+                       0,
+                       false,
+                       $user
+               );
        }
 
        /**