wiki.techinc.nl/tests/phpunit/includes/Revision/NoContentModelRevisionStoreDbTest.php
Aaron Schulz cb15755e92 Normalize use of "INNER JOIN" to "JOIN" in database queries
The ANSI SQL default join type is INNER and this might save
some line breaks here and there.

Change-Id: Ibd39976f46ca3f9b71190d3b60b76ca085787a00
2019-03-06 09:17:30 -08:00

191 lines
3.9 KiB
PHP

<?php
namespace MediaWiki\Tests\Revision;
use Revision;
/**
* Tests RevisionStore against the pre-MCR, pre-ContentHandler DB schema.
*
* @covers \MediaWiki\Revision\RevisionStore
*
* @group RevisionStore
* @group Storage
* @group Database
* @group medium
*/
class NoContentModelRevisionStoreDbTest extends RevisionStoreDbTestBase {
use PreMcrSchemaOverride;
protected function getContentHandlerUseDB() {
return false;
}
protected function revisionToRow( Revision $rev, $options = [ 'page', 'user', 'comment' ] ) {
$row = parent::revisionToRow( $rev, $options );
$row->rev_text_id = (string)$rev->getTextId();
return $row;
}
public function provideGetArchiveQueryInfo() {
yield [
[
'tables' => [ 'archive' ],
'fields' => array_merge(
$this->getDefaultArchiveFields(),
[
'ar_comment_text' => 'ar_comment',
'ar_comment_data' => 'NULL',
'ar_comment_cid' => 'NULL',
'ar_user_text' => 'ar_user_text',
'ar_user' => 'ar_user',
'ar_actor' => 'NULL',
]
),
'joins' => [],
]
];
}
public function provideGetQueryInfo() {
yield [
[],
[
'tables' => [ 'revision' ],
'fields' => array_merge(
$this->getDefaultQueryFields(),
$this->getCommentQueryFields(),
$this->getActorQueryFields()
),
'joins' => [],
]
];
yield [
[ 'page' ],
[
'tables' => [ 'revision', 'page' ],
'fields' => array_merge(
$this->getDefaultQueryFields(),
$this->getCommentQueryFields(),
$this->getActorQueryFields(),
[
'page_namespace',
'page_title',
'page_id',
'page_latest',
'page_is_redirect',
'page_len',
]
),
'joins' => [
'page' => [ 'JOIN', [ 'page_id = rev_page' ] ],
],
]
];
yield [
[ 'user' ],
[
'tables' => [ 'revision', 'user' ],
'fields' => array_merge(
$this->getDefaultQueryFields(),
$this->getCommentQueryFields(),
$this->getActorQueryFields(),
[
'user_name',
]
),
'joins' => [
'user' => [ 'LEFT JOIN', [ 'rev_user != 0', 'user_id = rev_user' ] ],
],
]
];
yield [
[ 'text' ],
[
'tables' => [ 'revision', 'text' ],
'fields' => array_merge(
$this->getDefaultQueryFields(),
$this->getCommentQueryFields(),
$this->getActorQueryFields(),
[
'old_text',
'old_flags',
]
),
'joins' => [
'text' => [ 'JOIN', [ 'rev_text_id=old_id' ] ],
],
]
];
}
public function provideGetSlotsQueryInfo() {
$db = wfGetDB( DB_REPLICA );
yield [
[],
[
'tables' => [
'slots' => 'revision',
],
'fields' => array_merge(
[
'slot_revision_id' => 'slots.rev_id',
'slot_content_id' => 'NULL',
'slot_origin' => 'slots.rev_id',
'role_name' => $db->addQuotes( SlotRecord::MAIN ),
]
),
'joins' => [],
]
];
yield [
[ 'content' ],
[
'tables' => [
'slots' => 'revision',
],
'fields' => array_merge(
[
'slot_revision_id' => 'slots.rev_id',
'slot_content_id' => 'NULL',
'slot_origin' => 'slots.rev_id',
'role_name' => $db->addQuotes( SlotRecord::MAIN ),
'content_size' => 'slots.rev_len',
'content_sha1' => 'slots.rev_sha1',
'content_address' =>
$db->buildConcat( [ $db->addQuotes( 'tt:' ), 'slots.rev_text_id' ] ),
'model_name' => 'NULL',
]
),
'joins' => [],
]
];
}
public function provideNewMutableRevisionFromArray() {
foreach ( parent::provideNewMutableRevisionFromArray() as $case ) {
yield $case;
}
yield 'Basic array, with page & id' => [
[
'id' => 2,
'page' => 1,
'text_id' => 2,
'timestamp' => '20171017114835',
'user_text' => '111.0.1.2',
'user' => 0,
'minor_edit' => false,
'deleted' => 0,
'len' => 46,
'parent_id' => 1,
'sha1' => 'rdqbbzs3pkhihgbs8qf2q9jsvheag5z',
'comment' => 'Goat Comment!',
]
];
}
}