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
|
<?php
/**
* @group API
* @group medium
* @covers ApiQueryTokens
*/
class ApiQueryTokensTest extends ApiTestCase {
public function testGetCsrfToken() {
$params = [
'action' => 'query',
'meta' => 'tokens',
'type' => 'csrf',
];
$user = $this->getTestUser()->getUser();
$apiResult = $this->doApiRequest( $params, null, false, $user );
$this->assertArrayHasKey( 'query', $apiResult[0] );
$this->assertArrayHasKey( 'tokens', $apiResult[0]['query'] );
$this->assertArrayHasKey( 'csrftoken', $apiResult[0]['query']['tokens'] );
$this->assertStringEndsWith( '+\\', $apiResult[0]['query']['tokens']['csrftoken'] );
}
public function testGetAllTokens() {
$params = [
'action' => 'query',
'meta' => 'tokens',
'type' => '*',
];
$user = $this->getTestUser()->getUser();
$apiResult = $this->doApiRequest( $params, null, false, $user );
$this->assertArrayHasKey( 'query', $apiResult[0] );
$this->assertArrayHasKey( 'tokens', $apiResult[0]['query'] );
// MW core has 7 token types (createaccount, csrf, login, patrol, rollback, userrights, watch)
$this->assertGreaterThanOrEqual( 7, count( $apiResult[0]['query']['tokens'] ) );
}
}
|