This provides clean access to the RevisionRecord created by an edit. Change-Id: Iee071d1d1ba1c0c7f2ef72a0ace61436402546aa
76 lines
2.2 KiB
PHP
76 lines
2.2 KiB
PHP
<?php
|
|
|
|
namespace MediaWiki\Tests\Storage;
|
|
|
|
use MediaWiki\Page\PageIdentityValue;
|
|
use MediaWiki\Revision\MutableRevisionRecord;
|
|
use MediaWiki\Storage\PageUpdateStatus;
|
|
use MediaWikiUnitTestCase;
|
|
|
|
/**
|
|
* @covers \MediaWiki\Storage\PageUpdateStatus
|
|
*/
|
|
class PageUpdateStatusTest extends MediaWikiUnitTestCase {
|
|
|
|
public function testNewRevision() {
|
|
$status = PageUpdateStatus::newEmpty( false );
|
|
|
|
$this->assertTrue( $status->isOK() );
|
|
$this->assertFalse( $status->wasRevisionCreated() );
|
|
$this->assertFalse( $status->wasPageCreated() );
|
|
|
|
$page = PageIdentityValue::localIdentity( 7, NS_MAIN, 'Test' );
|
|
$rev = new MutableRevisionRecord( $page );
|
|
|
|
$status->setNewRevision( $rev );
|
|
$this->assertTrue( $status->wasRevisionCreated() );
|
|
$this->assertSame( $rev, $status->getNewRevision() );
|
|
}
|
|
|
|
public function testWasPageCreated() {
|
|
$status = PageUpdateStatus::newEmpty( true );
|
|
|
|
$this->assertTrue( $status->isOK() );
|
|
$this->assertFalse( $status->wasPageCreated() );
|
|
|
|
$page = PageIdentityValue::localIdentity( 7, NS_MAIN, 'Test' );
|
|
$rev = new MutableRevisionRecord( $page );
|
|
|
|
$status->setNewRevision( $rev );
|
|
$this->assertTrue( $status->wasPageCreated() );
|
|
}
|
|
|
|
public function testFailedBecausePageExists() {
|
|
$status = PageUpdateStatus::newEmpty( true );
|
|
$this->assertFalse( $status->failedBecausePageExists() );
|
|
|
|
$status->fatal( 'blabla' );
|
|
$this->assertFalse( $status->failedBecausePageExists() );
|
|
|
|
$status->fatal( 'edit-already-exists' );
|
|
$this->assertTrue( $status->failedBecausePageExists() );
|
|
}
|
|
|
|
public function testFailedBecausePageMissing() {
|
|
$status = PageUpdateStatus::newEmpty( false );
|
|
$this->assertFalse( $status->failedBecausePageMissing() );
|
|
|
|
$status->fatal( 'blabla' );
|
|
$this->assertFalse( $status->failedBecausePageMissing() );
|
|
|
|
$status->fatal( 'edit-gone-missing' );
|
|
$this->assertTrue( $status->failedBecausePageMissing() );
|
|
}
|
|
|
|
public function testFailedBecauseOfConflict() {
|
|
$status = PageUpdateStatus::newEmpty( false );
|
|
$this->assertFalse( $status->failedBecauseOfConflict() );
|
|
|
|
$status->fatal( 'blabla' );
|
|
$this->assertFalse( $status->failedBecauseOfConflict() );
|
|
|
|
$status->fatal( 'edit-conflict' );
|
|
$this->assertTrue( $status->failedBecauseOfConflict() );
|
|
}
|
|
|
|
}
|