wiki.techinc.nl/tests/phpunit/unit/includes/Storage/PageUpdateStatusTest.php
daniel 491278a649 Introduce PageUpdateStatus
This provides clean access to the RevisionRecord created by an edit.

Change-Id: Iee071d1d1ba1c0c7f2ef72a0ace61436402546aa
2022-11-30 14:49:01 +01:00

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() );
}
}