Merge "(Bug 41574) Supply Title object to Revision if possible."

This commit is contained in:
Demon 2012-11-01 16:48:48 +00:00 committed by Gerrit Code Review
commit dc0e410e29
8 changed files with 29 additions and 17 deletions

View file

@ -514,12 +514,12 @@ class ChangesList extends ContextSource {
if ( $this->getUser()->isAllowed('rollback') && $rc->mAttribs['page_latest'] == $rc->mAttribs['rc_this_oldid'] )
{
$rev = new Revision( array(
'title' => $page,
'id' => $rc->mAttribs['rc_this_oldid'],
'user' => $rc->mAttribs['rc_user'],
'user_text' => $rc->mAttribs['rc_user_text'],
'deleted' => $rc->mAttribs['rc_deleted']
) );
$rev->setTitle( $page );
$s .= ' '.Linker::generateRollback( $rev, $this->getContext() );
}
}

View file

@ -1397,6 +1397,7 @@ class WikiRevision {
# @todo FIXME: Use original rev_id optionally (better for backups)
# Insert the row
$revision = new Revision( array(
'title' => $this->title,
'page' => $pageId,
'content_model' => $this->getModel(),
'content_format' => $this->getFormat(),

View file

@ -178,6 +178,13 @@ class Revision implements IDBAccessObject {
unset( $attribs['content_format'] );
}
if ( !isset( $attribs['title'] )
&& isset( $row->ar_namespace )
&& isset( $row->ar_title ) ) {
$attribs['title'] = Title::makeTitle( $row->ar_namespace, $row->ar_title );
}
if ( isset( $row->ar_text ) && !$row->ar_text_id ) {
// Pre-1.5 ar_text row
$attribs['text'] = self::getRevisionText( $row, 'ar_' );

View file

@ -3816,6 +3816,7 @@ class Title {
$newid = $redirectArticle->insertOn( $dbw );
if ( $newid ) { // sanity
$redirectRevision = new Revision( array(
'title' => $this, // for determining the default content model
'page' => $newid,
'comment' => $comment,
'content' => $redirectContent ) );

View file

@ -2163,6 +2163,7 @@ class WikiPage extends Page implements IDBAccessObject {
$dbw = wfGetDB( DB_MASTER );
$revision = new Revision( array(
'title' => $this->getTitle(), // for determining the default content model
'page' => $this->getId(),
'text' => $serialized,
'length' => $content->getSize(),

View file

@ -135,7 +135,10 @@ class DeletedContribsPager extends IndexPager {
function formatRow( $row ) {
wfProfileIn( __METHOD__ );
$page = Title::makeTitle( $row->ar_namespace, $row->ar_title );
$rev = new Revision( array(
'title' => $page,
'id' => $row->ar_rev_id,
'comment' => $row->ar_comment,
'user' => $row->ar_user,
@ -145,8 +148,6 @@ class DeletedContribsPager extends IndexPager {
'deleted' => $row->ar_deleted,
) );
$page = Title::makeTitle( $row->ar_namespace, $row->ar_title );
$undelete = SpecialPage::getTitleFor( 'Undelete' );
$logs = SpecialPage::getTitleFor( 'Log' );

View file

@ -380,6 +380,7 @@ class SpecialMergeHistory extends SpecialPage {
if ( $redirectContent ) {
$redirectPage = WikiPage::factory( $targetTitle );
$redirectRevision = new Revision( array(
'title' => $targetTitle,
'page' => $this->mTargetID,
'comment' => $comment,
'content' => $redirectContent ) );

View file

@ -60,7 +60,8 @@ class WikiPageTest extends MediaWikiLangTestCase {
*/
protected function newPage( $title, $model = null ) {
if ( is_string( $title ) ) {
$title = Title::newFromText( $title );
$ns = $this->getDefaultWikitextNS();
$title = Title::newFromText( $title, $ns );
}
$p = new WikiPage( $title );
@ -79,11 +80,7 @@ class WikiPageTest extends MediaWikiLangTestCase {
* @return WikiPage
*/
protected function createPage( $page, $text, $model = null ) {
if ( is_string( $page ) ) {
$page = Title::newFromText( $page );
}
if ( $page instanceof Title ) {
if ( is_string( $page ) || $page instanceof Title ) {
$page = $this->newPage( $page, $model );
}
@ -94,9 +91,8 @@ class WikiPageTest extends MediaWikiLangTestCase {
}
public function testDoEditContent() {
$title = Title::newFromText( "WikiPageTest_testDoEditContent" );
$page = $this->newPage( $title );
$page = $this->newPage( "WikiPageTest_testDoEditContent" );
$title = $page->getTitle();
$content = ContentHandler::makeContent( "[[Lorem ipsum]] dolor sit amet, consetetur sadipscing elitr, sed diam "
. " nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.",
@ -543,10 +539,16 @@ class WikiPageTest extends MediaWikiLangTestCase {
* @dataProvider provideIsCountable
*/
public function testIsCountable( $title, $model, $text, $mode, $expected ) {
global $wgArticleCountMethod;
global $wgContentHandlerUseDB;
$oldArticleCountMethod = $wgArticleCountMethod;
$wgArticleCountMethod = $mode;
$this->setMwGlobals( 'wgArticleCountMethod', $mode );
$title = Title::newFromText( $title );
if ( !$wgContentHandlerUseDB && ContentHandler::getDefaultModelFor( $title ) != $model ) {
$this->markTestSkipped( "Can not use non-default content model $model for "
. $title->getPrefixedDBkey() . " with \wgArticleCountMethod disabled." );
}
$page = $this->createPage( $title, $text, $model );
$hasLinks = wfGetDB( DB_SLAVE )->selectField( 'pagelinks', 1,
@ -557,8 +559,6 @@ class WikiPageTest extends MediaWikiLangTestCase {
$v = $page->isCountable();
$w = $page->isCountable( $editInfo );
$wgArticleCountMethod = $oldArticleCountMethod;
$this->assertEquals( $expected, $v, "isCountable( null ) returned unexpected value " . var_export( $v, true )
. " instead of " . var_export( $expected, true ) . " in mode `$mode` for text \"$text\"" );