Merge "(Bug 41574) Supply Title object to Revision if possible."
This commit is contained in:
commit
dc0e410e29
8 changed files with 29 additions and 17 deletions
|
|
@ -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() );
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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(),
|
||||
|
|
|
|||
|
|
@ -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_' );
|
||||
|
|
|
|||
|
|
@ -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 ) );
|
||||
|
|
|
|||
|
|
@ -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(),
|
||||
|
|
|
|||
|
|
@ -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' );
|
||||
|
|
|
|||
|
|
@ -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 ) );
|
||||
|
|
|
|||
|
|
@ -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\"" );
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue