<?php
use MediaWiki\MediaWikiServices;
-use MediaWiki\Storage\MutableRevisionRecord;
-use MediaWiki\Storage\RevisionStore;
-use MediaWiki\Storage\IncompleteRevisionException;
-use MediaWiki\Storage\RevisionRecord;
-use MediaWiki\Storage\SlotRecord;
+use MediaWiki\Revision\MutableRevisionRecord;
+use MediaWiki\Revision\RevisionStore;
+use MediaWiki\Revision\IncompleteRevisionException;
+use MediaWiki\Revision\RevisionRecord;
+use MediaWiki\Revision\SlotRecord;
/**
* RevisionDbTestBase contains test cases for the Revision class that have Database interactions.
'wgMultiContentRevisionSchemaMigrationStage' => $this->getMcrMigrationStage(),
'wgContentHandlerUseDB' => $this->getContentHandlerUseDB(),
'wgCommentTableSchemaMigrationStage' => MIGRATION_OLD,
- 'wgActorTableSchemaMigrationStage' => MIGRATION_OLD,
+ 'wgActorTableSchemaMigrationStage' => SCHEMA_COMPAT_OLD,
] );
$this->overrideMwServices();
// getTextId() must be an int!
$this->assertInternalType( 'integer', $rev->getTextId() );
- $mainSlot = $rev->getRevisionRecord()->getSlot( 'main', RevisionRecord::RAW );
+ $mainSlot = $rev->getRevisionRecord()->getSlot( SlotRecord::MAIN, RevisionRecord::RAW );
// we currently only support storage in the text table
$textId = MediaWikiServices::getInstance()
'slot_content_id' => 1,
'content_address' => 'tt:789',
'model_name' => CONTENT_MODEL_WIKITEXT,
- 'role_name' => 'main',
+ 'role_name' => SlotRecord::MAIN,
'slot_origin' => 1,
], new WikitextContent( 'Test' ) );
$this->assertSame( $expected, $rev->getTextId() );
}
+ public function provideGetRevisionText() {
+ yield [
+ [ 'text' ]
+ ];
+ }
+
+ /**
+ * @dataProvider provideGetRevisionText
+ * @covers Revision::getRevisionText
+ */
+ public function testGetRevisionText( array $queryInfoOptions, array $queryInfoExtra = [] ) {
+ $rev = $this->testPage->getRevisionRecord();
+
+ $queryInfo = Revision::getQueryInfo( $queryInfoOptions );
+ $queryInfo['tables'] = array_merge( $queryInfo['tables'], $queryInfoExtra['tables'] ?? [] );
+ $queryInfo['fields'] = array_merge( $queryInfo['fields'], $queryInfoExtra['fields'] ?? [] );
+ $queryInfo['joins'] = array_merge( $queryInfo['joins'], $queryInfoExtra['joins'] ?? [] );
+
+ $conds = [ 'rev_id' => $rev->getId() ];
+ $row = $this->db->selectRow(
+ $queryInfo['tables'],
+ $queryInfo['fields'],
+ $conds,
+ __METHOD__,
+ [],
+ $queryInfo['joins']
+ );
+
+ $expected = $rev->getContent( SlotRecord::MAIN )->serialize();
+
+ $this->hideDeprecated( 'Revision::getRevisionText (MCR without SCHEMA_COMPAT_WRITE_OLD)' );
+ $this->assertSame( $expected, Revision::getRevisionText( $row ) );
+ }
+
}