Revert "If rev_content_model is null, use page_content_model."
authorLegoktm <legoktm.wikipedia@gmail.com>
Sun, 10 Jul 2016 22:58:36 +0000 (22:58 +0000)
committerLegoktm <legoktm.wikipedia@gmail.com>
Sun, 10 Jul 2016 22:58:36 +0000 (22:58 +0000)
This patch effectively reverted a5bc9f49cd01e49c, which
was the correct behavior. If a page were to have its content
model changed, the NULL revision rows would now be interpreted
as the page's new content model instead of the default content
model (which they should be).

This reverts commit 9a6ff0bd82faafbf9746a6fa3ed33f42092587c3.

Change-Id: I6801d09bd847f477222e503b912005b02a9df045

includes/Revision.php
tests/phpunit/includes/RevisionStorageTest.php

index 5c4302e..eda8989 100644 (file)
@@ -1110,7 +1110,7 @@ class Revision implements IDBAccessObject {
                if ( !$this->mContentModel ) {
                        $title = $this->getTitle();
                        if ( $title ) {
-                               $this->mContentModel = $title->getContentModel();
+                               $this->mContentModel = ContentHandler::getDefaultModelFor( $title );
                        } else {
                                $this->mContentModel = CONTENT_MODEL_WIKITEXT;
                        }
@@ -1455,7 +1455,7 @@ class Revision implements IDBAccessObject {
                                        . "revision's page!" );
                        }
 
-                       $defaultModel = $title->getContentModel();
+                       $defaultModel = ContentHandler::getDefaultModelFor( $title );
                        $defaultFormat = ContentHandler::getForModelID( $defaultModel )->getDefaultFormat();
 
                        $row['rev_content_model'] = ( $model === $defaultModel ) ? null : $model;
index 3866190..7d3007b 100644 (file)
@@ -317,42 +317,7 @@ class RevisionStorageTest extends MediaWikiTestCase {
        /**
         * @covers Revision::getContentModel
         */
-       public function testGetContentModel_default_model() {
-               global $wgContentHandlerUseDB;
-
-               if ( !$wgContentHandlerUseDB ) {
-                       $this->markTestSkipped( '$wgContentHandlerUseDB is disabled' );
-               }
-
-               $orig = $this->makeRevision( [ 'text' => 'hello hello.', ] );
-
-               // Change namespace default content model, to make sure getContentModel() uses the
-               // page content model, not the namespace default.
-               $ns = $this->getDefaultWikitextNS();
-               $this->mergeMwGlobalArrayValue( 'wgNamespaceContentModels', [ $ns => CONTENT_MODEL_JSON ] );
-
-               $rev = Revision::newFromId( $orig->getId() );
-
-               // we should still get the correct content model from the page table
-               $this->assertEquals( CONTENT_MODEL_WIKITEXT, $rev->getContentModel() );
-
-               // check that we don't null the revision model if it's equal to the default, but not to
-               // the current page model.
-               $second = $this->makeRevision( [
-                       'text' => '{ "say":"hello" }',
-                       'content_model' => CONTENT_MODEL_JAVASCRIPT
-               ] );
-
-               $rev = Revision::newFromId( $second->getId() );
-
-               // we should now get the content model from the revision table
-               $this->assertEquals( CONTENT_MODEL_JAVASCRIPT, $rev->getContentModel() );
-       }
-
-       /**
-        * @covers Revision::getContentModel
-        */
-       public function testGetContentModel_other_model() {
+       public function testGetContentModel() {
                global $wgContentHandlerUseDB;
 
                if ( !$wgContentHandlerUseDB ) {
@@ -360,7 +325,7 @@ class RevisionStorageTest extends MediaWikiTestCase {
                }
 
                $orig = $this->makeRevision( [ 'text' => 'hello hello.',
-                                                    'content_model' => CONTENT_MODEL_JAVASCRIPT ] );
+                       'content_model' => CONTENT_MODEL_JAVASCRIPT ] );
                $rev = Revision::newFromId( $orig->getId() );
 
                $this->assertEquals( CONTENT_MODEL_JAVASCRIPT, $rev->getContentModel() );