class RevisionIntegrationTest extends MediaWikiTestCase {
/**
- * @var WikiPage $the_page
+ * @var WikiPage $testPage
*/
- private $the_page;
+ private $testPage;
public function __construct( $name = null, array $data = [], $dataName = '' ) {
parent::__construct( $name, $data, $dataName );
MWNamespace::clearCaches();
// Reset namespace cache
$wgContLang->resetNamespaces();
- if ( !$this->the_page ) {
- $this->the_page = $this->createPage(
- 'RevisionStorageTest_the_page',
- "just a dummy page",
- CONTENT_MODEL_WIKITEXT
- );
+ if ( !$this->testPage ) {
+ $this->testPage = WikiPage::factory( Title::newFromText( 'UTPage' ) );
}
}
$wgContLang->resetNamespaces();
}
- protected function makeRevision( $props = null ) {
+ private function makeRevisionWithProps( $props = null ) {
if ( $props === null ) {
$props = [];
}
}
if ( !isset( $props['page'] ) ) {
- $props['page'] = $this->the_page->getId();
+ $props['page'] = $this->testPage->getId();
}
$rev = new Revision( $props );
*
* @return WikiPage
*/
- protected function createPage( $titleString, $text, $model = null ) {
+ private function createPage( $titleString, $text, $model = null ) {
if ( !preg_match( '/:/', $titleString ) &&
( $model === null || $model === CONTENT_MODEL_WIKITEXT )
) {
return $wikipage;
}
- protected function assertRevEquals( Revision $orig, Revision $rev = null ) {
+ private function assertRevEquals( Revision $orig, Revision $rev = null ) {
$this->assertNotNull( $rev, 'missing revision' );
$this->assertEquals( $orig->getId(), $rev->getId() );
* @covers Revision::__construct
*/
public function testConstructFromRow() {
- $orig = $this->makeRevision();
+ $latestRevisionId = $this->testPage->getLatest();
+ $latestRevision = $this->testPage->getRevision();
$dbr = wfGetDB( DB_REPLICA );
- $res = $dbr->select( 'revision', Revision::selectFields(), [ 'rev_id' => $orig->getId() ] );
+ $res = $dbr->select(
+ 'revision',
+ Revision::selectFields(),
+ [ 'rev_id' => $latestRevisionId ]
+ );
$this->assertTrue( is_object( $res ), 'query failed' );
$row = $res->fetchObject();
$res->free();
- $rev = new Revision( $row );
-
- $this->assertRevEquals( $orig, $rev );
+ $this->assertRevEquals( $latestRevision, new Revision( $row ) );
}
/**
* @covers Revision::newFromTitle
*/
public function testNewFromTitle_withoutId() {
- $page = $this->createPage(
- __METHOD__,
- 'GOAT',
- CONTENT_MODEL_WIKITEXT
- );
- $latestRevId = $page->getLatest();
+ $latestRevId = $this->testPage->getLatest();
- $rev = Revision::newFromTitle( $page->getTitle() );
+ $rev = Revision::newFromTitle( $this->testPage->getTitle() );
- $this->assertTrue( $page->getTitle()->equals( $rev->getTitle() ) );
+ $this->assertTrue( $this->testPage->getTitle()->equals( $rev->getTitle() ) );
$this->assertEquals( $latestRevId, $rev->getId() );
}
* @covers Revision::newFromTitle
*/
public function testNewFromTitle_withId() {
- $page = $this->createPage(
- __METHOD__,
- 'GOAT',
- CONTENT_MODEL_WIKITEXT
- );
- $latestRevId = $page->getLatest();
+ $latestRevId = $this->testPage->getLatest();
- $rev = Revision::newFromTitle( $page->getTitle(), $latestRevId );
+ $rev = Revision::newFromTitle( $this->testPage->getTitle(), $latestRevId );
- $this->assertTrue( $page->getTitle()->equals( $rev->getTitle() ) );
+ $this->assertTrue( $this->testPage->getTitle()->equals( $rev->getTitle() ) );
$this->assertEquals( $latestRevId, $rev->getId() );
}
* @covers Revision::newFromTitle
*/
public function testNewFromTitle_withBadId() {
- $page = $this->createPage(
- __METHOD__,
- 'GOAT',
- CONTENT_MODEL_WIKITEXT
- );
- $latestRevId = $page->getLatest();
+ $latestRevId = $this->testPage->getLatest();
- $rev = Revision::newFromTitle( $page->getTitle(), $latestRevId + 1 );
+ $rev = Revision::newFromTitle( $this->testPage->getTitle(), $latestRevId + 1 );
$this->assertNull( $rev );
}
* @covers Revision::newFromRow
*/
public function testNewFromRow() {
- $orig = $this->makeRevision();
+ $orig = $this->makeRevisionWithProps();
$dbr = wfGetDB( DB_REPLICA );
$res = $dbr->select( 'revision', Revision::selectFields(), [ 'rev_id' => $orig->getId() ] );
* @covers Revision::newFromId
*/
public function testNewFromId() {
- $orig = $this->makeRevision();
-
+ $orig = $this->testPage->getRevision();
$rev = Revision::newFromId( $orig->getId() );
-
$this->assertRevEquals( $orig, $rev );
}
* @covers Revision::fetchRevision
*/
public function testFetchRevision() {
- $page = $this->createPage(
- 'RevisionStorageTest_testFetchRevision',
- 'one',
- CONTENT_MODEL_WIKITEXT
- );
-
// Hidden process cache assertion below
- $page->getRevision()->getId();
+ $this->testPage->getRevision()->getId();
- $page->doEditContent( new WikitextContent( 'two' ), 'second rev' );
- $id = $page->getRevision()->getId();
+ $this->testPage->doEditContent( new WikitextContent( __METHOD__ ), __METHOD__ );
+ $id = $this->testPage->getRevision()->getId();
- $res = Revision::fetchRevision( $page->getTitle() );
+ $res = Revision::fetchRevision( $this->testPage->getTitle() );
# note: order is unspecified
$rows = [];
* @covers Revision::getPage
*/
public function testGetPage() {
- $page = $this->the_page;
+ $page = $this->testPage;
- $orig = $this->makeRevision( [ 'page' => $page->getId() ] );
+ $orig = $this->makeRevisionWithProps( [ 'page' => $page->getId() ] );
$rev = Revision::newFromId( $orig->getId() );
$this->assertEquals( $page->getId(), $rev->getPage() );
* @covers Revision::isCurrent
*/
public function testIsCurrent() {
- $page = $this->createPage(
- 'RevisionStorageTest_testIsCurrent',
- 'Lorem Ipsum',
- CONTENT_MODEL_WIKITEXT
- );
- $rev1 = $page->getRevision();
+ $rev1 = $this->testPage->getRevision();
# @todo find out if this should be true
# $this->assertTrue( $rev1->isCurrent() );
$rev1x = Revision::newFromId( $rev1->getId() );
$this->assertTrue( $rev1x->isCurrent() );
- $page->doEditContent(
- ContentHandler::makeContent( 'Bla bla', $page->getTitle(), CONTENT_MODEL_WIKITEXT ),
- 'second rev'
- );
- $rev2 = $page->getRevision();
+ $this->testPage->doEditContent( new WikitextContent( __METHOD__ ), __METHOD__ );
+ $rev2 = $this->testPage->getRevision();
# @todo find out if this should be true
# $this->assertTrue( $rev2->isCurrent() );
* @covers Revision::getPrevious
*/
public function testGetPrevious() {
- $page = $this->createPage(
- 'RevisionStorageTest_testGetPrevious',
- 'Lorem Ipsum testGetPrevious',
- CONTENT_MODEL_WIKITEXT
- );
- $rev1 = $page->getRevision();
+ $oldestRevision = $this->testPage->getOldestRevision();
+ $latestRevision = $this->testPage->getLatest();
- $this->assertNull( $rev1->getPrevious() );
+ $this->assertNull( $oldestRevision->getPrevious() );
- $page->doEditContent(
- ContentHandler::makeContent( 'Bla bla', $page->getTitle(), CONTENT_MODEL_WIKITEXT ),
- 'second rev testGetPrevious' );
- $rev2 = $page->getRevision();
+ $this->testPage->doEditContent( new WikitextContent( __METHOD__ ), __METHOD__ );
+ $newRevision = $this->testPage->getRevision();
- $this->assertNotNull( $rev2->getPrevious() );
- $this->assertEquals( $rev1->getId(), $rev2->getPrevious()->getId() );
+ $this->assertNotNull( $newRevision->getPrevious() );
+ $this->assertEquals( $latestRevision, $newRevision->getPrevious()->getId() );
}
/**
* @covers Revision::getNext
*/
public function testGetNext() {
- $page = $this->createPage(
- 'RevisionStorageTest_testGetNext',
- 'Lorem Ipsum testGetNext',
- CONTENT_MODEL_WIKITEXT
- );
- $rev1 = $page->getRevision();
+ $rev1 = $this->testPage->getRevision();
$this->assertNull( $rev1->getNext() );
- $page->doEditContent(
- ContentHandler::makeContent( 'Bla bla', $page->getTitle(), CONTENT_MODEL_WIKITEXT ),
- 'second rev testGetNext'
- );
- $rev2 = $page->getRevision();
+ $this->testPage->doEditContent( new WikitextContent( __METHOD__ ), __METHOD__ );
+ $rev2 = $this->testPage->getRevision();
$this->assertNotNull( $rev1->getNext() );
$this->assertEquals( $rev2->getId(), $rev1->getNext()->getId() );
* @covers Revision::newNullRevision
*/
public function testNewNullRevision() {
- $page = $this->createPage(
- 'RevisionStorageTest_testNewNullRevision',
- 'some testing text',
- CONTENT_MODEL_WIKITEXT
- );
- $orig = $page->getRevision();
+ $this->testPage->doEditContent( new WikitextContent( __METHOD__ ), __METHOD__ );
+ $orig = $this->testPage->getRevision();
$dbw = wfGetDB( DB_MASTER );
- $rev = Revision::newNullRevision( $dbw, $page->getId(), 'a null revision', false );
+ $rev = Revision::newNullRevision( $dbw, $this->testPage->getId(), 'a null revision', false );
$this->assertNotEquals( $orig->getId(), $rev->getId(),
- 'new null revision shold have a different id from the original revision' );
+ 'new null revision should have a different id from the original revision' );
$this->assertEquals( $orig->getTextId(), $rev->getTextId(),
- 'new null revision shold have the same text id as the original revision' );
- $this->assertEquals( 'some testing text', $rev->getContent()->getNativeData() );
+ 'new null revision should have the same text id as the original revision' );
+ $this->assertEquals( __METHOD__, $rev->getContent()->getNativeData() );
}
/**
public function testInsertOn() {
$ip = '2600:387:ed7:947e:8c16:a1ad:dd34:1dd7';
- $orig = $this->makeRevision( [
+ $orig = $this->makeRevisionWithProps( [
'user_text' => $ip
] );
*/
public function testGetContent_failure() {
$rev = new Revision( [
- 'page' => $this->the_page->getId(),
- 'content_model' => $this->the_page->getContentModel(),
+ 'page' => $this->testPage->getId(),
+ 'content_model' => $this->testPage->getContentModel(),
'text_id' => 123456789, // not in the test DB
] );