blob: 762daed0215cd21d1cc783d82124e50ebc837b1e (
plain)
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
73
74
|
<?php
namespace MediaWiki\CheckUser\Tests;
use FauxRequest;
use MediaWiki\CheckUser\TokenManager;
use MediaWiki\CheckUser\TokenQueryManager;
use MediaWikiIntegrationTestCase;
/**
* Test class for TokenQueryManager class
*
* @group CheckUser
*
* @covers \MediaWiki\CheckUser\TokenQueryManager
*/
class TokenQueryManagerTest extends MediaWikiIntegrationTestCase {
/**
* @return MockObject|TokenManager
*/
private function getMockTokenManager() {
return $this->getMockBuilder( TokenManager::class )
->disableOriginalConstructor()->getMock();
}
public function testUpdateToken() {
$tokenManager = $this->getMockTokenManager();
$tokenQueryManager = $this->getMockBuilder( TokenQueryManager::class )
->setConstructorArgs( [ $tokenManager ] )
->setMethods( [ 'getDataFromRequest' ] )
->getMock();
$tokenData = [ 'foo' => true, 'bar' => false, 'baz' => 'test' ];
$tokenQueryManager->method( 'getDataFromRequest' )->willReturn( $tokenData );
$tokenManager->expects( $this->once() )
->method( 'encode' )
->with( $this->anything(), [ 'bar' => true, 'baz' => 'test' ] );
$tokenQueryManager->updateToken( new FauxRequest(), [ 'foo' => null, 'bar' => true ] );
}
public function testGetDataFromRequest() {
$request = new FauxRequest( [ 'token' => 'token' ] );
$tokenManager = $this->getMockTokenManager();
$tokenManager->expects( $this->once() )->method( 'decode' )->with( $this->anything(), 'token' );
$tokenQueryManager = new TokenQueryManager( $tokenManager );
$tokenQueryManager->getDataFromRequest( $request );
}
public function testGetDataFromRequestWithNoToken() {
$request = new FauxRequest();
$tokenManager = $this->getMockTokenManager();
$tokenQueryManager = new TokenQueryManager( $tokenManager );
$data = $tokenQueryManager->getDataFromRequest( $request );
$this->assertSame( [], $data );
}
public function testGetDataFromRequestHandlesDecodeException() {
$tokenManager = $this->getMockTokenManager();
$tokenManager->method( 'decode' )->willThrowException( new \Exception() );
$tokenQueryManager = new TokenQueryManager( $tokenManager );
$request = new FauxRequest( [ 'token' => 'token' ] );
$data = $tokenQueryManager->getDataFromRequest( $request );
$this->assertSame( [], $data );
}
}
|