Field rev_text_id will no longer be populated once the legacy schema is disabled, so joins against it will not work. Remove all usages of the 'text' flag in calls to both Revision::getQueryInfo() and RevisionStore::getQueryInfo() so that these joins are no longer attempted. Bug: T198342 Change-Id: I9be6a544c6f68555d4ea856f949f0040d05eac0f
64 lines
2.1 KiB
PHP
64 lines
2.1 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @group API
|
|
* @group Database
|
|
* @group medium
|
|
* @covers ApiQueryAllRevisions
|
|
*/
|
|
class ApiQueryAllRevisionsTest extends ApiTestCase {
|
|
|
|
public function __construct( $name = null, array $data = [], $dataName = '' ) {
|
|
parent::__construct( $name, $data, $dataName );
|
|
|
|
$this->tablesUsed[] = 'revision';
|
|
}
|
|
|
|
/**
|
|
* @group medium
|
|
*/
|
|
public function testContentComesWithContentModelAndFormat() {
|
|
$pageName = 'Help:' . __METHOD__;
|
|
$title = Title::newFromText( $pageName );
|
|
$page = WikiPage::factory( $title );
|
|
|
|
$page->doEditContent(
|
|
ContentHandler::makeContent( 'Some text', $page->getTitle() ),
|
|
'inserting content'
|
|
);
|
|
$page->doEditContent(
|
|
ContentHandler::makeContent( 'Some other text', $page->getTitle() ),
|
|
'adding revision'
|
|
);
|
|
|
|
$apiResult = $this->doApiRequest( [
|
|
'action' => 'query',
|
|
'list' => 'allrevisions',
|
|
'arvprop' => 'content',
|
|
'arvslots' => 'main',
|
|
'arvdir' => 'older',
|
|
] );
|
|
|
|
$this->assertArrayHasKey( 'query', $apiResult[0] );
|
|
$this->assertArrayHasKey( 'allrevisions', $apiResult[0]['query'] );
|
|
$this->assertArrayHasKey( 0, $apiResult[0]['query']['allrevisions'] );
|
|
$this->assertArrayHasKey( 'title', $apiResult[0]['query']['allrevisions'][0] );
|
|
$this->assertSame( $pageName, $apiResult[0]['query']['allrevisions'][0]['title'] );
|
|
$this->assertArrayHasKey( 'revisions', $apiResult[0]['query']['allrevisions'][0] );
|
|
$this->assertCount( 2, $apiResult[0]['query']['allrevisions'][0]['revisions'] );
|
|
|
|
foreach ( $apiResult[0]['query']['allrevisions'] as $page ) {
|
|
$this->assertArrayHasKey( 'revisions', $page );
|
|
foreach ( $page['revisions'] as $revision ) {
|
|
$this->assertArrayHasKey( 'slots', $revision );
|
|
$this->assertArrayHasKey( 'main', $revision['slots'] );
|
|
$this->assertArrayHasKey( 'contentformat', $revision['slots']['main'],
|
|
'contentformat should be included when asking content so client knows how to interpret it'
|
|
);
|
|
$this->assertArrayHasKey( 'contentmodel', $revision['slots']['main'],
|
|
'contentmodel should be included when asking content so client knows how to interpret it'
|
|
);
|
|
}
|
|
}
|
|
}
|
|
}
|