7 * @covers ApiQueryAllRevisions
9 class ApiQueryAllRevisionsTest
extends ApiTestCase
{
11 public function __construct( $name = null, array $data = [], $dataName = '' ) {
12 parent
::__construct( $name, $data, $dataName );
14 $this->tablesUsed
[] = 'revision';
20 public function testContentComesWithContentModelAndFormat() {
21 $pageName = 'Help:' . __METHOD__
;
22 $title = Title
::newFromText( $pageName );
23 $page = WikiPage
::factory( $title );
26 ContentHandler
::makeContent( 'Some text', $page->getTitle() ),
30 ContentHandler
::makeContent( 'Some other text', $page->getTitle() ),
34 $apiResult = $this->doApiRequest( [
36 'list' => 'allrevisions',
37 'arvprop' => 'content',
42 $this->assertArrayHasKey( 'query', $apiResult[0] );
43 $this->assertArrayHasKey( 'allrevisions', $apiResult[0]['query'] );
44 $this->assertArrayHasKey( 0, $apiResult[0]['query']['allrevisions'] );
45 $this->assertArrayHasKey( 'title', $apiResult[0]['query']['allrevisions'][0] );
46 $this->assertSame( $pageName, $apiResult[0]['query']['allrevisions'][0]['title'] );
47 $this->assertArrayHasKey( 'revisions', $apiResult[0]['query']['allrevisions'][0] );
48 $this->assertCount( 2, $apiResult[0]['query']['allrevisions'][0]['revisions'] );
50 foreach ( $apiResult[0]['query']['allrevisions'] as $page ) {
51 $this->assertArrayHasKey( 'revisions', $page );
52 foreach ( $page['revisions'] as $revision ) {
53 $this->assertArrayHasKey( 'slots', $revision );
54 $this->assertArrayHasKey( 'main', $revision['slots'] );
55 $this->assertArrayHasKey( 'contentformat', $revision['slots']['main'],
56 'contentformat should be included when asking content so client knows how to interpret it'
58 $this->assertArrayHasKey( 'contentmodel', $revision['slots']['main'],
59 'contentmodel should be included when asking content so client knows how to interpret it'