tablesUsed[] = 'revision'; } /** * @group medium */ public function testContentComesWithContentModelAndFormat() { $pageName = 'Help:' . __METHOD__; $title = Title::newFromText( $pageName ); $page = WikiPage::factory( $title ); $page->doUserEditContent( ContentHandler::makeContent( 'Some text', $page->getTitle() ), $this->getTestSysop()->getUser(), 'inserting content' ); $page->doUserEditContent( ContentHandler::makeContent( 'Some other text', $page->getTitle() ), $this->getTestSysop()->getUser(), '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' ); } } } }