API: Migrate Title::userCan() calls to PermissionManager
[lhc/web/wiklou.git] / tests / phpunit / includes / api / query / ApiQueryRevisionsTest.php
1 <?php
2
3 /**
4 * @group API
5 * @group Database
6 * @group medium
7 * @covers ApiQueryRevisions
8 */
9 class ApiQueryRevisionsTest extends ApiTestCase {
10
11 /**
12 * @group medium
13 */
14 public function testContentComesWithContentModelAndFormat() {
15 $pageName = 'Help:' . __METHOD__;
16 $title = Title::newFromText( $pageName );
17 $page = WikiPage::factory( $title );
18
19 $page->doEditContent(
20 ContentHandler::makeContent( 'Some text', $page->getTitle() ),
21 'inserting content'
22 );
23
24 $apiResult = $this->doApiRequest( [
25 'action' => 'query',
26 'prop' => 'revisions',
27 'titles' => $pageName,
28 'rvprop' => 'content',
29 'rvslots' => 'main',
30 ] );
31 $this->assertArrayHasKey( 'query', $apiResult[0] );
32 $this->assertArrayHasKey( 'pages', $apiResult[0]['query'] );
33 foreach ( $apiResult[0]['query']['pages'] as $page ) {
34 $this->assertArrayHasKey( 'revisions', $page );
35 foreach ( $page['revisions'] as $revision ) {
36 $this->assertArrayHasKey( 'slots', $revision );
37 $this->assertArrayHasKey( 'main', $revision['slots'] );
38 $this->assertArrayHasKey( 'contentformat', $revision['slots']['main'],
39 'contentformat should be included when asking content so client knows how to interpret it'
40 );
41 $this->assertArrayHasKey( 'contentmodel', $revision['slots']['main'],
42 'contentmodel should be included when asking content so client knows how to interpret it'
43 );
44 }
45 }
46 }
47 }