Daniel Kinzler has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/359184 )

Change subject: Deprecate Content::getNativeData, add TextContent::getText
......................................................................

Deprecate Content::getNativeData, add TextContent::getText

getNativeData() is under-specified - callers can do nothing with the
value returned by getNativeData without knowing the concrete Content
class. If the know the concrete class, the should use a specialized
getter.

Basically, getNativeData is overly generic, an example of plymorphism
done wrong. My bad. Sorry about that. Can we fix it now?

Bug: T155582
Change-Id: I6cf13e6cfe57124ff5af71761d3988bc3c82795d
---
M RELEASE-NOTES-1.30
M includes/api/ApiParse.php
M includes/api/ApiQueryRevisionsBase.php
M includes/content/AbstractContent.php
M includes/content/Content.php
M includes/content/ContentHandler.php
M includes/content/CssContent.php
M includes/content/JavaScriptContent.php
M includes/content/JsonContent.php
M includes/content/MessageContent.php
M includes/content/TextContent.php
M includes/content/TextContentHandler.php
M includes/content/WikitextContent.php
M includes/specials/SpecialUndelete.php
M languages/LanguageConverter.php
M maintenance/compareParsers.php
M maintenance/preprocessDump.php
M tests/phpunit/includes/RevisionStorageTest.php
M tests/phpunit/includes/api/ApiEditPageTest.php
M tests/phpunit/includes/content/ContentHandlerTest.php
M tests/phpunit/includes/content/JavaScriptContentTest.php
M tests/phpunit/includes/content/TextContentTest.php
M tests/phpunit/includes/content/WikitextContentHandlerTest.php
M tests/phpunit/includes/content/WikitextContentTest.php
M tests/phpunit/includes/import/ImportTest.php
M tests/phpunit/includes/page/WikiPageTest.php
M tests/phpunit/mocks/content/DummyContentForTesting.php
M tests/phpunit/mocks/content/DummyNonTextContent.php
28 files changed, 152 insertions(+), 91 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/84/359184/1

diff --git a/RELEASE-NOTES-1.30 b/RELEASE-NOTES-1.30
index cd800da..7f63bc7 100644
--- a/RELEASE-NOTES-1.30
+++ b/RELEASE-NOTES-1.30
@@ -88,6 +88,7 @@
   deprecated. There are no known callers.
 * File::getStreamHeaders() was deprecated.
 * MediaHandler::getStreamHeaders() was deprecated.
+* Content::getNativeData() was deprecated.
 * The ExtractThumbParameters hook (deprecated in 1.21) was removed.
 * The OutputPage::addParserOutputNoText and ::getHeadLinks methods (both
   deprecated in 1.24) were removed.
