MediaWiki
master
|
00001 <?php 00002 00007 class ApiQueryTest extends ApiTestCase { 00008 00009 protected function setUp() { 00010 parent::setUp(); 00011 $this->doLogin(); 00012 } 00013 00014 function testTitlesGetNormalized() { 00015 00016 global $wgMetaNamespace; 00017 00018 $data = $this->doApiRequest( array( 00019 'action' => 'query', 00020 'titles' => 'Project:articleA|article_B' ) ); 00021 00022 00023 $this->assertArrayHasKey( 'query', $data[0] ); 00024 $this->assertArrayHasKey( 'normalized', $data[0]['query'] ); 00025 00026 // Forge a normalized title 00027 $to = Title::newFromText( $wgMetaNamespace.':ArticleA' ); 00028 00029 $this->assertEquals( 00030 array( 00031 'from' => 'Project:articleA', 00032 'to' => $to->getPrefixedText(), 00033 ), 00034 $data[0]['query']['normalized'][0] 00035 ); 00036 00037 $this->assertEquals( 00038 array( 00039 'from' => 'article_B', 00040 'to' => 'Article B' 00041 ), 00042 $data[0]['query']['normalized'][1] 00043 ); 00044 00045 } 00046 00047 function testTitlesAreRejectedIfInvalid() { 00048 $title = false; 00049 while( !$title || Title::newFromText( $title )->exists() ) { 00050 $title = md5( mt_rand( 0, 10000 ) + rand( 0, 999000 ) ); 00051 } 00052 00053 $data = $this->doApiRequest( array( 00054 'action' => 'query', 00055 'titles' => $title . '|Talk:' ) ); 00056 00057 $this->assertArrayHasKey( 'query', $data[0] ); 00058 $this->assertArrayHasKey( 'pages', $data[0]['query'] ); 00059 $this->assertEquals( 2, count( $data[0]['query']['pages'] ) ); 00060 00061 $this->assertArrayHasKey( -2, $data[0]['query']['pages'] ); 00062 $this->assertArrayHasKey( -1, $data[0]['query']['pages'] ); 00063 00064 $this->assertArrayHasKey( 'missing', $data[0]['query']['pages'][-2] ); 00065 $this->assertArrayHasKey( 'invalid', $data[0]['query']['pages'][-1] ); 00066 } 00067 00068 }