1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
<?php
/**
* @group API
* @group Database
* @group medium
*
* @covers ApiMain
*/
class ApiMainTest extends ApiTestCase {
/**
* Test that the API will accept a FauxRequest and execute. The help action
* (default) throws a UsageException. Just validate we're getting proper XML
*
* @expectedException UsageException
*/
public function testApi() {
$api = new ApiMain(
new FauxRequest( array( 'action' => 'help', 'format' => 'xml' ) )
);
$api->execute();
$api->getPrinter()->setBufferResult( true );
$api->printResult( false );
$resp = $api->getPrinter()->getBuffer();
libxml_use_internal_errors( true );
$sxe = simplexml_load_string( $resp );
$this->assertNotInternalType( "bool", $sxe );
$this->assertThat( $sxe, $this->isInstanceOf( "SimpleXMLElement" ) );
}
public static function provideAssert() {
$anon = new User();
$bot = new User();
$bot->setName( 'Bot' );
$bot->addToDatabase();
$bot->addGroup( 'bot' );
$user = new User();
$user->setName( 'User' );
$user->addToDatabase();
return array(
array( $anon, 'user', 'assertuserfailed' ),
array( $user, 'user', false ),
array( $user, 'bot', 'assertbotfailed' ),
array( $bot, 'user', false ),
array( $bot, 'bot', false ),
);
}
/**
* Tests the assert={user|bot} functionality
*
* @covers ApiMain::checkAsserts
* @dataProvider provideAssert
* @param User $user
* @param string $assert
* @param string|bool $error False if no error expected
*/
public function testAssert( $user, $assert, $error ) {
try {
$this->doApiRequest( array(
'action' => 'query',
'assert' => $assert,
), null, null, $user );
$this->assertFalse( $error ); // That no error was expected
} catch ( UsageException $e ) {
$this->assertEquals( $e->getCodeString(), $error );
}
}
}
|