MediaWiki  master
ApiQueryTest.php
Go to the documentation of this file.
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 }