summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorBrent Shaffer <bshafs@gmail.com>2012-12-20 20:09:08 +0400
committerBrent Shaffer <bshafs@gmail.com>2012-12-20 20:09:08 +0400
commit8cb2360d9d76db082f6db9fbaccf05d1e2dcbb5b (patch)
tree5fbe976d7e3a50539a81fc96533579aaefec3677 /test
parent5e4d75e3b155c449ebe1d4a734568780d3e57d69 (diff)
parent81ceb467b9b6745574a9ece4b3b2bbebf1e7c9b9 (diff)
downloadoauth2-server-php-0.2.tar.xz
Merge branch 'develop'v0.2
Diffstat (limited to 'test')
-rw-r--r--test/OAuth2/GrantType/AuthorizationCodeTest.php6
-rw-r--r--test/OAuth2/GrantType/ClientCredentialsTest.php3
-rw-r--r--test/OAuth2/GrantType/RefreshTokenTest.php31
-rw-r--r--test/OAuth2/RequestTest.php43
-rw-r--r--test/OAuth2/Server/Access/BasicValidationTest.php2
-rw-r--r--test/OAuth2/Server/Authorize/BasicValidationTest.php2
-rw-r--r--test/OAuth2/Server/Grant/BasicValidationTest.php2
-rw-r--r--test/bootstrap.php2
-rw-r--r--test/lib/OAuth2/Request/TestRequest.php46
-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