/** * We check some basic methods of the ApiController (as functional tests, not unit tests for now) * TODO: replace with unit tests maybe … * e.g. checkAccessAction, checkPermission … */ function testResponseTypes() { $invalidAccessToken = sha1(rand(0, 10000) . time()); $adminAccessToken = Config::inst()->get('AuthSession', 'adminAccessToken'); $expectJSON = false; $msgValidSession = "This data should only be seen if we have a valid session"; $res = ApiControllerTest::send_test('GET', 'auth/testIsValidSession', $data = null, $invalidAccessToken, $expectJSON); // $this->assertEquals($res['body'], "Action 'testIsValidSession' isn't allowed on class AuthController."); $this->assertEquals($res['statusCode'], 403); $res = ApiControllerTest::send_test('GET', 'auth/testIsValidSession', $data = null, $adminAccessToken); $this->assertEquals($res['data']['message'], $msgValidSession); $this->assertEquals($res['statusCode'], 200); $res = ApiControllerTest::send_test('GET', 'auth/testAPIPermission', $data = null, $invalidAccessToken, $expectJSON); // $this->assertEquals($res['body'], "Action 'testAPIPermission' isn't allowed on class AuthController."); $this->assertEquals($res['statusCode'], 403); $session = $this->objFromFixture('AuthSession', 'api'); $res = ApiControllerTest::send_test('GET', 'auth/testAPIPermission', $data = null, $session->Accesstoken()); $this->assertEquals($res['data']['message'], $msgValidSession); $this->assertEquals($res['statusCode'], 200); $res = ApiControllerTest::send_test('GET', 'auth/testADMINPermission', $data = null, $session->Accesstoken(), $expectJSON); $this->assertEquals($res['statusCode'], 403); $session = $this->objFromFixture('AuthSession', 'valid'); $res = ApiControllerTest::send_test('GET', 'auth/testADMINPermission', $data = null, $session->Accesstoken()); $this->assertEquals($res['data']['message'], $msgValidSession); $this->assertEquals($res['statusCode'], 200); $res = ApiControllerTest::send_test('GET', 'auth/testADMINPermission', $data = null, $adminAccessToken, $expectJSON); $this->assertEquals($res['data']['message'], $msgValidSession); $this->assertEquals($res['statusCode'], 200); $res = ApiControllerTest::send_test('GET', 'auth/testAPIPermission', $data = null, $session->Accesstoken()); $this->assertEquals($res['statusCode'], 200); $res = ApiControllerTest::send_test('GET', 'auth/testADMINPermission', $data = null, $adminAccessToken); $this->assertEquals($res['data']['message'], $msgValidSession); $this->assertEquals($res['statusCode'], 200); $res = ApiControllerTest::send_test('GET', 'auth/testPermissionFailure', $data = null, $adminAccessToken); $this->assertEquals($res['statusCode'], 401); $this->assertEquals($res['data']['error'], 'permission failure'); $res = ApiControllerTest::send_test('GET', 'auth/testSendError', $data = null, $adminAccessToken); $this->assertEquals($res['statusCode'], 500); $this->assertEquals($res['data']['error'], 'unspecified error'); $res = ApiControllerTest::send_test('PUT', 'auth/testSuccessfulPut', $data = null, $adminAccessToken); $this->assertEquals($res['statusCode'], 201); $this->assertEquals($res['data']['message'], 'resource updated successfully'); $res = ApiControllerTest::send_test('DELETE', 'auth/testSendSuccessfulDelete', $data = null, $adminAccessToken); $this->assertEquals($res['statusCode'], 202); $this->assertEquals($res['data']['message'], 'resource deleted successfully'); $res = ApiControllerTest::send_test('POST', 'auth/testSendSuccessfulPost', $data = null, $adminAccessToken); $this->assertEquals($res['statusCode'], 201); $this->assertEquals($res['data']['message'], 'resource created succesfully'); $res = ApiControllerTest::send_test('GET', 'auth/testSendNotFound', $data = null, $adminAccessToken); $this->assertEquals($res['statusCode'], 404); $this->assertEquals($res['data']['message'], 'resource not found'); $res = ApiControllerTest::send_test('GET', 'auth/testWrongMethodName', $data = null, $adminAccessToken, $expectJSON); $this->assertEquals($res['statusCode'], 404); $this->assertEquals($res['body'], "Action 'testWrongMethodName' isn't available on class AuthController."); $res = ApiControllerTest::send_test('GET', 'auth/testSendingEmptyData', $data = null, $adminAccessToken, $expectJSON); $this->assertEquals($res['statusCode'], 404); }
function testExpiredSession() { $session = $this->objFromFixture('AuthSession', 'expired'); $this->assertEquals(false, $session->IsValid()); $res = ApiControllerTest::send_test('GET', 'auth/session/', null, $session->Accesstoken()); $session = $this->objFromFixture('AuthSession', 'valid'); $this->assertEquals(true, $session->IsValid()); $res = ApiControllerTest::send_test('GET', 'auth/session/', null, $session->Accesstoken()); }
/** * This is not a test method, more a check to ensure that we work * with the `correct` parameters */ function testExpectedDefaultConfigValues() { ApiControllerTest::ensure_correct_config($this); }