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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
<?php
namespace OAuth2\Storage;
class ClientTest extends BaseTest
{
/** @dataProvider provideStorage */
public function testGetClientDetails(ClientInterface $storage)
{
if ($storage instanceof NullStorage) {
$this->markTestSkipped('Skipped Storage: ' . $storage->getMessage());
return;
}
// nonexistant client_id
$details = $storage->getClientDetails('fakeclient');
$this->assertFalse($details);
// valid client_id
$details = $storage->getClientDetails('oauth_test_client');
$this->assertNotNull($details);
$this->assertArrayHasKey('client_id', $details);
$this->assertArrayHasKey('client_secret', $details);
$this->assertArrayHasKey('redirect_uri', $details);
}
/** @dataProvider provideStorage */
public function testCheckRestrictedGrantType(ClientInterface $storage)
{
if ($storage instanceof NullStorage) {
$this->markTestSkipped('Skipped Storage: ' . $storage->getMessage());
return;
}
// Check invalid
$pass = $storage->checkRestrictedGrantType('oauth_test_client', 'authorization_code');
$this->assertFalse($pass);
// Check valid
$pass = $storage->checkRestrictedGrantType('oauth_test_client', 'implicit');
$this->assertTrue($pass);
}
/** @dataProvider provideStorage */
public function testGetAccessToken(ClientInterface $storage)
{
if ($storage instanceof NullStorage) {
$this->markTestSkipped('Skipped Storage: ' . $storage->getMessage());
return;
}
// nonexistant client_id
$details = $storage->getAccessToken('faketoken');
$this->assertFalse($details);
// valid client_id
$details = $storage->getAccessToken('testtoken');
$this->assertNotNull($details);
}
/** @dataProvider provideStorage */
public function testIsPublicClient(ClientInterface $storage)
{
if ($storage instanceof NullStorage) {
$this->markTestSkipped('Skipped Storage: ' . $storage->getMessage());
return;
}
$publicClientId = 'public-client-'.rand();
$confidentialClientId = 'confidential-client-'.rand();
// create a new client
$success1 = $storage->setClientDetails($publicClientId, '');
$success2 = $storage->setClientDetails($confidentialClientId, 'some-secret');
$this->assertTrue($success1);
$this->assertTrue($success2);
// assert isPublicClient for both
$this->assertTrue($storage->isPublicClient($publicClientId));
$this->assertFalse($storage->isPublicClient($confidentialClientId));
}
/** @dataProvider provideStorage */
public function testSaveClient(ClientInterface $storage)
{
if ($storage instanceof NullStorage) {
$this->markTestSkipped('Skipped Storage: ' . $storage->getMessage());
return;
}
$clientId = 'some-client-'.rand();
// create a new client
$success = $storage->setClientDetails($clientId, 'somesecret', 'http://test.com', 'client_credentials', 'clientscope1', 'brent@brentertainment.com');
$this->assertTrue($success);
// valid client_id
$details = $storage->getClientDetails($clientId);
$this->assertEquals($details['client_secret'], 'somesecret');
$this->assertEquals($details['redirect_uri'], 'http://test.com');
$this->assertEquals($details['grant_types'], 'client_credentials');
$this->assertEquals($details['scope'], 'clientscope1');
$this->assertEquals($details['user_id'], 'brent@brentertainment.com');
}
}
|