diff --git a/includes/api/ApiParse.php b/includes/api/ApiParse.php
index 91e49ab..3f1a79c 100644
--- a/includes/api/ApiParse.php
+++ b/includes/api/ApiParse.php
@@ -477,12 +477,12 @@
                }
 
                if ( isset( $prop['parsetree'] ) || $params['generatexml'] ) {
-                       if ( $this->content->getModel() != 
CONTENT_MODEL_WIKITEXT ) {
+                       if ( !$this->content instanceof WikitextContent ) {
                                $this->dieWithError( 
'apierror-parsetree-notwikitext', 'notwikitext' );
                        }
 
                        $wgParser->startExternalParse( $titleObj, $popts, 
Parser::OT_PREPROCESS );
-                       $dom = $wgParser->preprocessToDom( 
$this->content->getNativeData() );
+                       $dom = $wgParser->preprocessToDom( 
$this->content->getText() );
                        if ( is_callable( [ $dom, 'saveXML' ] ) ) {
                                $xml = $dom->saveXML();
                        } else {
diff --git a/includes/api/ApiQueryRevisionsBase.php 
b/includes/api/ApiQueryRevisionsBase.php
index 696ec87..440df36 100644
--- a/includes/api/ApiQueryRevisionsBase.php
+++ b/includes/api/ApiQueryRevisionsBase.php
@@ -278,8 +278,8 @@
                }
                if ( $this->fld_parsetree || ( $this->fld_content && 
$this->generateXML ) ) {
                        if ( $content ) {
-                               if ( $content->getModel() === 
CONTENT_MODEL_WIKITEXT ) {
-                                       $t = $content->getNativeData(); # note: 
don't set $text
+                               if ( $content instanceof WikitextContent ) {
+                                       $t = $content->getText(); # note: don't 
set $text
 
                                        $wgParser->startExternalParse(
                                                $title,
@@ -312,8 +312,8 @@
 
                        if ( $this->expandTemplates && !$this->parseContent ) {
                                # XXX: implement template expansion for all 
content types in ContentHandler?
-                               if ( $content->getModel() === 
CONTENT_MODEL_WIKITEXT ) {
-                                       $text = $content->getNativeData();
+                               if ( $content instanceof WikitextContent ) {
+                                       $text = $content->getText();
 
                                        $text = $wgParser->preprocess(
                                                $text,
diff --git a/includes/content/AbstractContent.php 
b/includes/content/AbstractContent.php
index 811b241..9f14853 100644
--- a/includes/content/AbstractContent.php
+++ b/includes/content/AbstractContent.php
@@ -197,7 +197,7 @@
                        return false;
                }
 
-               return $this->getNativeData() === $that->getNativeData();
+               return $this == $that;
        }
 
        /**
diff --git a/includes/content/Content.php b/includes/content/Content.php
index 6a0a63b..093bf99 100644
--- a/includes/content/Content.php
+++ b/includes/content/Content.php
@@ -77,6 +77,9 @@
         *
         * @since 1.21
         *
+        * @deprecated since 1.30. For TextContent, use getText(). For other 
content
+        *             models, use specialized getters.
+        *
         * @return mixed The native representation of the content. Could be a
         *    string, a nested array structure, an object, a binary blob...
         *    anything, really.
diff --git a/includes/content/ContentHandler.php 
b/includes/content/ContentHandler.php
index 85894ed..3aca9b5 100644
--- a/includes/content/ContentHandler.php
+++ b/includes/content/ContentHandler.php
@@ -84,7 +84,7 @@
                }
 
                if ( $content instanceof TextContent ) {
-                       return $content->getNativeData();
+                       return $content->getText();
                }
 
                wfDebugLog( 'ContentHandler', 'Accessing ' . 
$content->getModel() . ' content as text!' );
diff --git a/includes/content/CssContent.php b/includes/content/CssContent.php
index b4f5196..fce8880 100644
--- a/includes/content/CssContent.php
+++ b/includes/content/CssContent.php
@@ -61,7 +61,7 @@
                global $wgParser;
                // @todo Make pre-save transformation optional for script pages
 
-               $text = $this->getNativeData();
+               $text = $this->getText();
                $pst = $wgParser->preSaveTransform( $text, $title, $user, 
$popts );
 
                return new static( $pst );
@@ -73,7 +73,7 @@
        protected function getHtml() {
                $html = "";
                $html .= "<pre class=\"mw-code mw-css\" dir=\"ltr\">\n";
-               $html .= htmlspecialchars( $this->getNativeData() );
+               $html .= htmlspecialchars( $this->getText() );
                $html .= "\n</pre>\n";
 
                return $html;
@@ -99,7 +99,7 @@
                        return $this->redirectTarget;
                }
                $this->redirectTarget = null;
-               $text = $this->getNativeData();
+               $text = $this->getText();
                if ( strpos( $text, '/* #REDIRECT */' ) === 0 ) {
                        // Extract the title from the url
                        preg_match( '/title=(.*?)&action=raw/', $text, $matches 
);
diff --git a/includes/content/JavaScriptContent.php 
b/includes/content/JavaScriptContent.php
index 6d23656..8a9f017 100644
--- a/includes/content/JavaScriptContent.php
+++ b/includes/content/JavaScriptContent.php
@@ -60,7 +60,7 @@
                // @todo Make pre-save transformation optional for script pages
                // See bug #32858
 
-               $text = $this->getNativeData();
+               $text = $this->getText();
                $pst = $wgParser->preSaveTransform( $text, $title, $user, 
$popts );
 
                return new static( $pst );
@@ -72,7 +72,7 @@
        protected function getHtml() {
                $html = "";
                $html .= "<pre class=\"mw-code mw-js\" dir=\"ltr\">\n";
-               $html .= htmlspecialchars( $this->getNativeData() );
+               $html .= htmlspecialchars( $this->getText() );
                $html .= "\n</pre>\n";
 
                return $html;
@@ -101,7 +101,7 @@
                        return $this->redirectTarget;
                }
                $this->redirectTarget = null;
-               $text = $this->getNativeData();
+               $text = $this->getText();
                if ( strpos( $text, '/* #REDIRECT */' ) === 0 ) {
                        // Extract the title from the url
                        preg_match( '/title=(.*?)\\\\u0026action=raw/', $text, 
$matches );
diff --git a/includes/content/JsonContent.php b/includes/content/JsonContent.php
index 14c8182..f2b9f03 100644
--- a/includes/content/JsonContent.php
+++ b/includes/content/JsonContent.php
@@ -35,7 +35,7 @@
         */
        public function getJsonData() {
                wfDeprecated( __METHOD__, '1.25' );
-               return FormatJson::decode( $this->getNativeData(), true );
+               return FormatJson::decode( $this->getText(), true );
        }
 
        /**
@@ -48,7 +48,7 @@
         */
        public function getData() {
                if ( $this->jsonParse === null ) {
-                       $this->jsonParse = FormatJson::parse( 
$this->getNativeData() );
+                       $this->jsonParse = FormatJson::parse( $this->getText() 
);
                }
                return $this->jsonParse;
        }
diff --git a/includes/content/MessageContent.php 
b/includes/content/MessageContent.php
index 4b58989..421342e 100644
--- a/includes/content/MessageContent.php
+++ b/includes/content/MessageContent.php
@@ -80,9 +80,20 @@
        /**
         * Returns the message object, with any parameters already substituted.
         *
+        * @deprecated since 1.30, use getMessage() instead.
+        *
         * @return Message The message object.
         */
        public function getNativeData() {
+               return $this->getMessage();
+       }
+
+       /**
+        * Returns the message object, with any parameters already substituted.
+        *
+        * @return Message The message object.
+        */
+       public function getMessage() {
                // NOTE: Message objects are mutable. Cloning here makes 
MessageContent immutable.
                return clone $this->mMessage;
        }
diff --git a/includes/content/TextContent.php b/includes/content/TextContent.php
index 7bb4def..926402f 100644
--- a/includes/content/TextContent.php
+++ b/includes/content/TextContent.php
@@ -68,7 +68,7 @@
        public function getTextForSummary( $maxlength = 250 ) {
                global $wgContLang;
 
-               $text = $this->getNativeData();
+               $text = $this->getText();
 
                $truncatedtext = $wgContLang->truncate(
                        preg_replace( "/[\n\r]/", ' ', $text ),
@@ -83,7 +83,7 @@
         * @return int
         */
        public function getSize() {
-               $text = $this->getNativeData();
+               $text = $this->getText();
 
                return strlen( $text );
        }
@@ -114,9 +114,20 @@
        /**
         * Returns the text represented by this Content object, as a string.
         *
-        * @return string The raw text.
+        * @deprecated since 1.30, use getMessage() instead.
+        *
+        * @return string The raw text. Subclasses may guarantee a specific 
syntax here.
         */
        public function getNativeData() {
+               return $this->getText();
+       }
+
+       /**
+        * Returns the text represented by this Content object, as a string.
+        *
+        * @return string The raw text.
+        */
+       public function getText() {
                return $this->mText;
        }
 
@@ -126,7 +137,7 @@
         * @return string The raw text.
         */
        public function getTextForSearchIndex() {
-               return $this->getNativeData();
+               return $this->getText();
        }
 
        /**
@@ -141,7 +152,7 @@
                $wikitext = $this->convert( CONTENT_MODEL_WIKITEXT, 'lossy' );
 
                if ( $wikitext ) {
-                       return $wikitext->getNativeData();
+                       return $wikitext->getText();
                } else {
                        return false;
                }
@@ -177,7 +188,7 @@
         * @return Content
         */
        public function preSaveTransform( Title $title, User $user, 
ParserOptions $popts ) {
-               $text = $this->getNativeData();
+               $text = $this->getText();
                $pst = self::normalizeLineEndings( $text );
 
                return ( $text === $pst ) ? $this : new static( $pst, 
$this->getModel() );
@@ -206,8 +217,8 @@
                        $lang = $wgContLang;
                }
 
-               $otext = $this->getNativeData();
-               $ntext = $that->getNativeData();
+               $otext = $this->getText();
+               $ntext = $that->getText();
 
                # Note: Use native PHP diff, external engines don't give us 
abstract output
                $ota = explode( "\n", $lang->segmentForDiff( $otext ) );
@@ -242,7 +253,7 @@
 
                if ( in_array( $this->getModel(), $wgTextModelsToParse ) ) {
                        // parse just to get links etc into the database, HTML 
is replaced below.
-                       $output = $wgParser->parse( $this->getNativeData(), 
$title, $options, true, true, $revId );
+                       $output = $wgParser->parse( $this->getText(), $title, 
$options, true, true, $revId );
                }
 
                if ( $generateHtml ) {
@@ -288,7 +299,7 @@
         * @return string An HTML representation of the content
         */
        protected function getHighlightHtml() {
-               return htmlspecialchars( $this->getNativeData() );
+               return htmlspecialchars( $this->getText() );
        }
 
        /**
@@ -315,11 +326,37 @@
 
                if ( $toHandler instanceof TextContentHandler ) {
                        // NOTE: ignore content serialization format - it's 
just text anyway.
-                       $text = $this->getNativeData();
+                       $text = $this->getText();
                        $converted = $toHandler->unserializeContent( $text );
                }
 
                return $converted;
        }
 
+       /**
+        * @since 1.21
+        *
+        * @param Content $that
+        *
+        * @return bool
+        *
+        * @see Content::equals
+        */
+       public function equals( Content $that = null ) {
+               if ( is_null( $that ) ) {
+                       return false;
+               }
+
+               if ( $that === $this ) {
+                       return true;
+               }
+
+               if ( $that->getModel() !== $this->getModel() ) {
+                       return false;
+               }
+
+               /** @var TextContent $that */
+               return $this->getText() === $that->getText();
+       }
+
 }
diff --git a/includes/content/TextContentHandler.php 
b/includes/content/TextContentHandler.php
index 698a37b..482ff65 100644
--- a/includes/content/TextContentHandler.php
+++ b/includes/content/TextContentHandler.php
@@ -47,7 +47,7 @@
        public function serializeContent( Content $content, $format = null ) {
                $this->checkFormat( $format );
 
-               return $content->getNativeData();
+               return $content->getText();
        }
 
        /**
diff --git a/includes/content/WikitextContent.php 
b/includes/content/WikitextContent.php
index d649baf..7e9b6cc 100644
--- a/includes/content/WikitextContent.php
+++ b/includes/content/WikitextContent.php
@@ -47,7 +47,7 @@
        public function getSection( $sectionId ) {
                global $wgParser;
 
-               $text = $this->getNativeData();
+               $text = $this->getText();
                $sect = $wgParser->getSection( $text, $sectionId, false );
 
                if ( $sect === false ) {
@@ -78,8 +78,8 @@
                                "section uses $sectionModelId." );
                }
 
-               $oldtext = $this->getNativeData();
-               $text = $with->getNativeData();
+               $oldtext = $this->getText();
+               $text = $with->getText();
 
                if ( strval( $sectionId ) === '' ) {
                        return $with; # XXX: copy first?
@@ -118,7 +118,7 @@
                $text = wfMessage( 'newsectionheaderdefaultlevel' )
                        ->rawParams( $header )->inContentLanguage()->text();
                $text .= "\n\n";
-               $text .= $this->getNativeData();
+               $text .= $this->getText();
 
                return new static( $text );
        }
@@ -136,7 +136,7 @@
        public function preSaveTransform( Title $title, User $user, 
ParserOptions $popts ) {
                global $wgParser;
 
-               $text = $this->getNativeData();
+               $text = $this->getText();
                $pst = $wgParser->preSaveTransform( $text, $title, $user, 
$popts );
 
                return ( $text === $pst ) ? $this : new static( $pst );
@@ -155,7 +155,7 @@
        public function preloadTransform( Title $title, ParserOptions $popts, 
$params = [] ) {
                global $wgParser;
 
-               $text = $this->getNativeData();
+               $text = $this->getText();
                $plt = $wgParser->getPreloadText( $text, $title, $popts, 
$params );
 
                return new static( $plt );
@@ -179,12 +179,12 @@
 
                if ( $wgMaxRedirects < 1 ) {
                        // redirects are disabled, so quit early
-                       $this->redirectTargetAndText = [ null, 
$this->getNativeData() ];
+                       $this->redirectTargetAndText = [ null, $this->getText() 
];
                        return $this->redirectTargetAndText;
                }
 
                $redir = MagicWord::get( 'redirect' );
-               $text = ltrim( $this->getNativeData() );
+               $text = ltrim( $this->getText() );
                if ( $redir->matchStartAndRemove( $text ) ) {
                        // Extract the first link and see if it's usable
                        // Ensure that it really does come directly after 
#REDIRECT
@@ -200,7 +200,7 @@
                                $title = Title::newFromText( $m[1] );
                                // If the title is a redirect to bad special 
pages or is invalid, return null
                                if ( !$title instanceof Title || 
!$title->isValidRedirectTarget() ) {
-                                       $this->redirectTargetAndText = [ null, 
$this->getNativeData() ];
+                                       $this->redirectTargetAndText = [ null, 
$this->getText() ];
                                        return $this->redirectTargetAndText;
                                }
 
@@ -209,7 +209,7 @@
                        }
                }
 
-               $this->redirectTargetAndText = [ null, $this->getNativeData() ];
+               $this->redirectTargetAndText = [ null, $this->getText() ];
                return $this->redirectTargetAndText;
        }
 
@@ -248,7 +248,7 @@
                # so the regex has to be fairly general
                $newText = preg_replace( '/ \[ \[  [^\]]*  \] \] /x',
                        '[[' . $target->getFullText() . ']]',
-                       $this->getNativeData(), 1 );
+                       $this->getText(), 1 );
 
                return new static( $newText );
        }
@@ -275,7 +275,7 @@
                        case 'any':
                                return true;
                        case 'comma':
-                               $text = $this->getNativeData();
+                               $text = $this->getText();
                                return strpos( $text, ',' ) !== false;
                        case 'link':
                                if ( $hasLinks === null ) { # not known, find 
out
@@ -364,7 +364,7 @@
         * @see Content::matchMagicWord()
         */
        public function matchMagicWord( MagicWord $word ) {
-               return $word->match( $this->getNativeData() );
+               return $word->match( $this->getText() );
        }
 
 }
diff --git a/includes/specials/SpecialUndelete.php 
b/includes/specials/SpecialUndelete.php
index fa38506..82c1567 100644
--- a/includes/specials/SpecialUndelete.php
+++ b/includes/specials/SpecialUndelete.php
@@ -437,7 +437,7 @@
                                        'cols' => 80,
                                        'rows' => 25
                                ],
-                               $content->getNativeData() . "\n"
+                               $content->getText() . "\n"
                        );
 
                        $previewButton = Xml::element( 'input', [
diff --git a/languages/LanguageConverter.php b/languages/LanguageConverter.php
index 5382df4..32abb42 100644
--- a/languages/LanguageConverter.php
+++ b/languages/LanguageConverter.php
@@ -942,7 +942,7 @@
                                $revision = Revision::newFromTitle( $title );
                                if ( $revision ) {
                                        if ( $revision->getContentModel() == 
CONTENT_MODEL_WIKITEXT ) {
-                                               $txt = $revision->getContent( 
Revision::RAW )->getNativeData();
+                                               $txt = $revision->getContent( 
Revision::RAW )->getText();
                                        }
 
                                        // @todo in the future, use a 
specialized content model, perhaps based on json!
diff --git a/maintenance/compareParsers.php b/maintenance/compareParsers.php
index f2540c7..0e2e07f 100644
--- a/maintenance/compareParsers.php
+++ b/maintenance/compareParsers.php
@@ -145,7 +145,7 @@
                        return;
                }
 
-               $text = strval( $content->getNativeData() );
+               $text = strval( $content->getText() );
 
                $output1 = $parser1->parse( $text, $title, $this->options );
                $output2 = $parser2->parse( $text, $title, $this->options );
diff --git a/maintenance/preprocessDump.php b/maintenance/preprocessDump.php
index 17d97b0..6a19463 100644
--- a/maintenance/preprocessDump.php
+++ b/maintenance/preprocessDump.php
@@ -81,12 +81,12 @@
        public function processRevision( $rev ) {
                $content = $rev->getContent( Revision::RAW );
 
-               if ( $content->getModel() !== CONTENT_MODEL_WIKITEXT ) {
+               if ( $content instanceof WikitextContent ) {
                        return;
                }
 
                try {
-                       $this->mPreprocessor->preprocessToObj( strval( 
$content->getNativeData() ), 0 );
+                       $this->mPreprocessor->preprocessToObj( strval( 
$content->getText() ), 0 );
                } catch ( Exception $e ) {
                        $this->error( "Caught exception " . $e->getMessage() . 
" in "
                                . $rev->getTitle()->getPrefixedText() );
diff --git a/tests/phpunit/includes/RevisionStorageTest.php 
b/tests/phpunit/includes/RevisionStorageTest.php
index 642ada2..b96d439 100644
--- a/tests/phpunit/includes/RevisionStorageTest.php
+++ b/tests/phpunit/includes/RevisionStorageTest.php
@@ -299,7 +299,7 @@
                $orig = $this->makeRevision( [ 'text' => 'hello hello.' ] );
                $rev = Revision::newFromId( $orig->getId() );
 
-               $this->assertEquals( 'hello hello.', 
$rev->getContent()->getNativeData() );
+               $this->assertEquals( 'hello hello.', 
$rev->getContent()->getText() );
        }
 
        /**
@@ -435,7 +435,7 @@
                        'new null revision shold have a different id from the 
original revision' );
                $this->assertEquals( $orig->getTextId(), $rev->getTextId(),
                        'new null revision shold have the same text id as the 
original revision' );
-               $this->assertEquals( 'some testing text', 
$rev->getContent()->getNativeData() );
+               $this->assertEquals( 'some testing text', 
$rev->getContent()->getText() );
        }
 
        public static function provideUserWasLastToEdit() {
diff --git a/tests/phpunit/includes/api/ApiEditPageTest.php 
b/tests/phpunit/includes/api/ApiEditPageTest.php
index e091153..7328613 100644
--- a/tests/phpunit/includes/api/ApiEditPageTest.php
+++ b/tests/phpunit/includes/api/ApiEditPageTest.php
@@ -160,7 +160,7 @@
                $content = $page->getContent();
                $this->assertNotNull( $content, 'Page should have been created' 
);
 
-               $text = $content->getNativeData();
+               $text = $content->getText();
 
                $this->assertEquals( $expected, $text );
        }
@@ -184,7 +184,7 @@
                $this->assertEquals( 'Success', $re['edit']['result'] );
                $newtext = WikiPage::factory( Title::newFromText( $name ) )
                        ->getContent( Revision::RAW )
-                       ->getNativeData();
+                       ->getText();
                $this->assertEquals( "==section 1==\nnew content 1\n\n==section 
2==\ncontent2", $newtext );
 
                // Test that we raise a 'nosuchsection' error
@@ -224,7 +224,7 @@
                // Check the page text is correct
                $text = WikiPage::factory( Title::newFromText( $name ) )
                        ->getContent( Revision::RAW )
-                       ->getNativeData();
+                       ->getText();
                $this->assertEquals( "== header ==\n\ntest", $text );
 
                // Now on one that does
@@ -240,7 +240,7 @@
                $this->assertEquals( 'Success', $re2['edit']['result'] );
                $text = WikiPage::factory( Title::newFromText( $name ) )
                        ->getContent( Revision::RAW )
-                       ->getNativeData();
+                       ->getText();
                $this->assertEquals( "== header ==\n\ntest\n\n== header 
==\n\ntest", $text );
        }
 
diff --git a/tests/phpunit/includes/content/ContentHandlerTest.php 
b/tests/phpunit/includes/content/ContentHandlerTest.php
index 403bee1..e550a99 100644
--- a/tests/phpunit/includes/content/ContentHandlerTest.php
+++ b/tests/phpunit/includes/content/ContentHandlerTest.php
@@ -208,7 +208,7 @@
                $content = new WikitextContent( "hello world" );
 
                $text = ContentHandler::getContentText( $content );
-               $this->assertEquals( $content->getNativeData(), $text );
+               $this->assertEquals( $content->getText(), $text );
        }
 
        /**
@@ -254,9 +254,9 @@
 
        public static function dataMakeContent() {
                return [
-                       [ 'hallo', 'Help:Test', null, null, 
CONTENT_MODEL_WIKITEXT, 'hallo', false ],
-                       [ 'hallo', 'MediaWiki:Test.js', null, null, 
CONTENT_MODEL_JAVASCRIPT, 'hallo', false ],
-                       [ serialize( 'hallo' ), 'Dummy:Test', null, null, 
"testing", 'hallo', false ],
+                       [ 'hallo', 'Help:Test', null, null, 
CONTENT_MODEL_WIKITEXT, false ],
+                       [ 'hallo', 'MediaWiki:Test.js', null, null, 
CONTENT_MODEL_JAVASCRIPT, false ],
+                       [ serialize( 'hallo' ), 'Dummy:Test', null, null, 
"testing", false ],
 
                        [
                                'hallo',
@@ -264,7 +264,6 @@
                                null,
                                CONTENT_FORMAT_WIKITEXT,
                                CONTENT_MODEL_WIKITEXT,
-                               'hallo',
                                false
                        ],
                        [
@@ -273,19 +272,17 @@
                                null,
                                CONTENT_FORMAT_JAVASCRIPT,
                                CONTENT_MODEL_JAVASCRIPT,
-                               'hallo',
                                false
                        ],
-                       [ serialize( 'hallo' ), 'Dummy:Test', null, "testing", 
"testing", 'hallo', false ],
+                       [ serialize( 'hallo' ), 'Dummy:Test', null, "testing", 
"testing", false ],
 
-                       [ 'hallo', 'Help:Test', CONTENT_MODEL_CSS, null, 
CONTENT_MODEL_CSS, 'hallo', false ],
+                       [ 'hallo', 'Help:Test', CONTENT_MODEL_CSS, null, 
CONTENT_MODEL_CSS, false ],
                        [
                                'hallo',
                                'MediaWiki:Test.js',
                                CONTENT_MODEL_CSS,
                                null,
                                CONTENT_MODEL_CSS,
-                               'hallo',
                                false
                        ],
                        [
@@ -294,13 +291,12 @@
                                CONTENT_MODEL_CSS,
                                null,
                                CONTENT_MODEL_CSS,
-                               serialize( 'hallo' ),
                                false
                        ],
 
-                       [ 'hallo', 'Help:Test', CONTENT_MODEL_WIKITEXT, 
"testing", null, null, true ],
-                       [ 'hallo', 'MediaWiki:Test.js', CONTENT_MODEL_CSS, 
"testing", null, null, true ],
-                       [ 'hallo', 'Dummy:Test', CONTENT_MODEL_JAVASCRIPT, 
"testing", null, null, true ],
+                       [ 'hallo', 'Help:Test', CONTENT_MODEL_WIKITEXT, 
"testing", null, true ],
+                       [ 'hallo', 'MediaWiki:Test.js', CONTENT_MODEL_CSS, 
"testing", null, true ],
+                       [ 'hallo', 'Dummy:Test', CONTENT_MODEL_JAVASCRIPT, 
"testing", null, true ],
                ];
        }
 
@@ -309,7 +305,7 @@
         * @covers ContentHandler::makeContent
         */
        public function testMakeContent( $data, $title, $modelId, $format,
-               $expectedModelId, $expectedNativeData, $shouldFail
+               $expectedModelId, $shouldFail
        ) {
                $title = Title::newFromText( $title );
                LinkCache::singleton()->addBadLinkObj( $title );
@@ -321,7 +317,7 @@
                        }
 
                        $this->assertEquals( $expectedModelId, 
$content->getModel(), 'bad model id' );
-                       $this->assertEquals( $expectedNativeData, 
$content->getNativeData(), 'bads native data' );
+                       $this->assertEquals( $data, $content->serialize(), 'bad 
serialized data' );
                } catch ( MWException $ex ) {
                        if ( !$shouldFail ) {
                                $this->fail( "ContentHandler::makeContent 
failed unexpectedly: " . $ex->getMessage() );
diff --git a/tests/phpunit/includes/content/JavaScriptContentTest.php 
b/tests/phpunit/includes/content/JavaScriptContentTest.php
index 1c746bc..47da062 100644
--- a/tests/phpunit/includes/content/JavaScriptContentTest.php
+++ b/tests/phpunit/includes/content/JavaScriptContentTest.php
@@ -247,7 +247,7 @@
                $content = new JavaScriptContent( $oldText );
                $newContent = $content->updateRedirect( $target );
 
-               $this->assertEquals( $expectedText, 
$newContent->getNativeData() );
+               $this->assertEquals( $expectedText, $newContent->getText() );
        }
 
        public static function provideUpdateRedirect() {
diff --git a/tests/phpunit/includes/content/TextContentTest.php 
b/tests/phpunit/includes/content/TextContentTest.php
index b290f8f..15faf09 100644
--- a/tests/phpunit/includes/content/TextContentTest.php
+++ b/tests/phpunit/includes/content/TextContentTest.php
@@ -39,6 +39,10 @@
                parent::tearDown();
        }
 
+       /**
+        * @param string $text
+        * @return TextContent
+        */
        public function newContent( $text ) {
                return new TextContent( $text );
        }
@@ -126,7 +130,7 @@
                        $options
                );
 
-               $this->assertEquals( $expected, $content->getNativeData() );
+               $this->assertEquals( $expected, $content->getText() );
        }
 
        public static function dataPreloadTransform() {
@@ -149,7 +153,7 @@
                $content = $this->newContent( $text );
                $content = $content->preloadTransform( 
$this->context->getTitle(), $options );
 
-               $this->assertEquals( $expected, $content->getNativeData() );
+               $this->assertEquals( $expected, $content->getText() );
        }
 
        public static function dataGetRedirectTarget() {
@@ -275,7 +279,7 @@
                $copy = $content->copy();
 
                $this->assertTrue( $content->equals( $copy ), 'copy must be 
equal to original' );
-               $this->assertEquals( 'hello world.', $copy->getNativeData() );
+               $this->assertEquals( 'hello world.', $copy->getText() );
        }
 
        /**
@@ -285,6 +289,15 @@
                $content = $this->newContent( 'hello world.' );
 
                $this->assertEquals( 12, $content->getSize() );
+       }
+
+       /**
+        * @covers TextContent::getText
+        */
+       public function testGetText() {
+               $content = $this->newContent( 'hello world.' );
+
+               $this->assertEquals( 'hello world.', $content->getText() );
        }
 
        /**
@@ -456,7 +469,7 @@
                        $this->assertFalse( $converted, "conversion to $model 
was expected to fail!" );
                } else {
                        $this->assertInstanceOf( 'Content', $converted );
-                       $this->assertEquals( $expectedNative, 
$converted->getNativeData() );
+                       $this->assertEquals( $expectedNative, 
$converted->getText() );
                }
        }
 
diff --git a/tests/phpunit/includes/content/WikitextContentHandlerTest.php 
b/tests/phpunit/includes/content/WikitextContentHandlerTest.php
index 290b11a..0e18bf9 100644
--- a/tests/phpunit/includes/content/WikitextContentHandlerTest.php
+++ b/tests/phpunit/includes/content/WikitextContentHandlerTest.php
@@ -40,10 +40,10 @@
         */
        public function testUnserializeContent() {
                $content = $this->handler->unserializeContent( 'hello world' );
-               $this->assertEquals( 'hello world', $content->getNativeData() );
+               $this->assertEquals( 'hello world', $content->getText() );
 
                $content = $this->handler->unserializeContent( 'hello world', 
CONTENT_FORMAT_WIKITEXT );
-               $this->assertEquals( 'hello world', $content->getNativeData() );
+               $this->assertEquals( 'hello world', $content->getText() );
 
                try {
                        $this->handler->unserializeContent( 'hello world', 
'dummy/foo' );
@@ -60,7 +60,7 @@
                $content = $this->handler->makeEmptyContent();
 
                $this->assertTrue( $content->isEmpty() );
-               $this->assertEquals( '', $content->getNativeData() );
+               $this->assertEquals( '', $content->getText() );
        }
 
        public static function dataIsSupportedFormat() {
@@ -166,7 +166,7 @@
 
                $merged = $this->handler->merge3( $oldContent, $myContent, 
$yourContent );
 
-               $this->assertEquals( $expected, $merged ? 
$merged->getNativeData() : $merged );
+               $this->assertEquals( $expected, $merged ? $merged->getText() : 
$merged );
        }
 
        public static function dataGetAutosummary() {
diff --git a/tests/phpunit/includes/content/WikitextContentTest.php 
b/tests/phpunit/includes/content/WikitextContentTest.php
index b9ce997..d0f5b8f 100644
--- a/tests/phpunit/includes/content/WikitextContentTest.php
+++ b/tests/phpunit/includes/content/WikitextContentTest.php
@@ -128,7 +128,7 @@
 
                $sectionContent = $content->getSection( $sectionId );
                if ( is_object( $sectionContent ) ) {
-                       $sectionText = $sectionContent->getNativeData();
+                       $sectionText = $sectionContent->getText();
                } else {
                        $sectionText = $sectionContent;
                }
@@ -182,7 +182,7 @@
                $content = $this->newContent( $text );
                $c = $content->replaceSection( $section, $this->newContent( 
$with ), $sectionTitle );
 
-               $this->assertEquals( $expected, is_null( $c ) ? null : 
$c->getNativeData() );
+               $this->assertEquals( $expected, is_null( $c ) ? null : 
$c->getText() );
        }
 
        /**
@@ -192,7 +192,7 @@
                $content = $this->newContent( 'hello world' );
                $content = $content->addSectionHeader( 'test' );
 
-               $this->assertEquals( "== test ==\n\nhello world", 
$content->getNativeData() );
+               $this->assertEquals( "== test ==\n\nhello world", 
$content->getText() );
        }
 
        public static function dataPreSaveTransform() {
diff --git a/tests/phpunit/includes/import/ImportTest.php 
b/tests/phpunit/includes/import/ImportTest.php
index 53d91c6..283b4c7 100644
--- a/tests/phpunit/includes/import/ImportTest.php
+++ b/tests/phpunit/includes/import/ImportTest.php
@@ -33,7 +33,7 @@
                $title = Title::newFromText( $title );
                $this->assertTrue( $title->exists() );
 
-               $this->assertEquals( WikiPage::factory( $title 
)->getContent()->getNativeData(), $text );
+               $this->assertEquals( WikiPage::factory( $title 
)->getContent()->getText(), $text );
        }
 
        public function getUnknownTagsXML() {
diff --git a/tests/phpunit/includes/page/WikiPageTest.php 
b/tests/phpunit/includes/page/WikiPageTest.php
index 556a348..d83df01 100644
--- a/tests/phpunit/includes/page/WikiPageTest.php
+++ b/tests/phpunit/includes/page/WikiPageTest.php
@@ -248,7 +248,7 @@
                $rev = $page->getRevision();
 
                $this->assertEquals( $page->getLatest(), $rev->getId() );
-               $this->assertEquals( "some text", 
$rev->getContent()->getNativeData() );
+               $this->assertEquals( "some text", $rev->getContent()->getText() 
);
        }
 
        /**
@@ -264,7 +264,7 @@
                $this->createPage( $page, "some text", CONTENT_MODEL_WIKITEXT );
 
                $content = $page->getContent();
-               $this->assertEquals( "some text", $content->getNativeData() );
+               $this->assertEquals( "some text", $content->getText() );
        }
 
        /**
@@ -680,7 +680,7 @@
                $content = ContentHandler::makeContent( $with, 
$page->getTitle(), $page->getContentModel() );
                $c = $page->replaceSectionContent( $section, $content, 
$sectionTitle );
 
-               $this->assertEquals( $expected, is_null( $c ) ? null : trim( 
$c->getNativeData() ) );
+               $this->assertEquals( $expected, is_null( $c ) ? null : trim( 
$c->getText() ) );
        }
 
        /**
@@ -696,7 +696,7 @@
                $content = ContentHandler::makeContent( $with, 
$page->getTitle(), $page->getContentModel() );
                $c = $page->replaceSectionAtRev( $section, $content, 
$sectionTitle, $baseRevId );
 
-               $this->assertEquals( $expected, is_null( $c ) ? null : trim( 
$c->getNativeData() ) );
+               $this->assertEquals( $expected, is_null( $c ) ? null : trim( 
$c->getText() ) );
        }
 
        /* @todo FIXME: fix this!
@@ -864,7 +864,7 @@
                $page = new WikiPage( $page->getTitle() );
                $this->assertEquals( $rev2->getSha1(), 
$page->getRevision()->getSha1(),
                        "rollback did not revert to the correct revision" );
-               $this->assertEquals( "one\n\ntwo", 
$page->getContent()->getNativeData() );
+               $this->assertEquals( "one\n\ntwo", 
$page->getContent()->getText() );
        }
 
        /**
@@ -919,7 +919,7 @@
                $page = new WikiPage( $page->getTitle() );
                $this->assertEquals( $rev1->getSha1(), 
$page->getRevision()->getSha1(),
                        "rollback did not revert to the correct revision" );
-               $this->assertEquals( "one", 
$page->getContent()->getNativeData() );
+               $this->assertEquals( "one", $page->getContent()->getText() );
        }
 
        /**
@@ -988,7 +988,7 @@
                $page = new WikiPage( $page->getTitle() );
                $this->assertEquals( $rev1->getSha1(), 
$page->getRevision()->getSha1(),
                        "rollback did not revert to the correct revision" );
-               $this->assertEquals( "one", 
$page->getContent()->getNativeData() );
+               $this->assertEquals( "one", $page->getContent()->getText() );
        }
 
        public static function provideGetAutoDeleteReason() {
diff --git a/tests/phpunit/mocks/content/DummyContentForTesting.php 
b/tests/phpunit/mocks/content/DummyContentForTesting.php
index cdb3f78..2b4332a 100644
--- a/tests/phpunit/mocks/content/DummyContentForTesting.php
+++ b/tests/phpunit/mocks/content/DummyContentForTesting.php
@@ -102,7 +102,7 @@
        public function getParserOutput( Title $title, $revId = null,
                ParserOptions $options = null, $generateHtml = true
        ) {
-               return new ParserOutput( $this->getNativeData() );
+               return new ParserOutput( $this->getText() );
        }
 
        /**
@@ -116,6 +116,6 @@
         */
        protected function fillParserOutput( Title $title, $revId,
                        ParserOptions $options, $generateHtml, ParserOutput 
&$output ) {
-               $output = new ParserOutput( $this->getNativeData() );
+               $output = new ParserOutput( $this->getText() );
        }
 }
diff --git a/tests/phpunit/mocks/content/DummyNonTextContent.php 
b/tests/phpunit/mocks/content/DummyNonTextContent.php
index afc1a4a..1b725a1 100644
--- a/tests/phpunit/mocks/content/DummyNonTextContent.php
+++ b/tests/phpunit/mocks/content/DummyNonTextContent.php
@@ -102,7 +102,7 @@
        public function getParserOutput( Title $title, $revId = null,
                ParserOptions $options = null, $generateHtml = true
        ) {
-               return new ParserOutput( $this->getNativeData() );
+               return new ParserOutput( $this->getText() );
        }
 
        /**
@@ -116,6 +116,6 @@
         */
        protected function fillParserOutput( Title $title, $revId,
                        ParserOptions $options, $generateHtml, ParserOutput 
&$output ) {
-               $output = new ParserOutput( $this->getNativeData() );
+               $output = new ParserOutput( $this->getText() );
        }
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/359184
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6cf13e6cfe57124ff5af71761d3988bc3c82795d
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Daniel Kinzler <daniel.kinz...@wikimedia.de>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to