-
Notifications
You must be signed in to change notification settings - Fork 9
/
ReceiveCodeTest.php
106 lines (86 loc) · 2.54 KB
/
ReceiveCodeTest.php
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
<?php
namespace ChadicusTest\Slim\OAuth2\Routes;
use Chadicus\Slim\OAuth2\Routes\ReceiveCode;
/**
* Unit tests for the \Chadicus\Slim\OAuth2\Routes\ReceiveCode class.
*
* @coversDefaultClass \Chadicus\Slim\OAuth2\Routes\ReceiveCode
* @covers ::<private>
* @covers ::__construct
*/
final class ReceiveCodeTest extends \PHPUnit_Framework_TestCase
{
/**
* Verify basic behavior of __invoke()
*
* @test
* @covers ::__invoke
*
* @return void
*/
public function invoke()
{
$storage = new \OAuth2\Storage\Memory(
[
'client_credentials' => [
'testClientId' => [
'client_id' => 'testClientId',
'client_secret' => 'testClientSecret',
'redirect_uri' => '/receive-code',
],
],
]
);
$server = new \OAuth2\Server(
$storage,
[
'access_lifetime' => 3600,
],
[
new \OAuth2\GrantType\ClientCredentials($storage),
]
);
$code = md5(time());
\Slim\Environment::mock(
[
'REQUEST_METHOD' => 'POST',
'CONTENT_TYPE' => 'application/json',
'PATH_INFO' => '/receive-code',
'QUERY_STRING' => "code={$code}&state=xyz",
]
);
$slim = new \Slim\Slim();
$slim->post('/receive-code', new ReceiveCode($slim));
ob_start();
$slim->run();
ob_get_clean();
$this->assertSame(200, $slim->response->status());
$expected = <<<HTML
<h2>The authorization code is {$code}</h2>
HTML;
$this->assertSame($expected, $slim->response->getBody());
}
/**
* Verify basic behavior of register
*
* @test
* @covers ::register
*
* @return void
*/
public function register()
{
$storage = new \OAuth2\Storage\Memory([]);
$server = new \OAuth2\Server($storage, [], []);
\Slim\Environment::mock();
$slim = new \Slim\Slim();
ReceiveCode::register($slim);
$route = $slim->router()->getNamedRoute('receive-code');
$this->assertInstanceOf('\Slim\Route', $route);
$this->assertInstanceOf('\Chadicus\Slim\OAuth2\Routes\ReceiveCode', $route->getCallable());
$this->assertSame(
[\Slim\Http\Request::METHOD_GET, \Slim\Http\Request::METHOD_POST],
$route->getHttpMethods()
);
}
}