diff options
| author | Brent Shaffer <bshafs@gmail.com> | 2012-12-20 20:09:08 +0400 |
|---|---|---|
| committer | Brent Shaffer <bshafs@gmail.com> | 2012-12-20 20:09:08 +0400 |
| commit | 8cb2360d9d76db082f6db9fbaccf05d1e2dcbb5b (patch) | |
| tree | 5fbe976d7e3a50539a81fc96533579aaefec3677 /test | |
| parent | 5e4d75e3b155c449ebe1d4a734568780d3e57d69 (diff) | |
| parent | 81ceb467b9b6745574a9ece4b3b2bbebf1e7c9b9 (diff) | |
| download | oauth2-server-php-0.2.tar.xz | |
Merge branch 'develop'v0.2
Diffstat (limited to 'test')
| -rw-r--r-- | test/OAuth2/GrantType/AuthorizationCodeTest.php | 6 | ||||
| -rw-r--r-- | test/OAuth2/GrantType/ClientCredentialsTest.php | 3 | ||||
| -rw-r--r-- | test/OAuth2/GrantType/RefreshTokenTest.php | 31 | ||||
| -rw-r--r-- | test/OAuth2/RequestTest.php | 43 | ||||
| -rw-r--r-- | test/OAuth2/Server/Access/BasicValidationTest.php | 2 | ||||
| -rw-r--r-- | test/OAuth2/Server/Authorize/BasicValidationTest.php | 2 | ||||
| -rw-r--r-- | test/OAuth2/Server/Grant/BasicValidationTest.php | 2 | ||||
| -rw-r--r-- | test/bootstrap.php | 2 | ||||
| -rw-r--r-- | test/lib/OAuth2/Request/TestRequest.php | 46 | ||||
| -rw-r--r-- | test/lib/OAuth2/Storage/Bootstrap.php (renamed from test/OAuth2/Storage/Bootstrap.php) | 7 |
10 files changed, 130 insertions, 14 deletions
diff --git a/test/OAuth2/GrantType/AuthorizationCodeTest.php b/test/OAuth2/GrantType/AuthorizationCodeTest.php index 012a7ae..b4af1d5 100644 --- a/test/OAuth2/GrantType/AuthorizationCodeTest.php +++ b/test/OAuth2/GrantType/AuthorizationCodeTest.php @@ -9,8 +9,7 @@ class OAuth2_GrantType_AuthorizationCodeTest extends PHPUnit_Framework_TestCase $request->query['grant_type'] = 'authorization_code'; // valid grant type $request->query['client_id'] = 'Test Client ID'; // valid client id $request->query['client_secret'] = 'TestSecret'; // valid client secret - $server->grantAccessToken($request); - $response = $server->getResponse(); + $response = $server->handleGrantRequest($request); $this->assertEquals($response->getStatusCode(), 400); $this->assertEquals($response->getParameter('error'), 'invalid_request'); @@ -25,8 +24,7 @@ class OAuth2_GrantType_AuthorizationCodeTest extends PHPUnit_Framework_TestCase $request->query['client_id'] = 'Test Client ID'; // valid client id $request->query['client_secret'] = 'TestSecret'; // valid client secret $request->query['code'] = 'InvalidCode'; // invalid authorization code - $ret = $server->grantAccessToken($request); - $response = $server->getResponse(); + $response = $server->handleGrantRequest($request); $this->assertEquals($response->getStatusCode(), 400); $this->assertEquals($response->getParameter('error'), 'invalid_grant'); diff --git a/test/OAuth2/GrantType/ClientCredentialsTest.php b/test/OAuth2/GrantType/ClientCredentialsTest.php index a6591cd..f6934f8 100644 --- a/test/OAuth2/GrantType/ClientCredentialsTest.php +++ b/test/OAuth2/GrantType/ClientCredentialsTest.php @@ -9,8 +9,7 @@ class OAuth2_GrantType_ClientCredentialsTest extends PHPUnit_Framework_TestCase $request->query['grant_type'] = 'client_credentials'; // valid grant type $request->query['client_id'] = 'Test Client ID'; // valid client id $request->query['client_secret'] = 'FakeSecret'; // valid client secret - $server->grantAccessToken($request); - $response = $server->getResponse(); + $response = $server->handleGrantRequest($request); $this->assertEquals($response->getStatusCode(), 400); $this->assertEquals($response->getParameter('error'), 'invalid_client'); diff --git a/test/OAuth2/GrantType/RefreshTokenTest.php b/test/OAuth2/GrantType/RefreshTokenTest.php index b5d1539..7c23ca7 100644 --- a/test/OAuth2/GrantType/RefreshTokenTest.php +++ b/test/OAuth2/GrantType/RefreshTokenTest.php @@ -7,6 +7,8 @@ class OAuth2_GrantType_RefreshTokenTest extends PHPUnit_Framework_TestCase public function testNoRefreshToken() { $server = $this->getTestServer(); + $server->addGrantType(new OAuth2_GrantType_RefreshToken($this->storage)); + $request = OAuth2_Request::createFromGlobals(); $request->query['grant_type'] = 'refresh_token'; // valid grant type $request->query['client_id'] = 'Test Client ID'; // valid client id @@ -22,6 +24,8 @@ class OAuth2_GrantType_RefreshTokenTest extends PHPUnit_Framework_TestCase public function testInvalidRefreshToken() { $server = $this->getTestServer(); + $server->addGrantType(new OAuth2_GrantType_RefreshToken($this->storage)); + $request = OAuth2_Request::createFromGlobals(); $request->query['grant_type'] = 'refresh_token'; // valid grant type $request->query['client_id'] = 'Test Client ID'; // valid client id @@ -35,28 +39,49 @@ class OAuth2_GrantType_RefreshTokenTest extends PHPUnit_Framework_TestCase $this->assertEquals($response->getParameter('error_description'), 'Invalid refresh token'); } - public function testValidRefreshToken() + public function testValidRefreshTokenWithNewRefreshTokenInResponse() { $server = $this->getTestServer(); + $server->addGrantType(new OAuth2_GrantType_RefreshToken($this->storage, array('always_issue_new_refresh_token' => true))); + $request = OAuth2_Request::createFromGlobals(); $request->query['grant_type'] = 'refresh_token'; // valid grant type $request->query['client_id'] = 'Test Client ID'; // valid client id $request->query['client_secret'] = 'TestSecret'; // valid client secret $request->query['refresh_token'] = 'test-refreshtoken'; // valid client secret $token = $server->grantAccessToken($request); - $this->assertTrue(isset($token['refresh_token'])); + $this->assertTrue(isset($token['refresh_token']), 'refresh token should always refresh'); $refresh_token = $this->storage->getRefreshToken($token['refresh_token']); $this->assertNotNull($refresh_token); $this->assertEquals($refresh_token['refresh_token'], $token['refresh_token']); $this->assertEquals($refresh_token['client_id'], $request->query('client_id')); + $this->assertTrue($token['refresh_token'] != 'test-refreshtoken', 'the refresh token returned is not the one used'); + $used_token = $this->storage->getRefreshToken('test-refreshtoken'); + $this->assertNull($used_token, 'the refresh token used is no longer valid'); + } + + public function testValidRefreshTokenWithNoRefreshTokenInResponse() + { + $server = $this->getTestServer(); + $server->addGrantType(new OAuth2_GrantType_RefreshToken($this->storage, array('always_issue_new_refresh_token' => false))); + + $request = OAuth2_Request::createFromGlobals(); + $request->query['grant_type'] = 'refresh_token'; // valid grant type + $request->query['client_id'] = 'Test Client ID'; // valid client id + $request->query['client_secret'] = 'TestSecret'; // valid client secret + $request->query['refresh_token'] = 'test-refreshtoken'; // valid client secret + $token = $server->grantAccessToken($request); + $this->assertFalse(isset($token['refresh_token']), 'refresh token should not be returned'); + + $used_token = $this->storage->getRefreshToken('test-refreshtoken'); + $this->assertNotNull($used_token, 'the refresh token used is still valid'); } private function getTestServer() { $this->storage = new OAuth2_Storage_Memory(json_decode(file_get_contents(dirname(__FILE__).'/../../config/storage.json'), true)); $server = new OAuth2_Server($this->storage); - $server->addGrantType(new OAuth2_GrantType_RefreshToken($this->storage)); return $server; } diff --git a/test/OAuth2/RequestTest.php b/test/OAuth2/RequestTest.php new file mode 100644 index 0000000..a362c2f --- /dev/null +++ b/test/OAuth2/RequestTest.php @@ -0,0 +1,43 @@ +<?php + +class OAuth2_RequestTest extends PHPUnit_Framework_TestCase +{ + public function testRequestOverride() + { + $request = new OAuth2_Request_TestRequest(); + $server = $this->getTestServer(); + + // Smoke test for override request class + // $response = $server->handleGrantRequest($request); + // $this->assertInstanceOf('OAuth2_Response', $response); + // $response = $server->handleAuthorizeRequest($request, true); + // $this->assertInstanceOf('OAuth2_Response', $response); + // $response = $server->verifyAccessRequest($request); + // $this->assertTrue(is_bool($response)); + + /*** make some valid requests ***/ + + // Valid Grant Request + $request->setQuery(array( + 'grant_type' => 'authorization_code', + 'client_id' => 'Test Client ID', + 'client_secret' => 'TestSecret', + 'code' => 'testcode', + )); + $response = $server->handleGrantRequest($request); + $this->assertEquals($response->getStatusCode(), 200); + $this->assertNull($response->getParameter('error')); + $this->assertNotNUll($response->getParameter('access_token')); + } + + private function getTestServer($config = array()) + { + $storage = OAuth2_Storage_Bootstrap::getInstance()->getMemoryStorage(); + $server = new OAuth2_Server($storage, $config); + + // Add the two types supported for authorization grant + $server->addGrantType(new OAuth2_GrantType_AuthorizationCode($storage)); + + return $server; + } +}
\ No newline at end of file diff --git a/test/OAuth2/Server/Access/BasicValidationTest.php b/test/OAuth2/Server/Access/BasicValidationTest.php index 12f73ed..9060c27 100644 --- a/test/OAuth2/Server/Access/BasicValidationTest.php +++ b/test/OAuth2/Server/Access/BasicValidationTest.php @@ -153,7 +153,7 @@ class OAuth2_Server_Access_BasicValidationTest extends PHPUnit_Framework_TestCas private function getTestServer($config = array()) { - $storage = new OAuth2_Storage_Memory(json_decode(file_get_contents(dirname(__FILE__).'/../../../config/storage.json'), true)); + $storage = OAuth2_Storage_Bootstrap::getInstance()->getMemoryStorage(); $server = new OAuth2_Server($storage, $config); // Add the two types supported for authorization grant diff --git a/test/OAuth2/Server/Authorize/BasicValidationTest.php b/test/OAuth2/Server/Authorize/BasicValidationTest.php index c14484d..acaeb92 100644 --- a/test/OAuth2/Server/Authorize/BasicValidationTest.php +++ b/test/OAuth2/Server/Authorize/BasicValidationTest.php @@ -106,7 +106,7 @@ class OAuth2_Server_Authorize_BasicValidationTest extends PHPUnit_Framework_Test private function getTestServer($config = array()) { - $storage = new OAuth2_Storage_Memory(json_decode(file_get_contents(dirname(__FILE__).'/../../../config/storage.json'), true)); + $storage = OAuth2_Storage_Bootstrap::getInstance()->getMemoryStorage(); $server = new OAuth2_Server($storage, $config); // Add the two types supported for authorization grant diff --git a/test/OAuth2/Server/Grant/BasicValidationTest.php b/test/OAuth2/Server/Grant/BasicValidationTest.php index 986a346..c834f04 100644 --- a/test/OAuth2/Server/Grant/BasicValidationTest.php +++ b/test/OAuth2/Server/Grant/BasicValidationTest.php @@ -98,7 +98,7 @@ class OAuth2_Server_Grant_BasicValidationTest extends PHPUnit_Framework_TestCase private function getTestServer() { - $storage = new OAuth2_Storage_Memory(json_decode(file_get_contents(dirname(__FILE__).'/../../../config/storage.json'), true)); + $storage = OAuth2_Storage_Bootstrap::getInstance()->getMemoryStorage(); $server = new OAuth2_Server($storage); $server->addGrantType(new OAuth2_GrantType_AuthorizationCode($storage)); // or some other grant type. This is the simplest diff --git a/test/bootstrap.php b/test/bootstrap.php index e8a13ba..02bcc90 100644 --- a/test/bootstrap.php +++ b/test/bootstrap.php @@ -4,4 +4,4 @@ require_once(dirname(__FILE__).'/../src/OAuth2/Autoloader.php'); OAuth2_Autoloader::register(); // register test classes -OAuth2_Autoloader::register(dirname(__FILE__));
\ No newline at end of file +OAuth2_Autoloader::register(dirname(__FILE__).'/lib');
\ No newline at end of file diff --git a/test/lib/OAuth2/Request/TestRequest.php b/test/lib/OAuth2/Request/TestRequest.php new file mode 100644 index 0000000..623d139 --- /dev/null +++ b/test/lib/OAuth2/Request/TestRequest.php @@ -0,0 +1,46 @@ +<?php + +/** +* +*/ +class OAuth2_Request_TestRequest implements OAuth2_RequestInterface +{ + private $query, $post, $server; + + public function __construct() + { + $this->query = $_GET; + $this->post = $_POST; + $this->server = $_SERVER; + } + + public function query($name, $default = null) + { + return isset($this->query[$name]) ? $this->query[$name] : $default; + } + + public function request($name, $default = null) + { + return isset($this->post[$name]) ? $this->post[$name] : $default; + } + + public function server($name, $default = null) + { + return isset($this->server[$name]) ? $this->server[$name] : $default; + } + + public function headers($name, $default = null) + { + return $default; + } + + public function getAllQueryParameters() + { + return $this->query; + } + + public function setQuery(array $query) + { + $this->query = $query; + } +}
\ No newline at end of file diff --git a/test/OAuth2/Storage/Bootstrap.php b/test/lib/OAuth2/Storage/Bootstrap.php index dcb6ad7..4a214b3 100644 --- a/test/OAuth2/Storage/Bootstrap.php +++ b/test/lib/OAuth2/Storage/Bootstrap.php @@ -27,6 +27,11 @@ class OAuth2_Storage_Bootstrap return $this->sqlite; } + public function getMemoryStorage() + { + return new OAuth2_Storage_Memory(json_decode(file_get_contents(dirname(__FILE__).'/../../../config/storage.json'), true)); + } + public function getMysqlPdo() { if (!$this->mysql) { @@ -84,6 +89,6 @@ class OAuth2_Storage_Bootstrap private function getSqliteDir() { - return dirname(__FILE__).'/../../config/test.sqlite'; + return dirname(__FILE__).'/../../../config/test.sqlite'; } }
\ No newline at end of file |
