From 0ea7f29e400fcfe8021e94b1d85d5a5a05d60d51 Mon Sep 17 00:00:00 2001 From: cash Date: Mon, 14 Dec 2009 12:39:53 +0000 Subject: fixed line endings on services api unit tests git-svn-id: http://code.elgg.org/elgg/trunk@3754 36083f99-b078-4883-b0ff-0f9b5a30f544 --- engine/tests/services/api.php | 654 +++++++++++++++++++++--------------------- 1 file changed, 327 insertions(+), 327 deletions(-) (limited to 'engine/tests/services') diff --git a/engine/tests/services/api.php b/engine/tests/services/api.php index b9dfda8f5..216c888ab 100644 --- a/engine/tests/services/api.php +++ b/engine/tests/services/api.php @@ -1,327 +1,327 @@ -swallowErrors(); - $API_METHODS = array(); - } - -// expose_function - public function testExposeFunctionNoMethod() { - try { - expose_function(); - $this->assertTrue(FALSE); - } catch (Exception $e) { - $this->assertIsA($e, 'InvalidParameterException'); - $this->assertIdentical($e->getMessage(), elgg_echo('InvalidParameterException:APIMethodOrFunctionNotSet')); - } - } - - public function testExposeFunctionNoFunction() { - try { - expose_function('test'); - $this->assertTrue(FALSE); - } catch (Exception $e) { - $this->assertIsA($e, 'InvalidParameterException'); - $this->assertIdentical($e->getMessage(), elgg_echo('InvalidParameterException:APIMethodOrFunctionNotSet')); - } - } - - public function testExposeFunctionBadParameters() { - try { - expose_function('test', 'test', 'BAD'); - $this->assertTrue(FALSE); - } catch (Exception $e) { - $this->assertIsA($e, 'InvalidParameterException'); - $this->assertIdentical($e->getMessage(), sprintf(elgg_echo('InvalidParameterException:APIParametersArrayStructure'), 'test')); - } - } - - public function testExposeFunctionParametersBadArray() { - try { - expose_function('test', 'test', array('param1' => 'string')); - $this->assertTrue(FALSE); - } catch (Exception $e) { - $this->assertIsA($e, 'InvalidParameterException'); - $this->assertIdentical($e->getMessage(), sprintf(elgg_echo('InvalidParameterException:APIParametersArrayStructure'), 'test')); - } - } - - public function testExposeFunctionBadHttpMethod() { - try { - expose_function('test', 'test', null, '', 'BAD'); - $this->assertTrue(FALSE); - } catch (Exception $e) { - $this->assertIsA($e, 'InvalidParameterException'); - $this->assertIdentical($e->getMessage(), sprintf(elgg_echo('InvalidParameterException:UnrecognisedHttpMethod'), 'BAD', 'test')); - } - } - - public function testExposeFunctionSuccess() { - global $API_METHODS; - // this is a general test but also tests specifically for setting 'required' correctly - $parameters = array('param1' => array('type' => 'int', 'required' => true), - 'param2' => array('type' => 'bool'), - 'param3' => array('type' => 'string', 'required' => false), ); - - $this->assertTrue(expose_function('test', 'foo', $parameters)); - - $parameters = array('param1' => array('type' => 'int', 'required' => true), - 'param2' => array('type' => 'bool', 'required' => true), - 'param3' => array('type' => 'string', 'required' => false), ); - $method['description'] = ''; - $method['function'] = 'foo'; - $method['parameters'] = $parameters; - $method['call_method'] = 'GET'; - $method['require_api_auth'] = false; - $method['require_user_auth'] = false; - - $this->assertIdentical($method, $API_METHODS['test']); - } - -// unexpose_function - public function testUnexposeFunction() { - global $API_METHODS; - - $this->registerFunction(); - - unexpose_function('test'); - $this->assertIdentical(array(), $API_METHODS); - } - -// authenticate_method - public function testAuthenticateMethodNotImplemented() { - try { - authenticate_method('BAD'); - $this->assertTrue(FALSE); - } catch (Exception $e) { - $this->assertIsA($e, 'APIException'); - $this->assertIdentical($e->getMessage(), sprintf(elgg_echo('APIException:MethodCallNotImplemented'), 'BAD')); - } - } - - public function testAuthenticateMethodApiAuth() { - $this->registerFunction(true); - try { - authenticate_method('test'); - $this->assertTrue(FALSE); - } catch (Exception $e) { - $this->assertIsA($e, 'APIException'); - $this->assertIdentical($e->getMessage(), elgg_echo('APIException:APIAuthenticationFailed')); - } - } - - public function testAuthenticateMethodUserAuth() { - $this->registerFunction(false, true); - try { - authenticate_method('test'); - $this->assertTrue(FALSE); - } catch (Exception $e) { - $this->assertIsA($e, 'APIException'); - $this->assertIdentical($e->getMessage(), elgg_echo('APIException:UserAuthenticationFailed')); - } - } - - public function testAuthenticateMethod() { - $this->registerFunction(false, false); - // anonymous with no user authentication - $this->assertTrue(authenticate_method('test')); - } - -// execute_method - public function testExecuteMethodNotImplemented() { - try { - execute_method('BAD'); - $this->assertTrue(FALSE); - } catch (Exception $e) { - $this->assertIsA($e, 'APIException'); - $this->assertIdentical($e->getMessage(), sprintf(elgg_echo('APIException:MethodCallNotImplemented'), 'BAD')); - } - } - - public function testExecuteMethodNonCallable() { - expose_function('test', 'foo'); - - try { - execute_method('test'); - $this->assertTrue(FALSE); - } catch (Exception $e) { - $this->assertIsA($e, 'APIException'); - $this->assertIdentical($e->getMessage(), sprintf(elgg_echo('APIException:FunctionDoesNotExist'), 'test')); - } - } - - public function testExecuteMethodWrongMethod() { - $this->registerFunction(); - - try { - // GET when it should be a POST - execute_method('test'); - $this->assertTrue(FALSE); - } catch (Exception $e) { - $this->assertIsA($e, 'CallException'); - $this->assertIdentical($e->getMessage(), sprintf(elgg_echo('CallException:InvalidCallMethod'), 'test', 'POST')); - } - } - -// verify parameters - public function testVerifyParametersTypeNotSet() { - $params = array('param1' => array('required' => true)); - expose_function('test', 'elgg_echo', $params); - - try { - verify_parameters('test', array()); - $this->assertTrue(FALSE); - } catch (Exception $e) { - $this->assertIsA($e, 'APIException'); - $this->assertIdentical($e->getMessage(), sprintf(elgg_echo('APIException:InvalidParameter'), 'param1', 'test')); - } - } - - public function testVerifyParametersMissing() { - $params = array('param1' => array('type' => 'int', 'required' => true)); - expose_function('test', 'elgg_echo', $params); - - try { - verify_parameters('test', array()); - $this->assertTrue(FALSE); - } catch (Exception $e) { - $this->assertIsA($e, 'APIException'); - $this->assertIdentical($e->getMessage(), sprintf(elgg_echo('APIException:MissingParameterInMethod'), 'param1', 'test')); - } - } - - public function testVerifyParameters() { - $this->registerFunction(); - - $parameters = array('param1' => 0); - $this->assertTrue(verify_parameters('test', $parameters)); - } - - public function testSerialiseParameters() { - - // int and bool - $this->registerFunction(); - $parameters = array('param1' => 1, 'param2' => 0); - $s = serialise_parameters('test', $parameters); - $this->assertIdentical($s, ',1,false'); - - // string - $this->registerFunction(false, false, array('param1' => array('type' => 'string'))); - $parameters = array('param1' => 'testing'); - $s = serialise_parameters('test', $parameters); - $this->assertIdentical($s, ",'testing'"); - - // test string with " in it - $this->registerFunction(false, false, array('param1' => array('type' => 'string'))); - $parameters = array('param1' => 'test"ing'); - $s = serialise_parameters('test', $parameters); - $this->assertIdentical($s, ',\'test"ing\''); - - // test string with ' in it - $this->registerFunction(false, false, array('param1' => array('type' => 'string'))); - $parameters = array('param1' => 'test\'ing'); - $s = serialise_parameters('test', $parameters); - $this->assertIdentical($s, ",'test\'ing'"); - - // test string with \ in it - $this->registerFunction(false, false, array('param1' => array('type' => 'string'))); - $parameters = array('param1' => 'test\ing'); - $s = serialise_parameters('test', $parameters); - $this->assertIdentical($s, ",'test\\ing'"); - - // test string with \' in it - $this->registerFunction(false, false, array('param1' => array('type' => 'string'))); - $parameters = array('param1' => "test\'ing"); - $s = serialise_parameters('test', $parameters); - $this->assertIdentical($s, ",'test\\\\'ing'"); // test\\'ing - - // test string reported by twall in #1364 - $this->registerFunction(false, false, array('param1' => array('type' => 'string'))); - $parameters = array('param1' => '{"html":"
Blah Blah
"}'); - $s = serialise_parameters('test', $parameters); - $this->assertIdentical($s, ",'{\"html\":\"
Blah Blah
\"}'"); - - // float - $this->registerFunction(false, false, array('param1' => array('type' => 'float'))); - $parameters = array('param1' => 2.5); - $s = serialise_parameters('test', $parameters); - $this->assertIdentical($s, ',2.5'); - - // indexed array of strings - $this->registerFunction(false, false, array('param1' => array('type' => 'array'))); - $parameters = array('param1' => array('one', 'two')); - $s = serialise_parameters('test', $parameters); - $this->assertIdentical($s, ",array('0'=>'one','1'=>'two')"); - - // associative array of strings - $this->registerFunction(false, false, array('param1' => array('type' => 'array'))); - $parameters = array('param1' => array('first' => 'one', 'second' => 'two')); - $s = serialise_parameters('test', $parameters); - $this->assertIdentical($s, ",array('first'=>'one','second'=>'two')"); - - // indexed array of strings - $this->registerFunction(false, false, array('param1' => array('type' => 'array'))); - $parameters = array('param1' => array(1, 2)); - $s = serialise_parameters('test', $parameters); - $this->assertIdentical($s, ",array('0'=>'1','1'=>'2')"); - - // test unknown type - $this->registerFunction(false, false, array('param1' => array('type' => 'bad'))); - $parameters = array('param1' => 'test'); - $this->expectException('APIException'); - $s = serialise_parameters('test', $parameters); - } - -// api key methods - public function testApiAuthenticate() { - $this->assertFalse(pam_authenticate(null, "api")); - } - - public function testApiAuthKeyNoKey() { - try { - api_auth_key(); - $this->assertTrue(FALSE); - } catch (Exception $e) { - $this->assertIsA($e, 'APIException'); - $this->assertIdentical($e->getMessage(), elgg_echo('APIException:MissingAPIKey')); - } - } - - public function testApiAuthKeyBadKey() { - global $CONFIG; - - $CONFIG->input['api_key'] = 'BAD'; - try { - api_auth_key(); - $this->assertTrue(FALSE); - } catch (Exception $e) { - $this->assertIsA($e, 'APIException'); - $this->assertIdentical($e->getMessage(), elgg_echo('APIException:BadAPIKey')); - } - } - - protected function registerFunction($api_auth = false, $user_auth = false, $params = null) { - $parameters = array('param1' => array('type' => 'int', 'required' => true), - 'param2' => array('type' => 'bool', 'required' => false), ); - - if ($params == null) { - $params = $parameters; - } - - expose_function('test', 'elgg_echo', $params, '', 'POST', $api_auth, $user_auth); - } - -} +swallowErrors(); + $API_METHODS = array(); + } + +// expose_function + public function testExposeFunctionNoMethod() { + try { + expose_function(); + $this->assertTrue(FALSE); + } catch (Exception $e) { + $this->assertIsA($e, 'InvalidParameterException'); + $this->assertIdentical($e->getMessage(), elgg_echo('InvalidParameterException:APIMethodOrFunctionNotSet')); + } + } + + public function testExposeFunctionNoFunction() { + try { + expose_function('test'); + $this->assertTrue(FALSE); + } catch (Exception $e) { + $this->assertIsA($e, 'InvalidParameterException'); + $this->assertIdentical($e->getMessage(), elgg_echo('InvalidParameterException:APIMethodOrFunctionNotSet')); + } + } + + public function testExposeFunctionBadParameters() { + try { + expose_function('test', 'test', 'BAD'); + $this->assertTrue(FALSE); + } catch (Exception $e) { + $this->assertIsA($e, 'InvalidParameterException'); + $this->assertIdentical($e->getMessage(), sprintf(elgg_echo('InvalidParameterException:APIParametersArrayStructure'), 'test')); + } + } + + public function testExposeFunctionParametersBadArray() { + try { + expose_function('test', 'test', array('param1' => 'string')); + $this->assertTrue(FALSE); + } catch (Exception $e) { + $this->assertIsA($e, 'InvalidParameterException'); + $this->assertIdentical($e->getMessage(), sprintf(elgg_echo('InvalidParameterException:APIParametersArrayStructure'), 'test')); + } + } + + public function testExposeFunctionBadHttpMethod() { + try { + expose_function('test', 'test', null, '', 'BAD'); + $this->assertTrue(FALSE); + } catch (Exception $e) { + $this->assertIsA($e, 'InvalidParameterException'); + $this->assertIdentical($e->getMessage(), sprintf(elgg_echo('InvalidParameterException:UnrecognisedHttpMethod'), 'BAD', 'test')); + } + } + + public function testExposeFunctionSuccess() { + global $API_METHODS; + // this is a general test but also tests specifically for setting 'required' correctly + $parameters = array('param1' => array('type' => 'int', 'required' => true), + 'param2' => array('type' => 'bool'), + 'param3' => array('type' => 'string', 'required' => false), ); + + $this->assertTrue(expose_function('test', 'foo', $parameters)); + + $parameters = array('param1' => array('type' => 'int', 'required' => true), + 'param2' => array('type' => 'bool', 'required' => true), + 'param3' => array('type' => 'string', 'required' => false), ); + $method['description'] = ''; + $method['function'] = 'foo'; + $method['parameters'] = $parameters; + $method['call_method'] = 'GET'; + $method['require_api_auth'] = false; + $method['require_user_auth'] = false; + + $this->assertIdentical($method, $API_METHODS['test']); + } + +// unexpose_function + public function testUnexposeFunction() { + global $API_METHODS; + + $this->registerFunction(); + + unexpose_function('test'); + $this->assertIdentical(array(), $API_METHODS); + } + +// authenticate_method + public function testAuthenticateMethodNotImplemented() { + try { + authenticate_method('BAD'); + $this->assertTrue(FALSE); + } catch (Exception $e) { + $this->assertIsA($e, 'APIException'); + $this->assertIdentical($e->getMessage(), sprintf(elgg_echo('APIException:MethodCallNotImplemented'), 'BAD')); + } + } + + public function testAuthenticateMethodApiAuth() { + $this->registerFunction(true); + try { + authenticate_method('test'); + $this->assertTrue(FALSE); + } catch (Exception $e) { + $this->assertIsA($e, 'APIException'); + $this->assertIdentical($e->getMessage(), elgg_echo('APIException:APIAuthenticationFailed')); + } + } + + public function testAuthenticateMethodUserAuth() { + $this->registerFunction(false, true); + try { + authenticate_method('test'); + $this->assertTrue(FALSE); + } catch (Exception $e) { + $this->assertIsA($e, 'APIException'); + $this->assertIdentical($e->getMessage(), elgg_echo('APIException:UserAuthenticationFailed')); + } + } + + public function testAuthenticateMethod() { + $this->registerFunction(false, false); + // anonymous with no user authentication + $this->assertTrue(authenticate_method('test')); + } + +// execute_method + public function testExecuteMethodNotImplemented() { + try { + execute_method('BAD'); + $this->assertTrue(FALSE); + } catch (Exception $e) { + $this->assertIsA($e, 'APIException'); + $this->assertIdentical($e->getMessage(), sprintf(elgg_echo('APIException:MethodCallNotImplemented'), 'BAD')); + } + } + + public function testExecuteMethodNonCallable() { + expose_function('test', 'foo'); + + try { + execute_method('test'); + $this->assertTrue(FALSE); + } catch (Exception $e) { + $this->assertIsA($e, 'APIException'); + $this->assertIdentical($e->getMessage(), sprintf(elgg_echo('APIException:FunctionDoesNotExist'), 'test')); + } + } + + public function testExecuteMethodWrongMethod() { + $this->registerFunction(); + + try { + // GET when it should be a POST + execute_method('test'); + $this->assertTrue(FALSE); + } catch (Exception $e) { + $this->assertIsA($e, 'CallException'); + $this->assertIdentical($e->getMessage(), sprintf(elgg_echo('CallException:InvalidCallMethod'), 'test', 'POST')); + } + } + +// verify parameters + public function testVerifyParametersTypeNotSet() { + $params = array('param1' => array('required' => true)); + expose_function('test', 'elgg_echo', $params); + + try { + verify_parameters('test', array()); + $this->assertTrue(FALSE); + } catch (Exception $e) { + $this->assertIsA($e, 'APIException'); + $this->assertIdentical($e->getMessage(), sprintf(elgg_echo('APIException:InvalidParameter'), 'param1', 'test')); + } + } + + public function testVerifyParametersMissing() { + $params = array('param1' => array('type' => 'int', 'required' => true)); + expose_function('test', 'elgg_echo', $params); + + try { + verify_parameters('test', array()); + $this->assertTrue(FALSE); + } catch (Exception $e) { + $this->assertIsA($e, 'APIException'); + $this->assertIdentical($e->getMessage(), sprintf(elgg_echo('APIException:MissingParameterInMethod'), 'param1', 'test')); + } + } + + public function testVerifyParameters() { + $this->registerFunction(); + + $parameters = array('param1' => 0); + $this->assertTrue(verify_parameters('test', $parameters)); + } + + public function testSerialiseParameters() { + + // int and bool + $this->registerFunction(); + $parameters = array('param1' => 1, 'param2' => 0); + $s = serialise_parameters('test', $parameters); + $this->assertIdentical($s, ',1,false'); + + // string + $this->registerFunction(false, false, array('param1' => array('type' => 'string'))); + $parameters = array('param1' => 'testing'); + $s = serialise_parameters('test', $parameters); + $this->assertIdentical($s, ",'testing'"); + + // test string with " in it + $this->registerFunction(false, false, array('param1' => array('type' => 'string'))); + $parameters = array('param1' => 'test"ing'); + $s = serialise_parameters('test', $parameters); + $this->assertIdentical($s, ',\'test"ing\''); + + // test string with ' in it + $this->registerFunction(false, false, array('param1' => array('type' => 'string'))); + $parameters = array('param1' => 'test\'ing'); + $s = serialise_parameters('test', $parameters); + $this->assertIdentical($s, ",'test\'ing'"); + + // test string with \ in it + $this->registerFunction(false, false, array('param1' => array('type' => 'string'))); + $parameters = array('param1' => 'test\ing'); + $s = serialise_parameters('test', $parameters); + $this->assertIdentical($s, ",'test\\ing'"); + + // test string with \' in it + $this->registerFunction(false, false, array('param1' => array('type' => 'string'))); + $parameters = array('param1' => "test\'ing"); + $s = serialise_parameters('test', $parameters); + $this->assertIdentical($s, ",'test\\\\'ing'"); // test\\'ing + + // test string reported by twall in #1364 + $this->registerFunction(false, false, array('param1' => array('type' => 'string'))); + $parameters = array('param1' => '{"html":"
Blah Blah
"}'); + $s = serialise_parameters('test', $parameters); + $this->assertIdentical($s, ",'{\"html\":\"
Blah Blah
\"}'"); + + // float + $this->registerFunction(false, false, array('param1' => array('type' => 'float'))); + $parameters = array('param1' => 2.5); + $s = serialise_parameters('test', $parameters); + $this->assertIdentical($s, ',2.5'); + + // indexed array of strings + $this->registerFunction(false, false, array('param1' => array('type' => 'array'))); + $parameters = array('param1' => array('one', 'two')); + $s = serialise_parameters('test', $parameters); + $this->assertIdentical($s, ",array('0'=>'one','1'=>'two')"); + + // associative array of strings + $this->registerFunction(false, false, array('param1' => array('type' => 'array'))); + $parameters = array('param1' => array('first' => 'one', 'second' => 'two')); + $s = serialise_parameters('test', $parameters); + $this->assertIdentical($s, ",array('first'=>'one','second'=>'two')"); + + // indexed array of strings + $this->registerFunction(false, false, array('param1' => array('type' => 'array'))); + $parameters = array('param1' => array(1, 2)); + $s = serialise_parameters('test', $parameters); + $this->assertIdentical($s, ",array('0'=>'1','1'=>'2')"); + + // test unknown type + $this->registerFunction(false, false, array('param1' => array('type' => 'bad'))); + $parameters = array('param1' => 'test'); + $this->expectException('APIException'); + $s = serialise_parameters('test', $parameters); + } + +// api key methods + public function testApiAuthenticate() { + $this->assertFalse(pam_authenticate(null, "api")); + } + + public function testApiAuthKeyNoKey() { + try { + api_auth_key(); + $this->assertTrue(FALSE); + } catch (Exception $e) { + $this->assertIsA($e, 'APIException'); + $this->assertIdentical($e->getMessage(), elgg_echo('APIException:MissingAPIKey')); + } + } + + public function testApiAuthKeyBadKey() { + global $CONFIG; + + $CONFIG->input['api_key'] = 'BAD'; + try { + api_auth_key(); + $this->assertTrue(FALSE); + } catch (Exception $e) { + $this->assertIsA($e, 'APIException'); + $this->assertIdentical($e->getMessage(), elgg_echo('APIException:BadAPIKey')); + } + } + + protected function registerFunction($api_auth = false, $user_auth = false, $params = null) { + $parameters = array('param1' => array('type' => 'int', 'required' => true), + 'param2' => array('type' => 'bool', 'required' => false), ); + + if ($params == null) { + $params = $parameters; + } + + expose_function('test', 'elgg_echo', $params, '', 'POST', $api_auth, $user_auth); + } + +} -- cgit v1.2.3