summaryrefslogtreecommitdiff
path: root/modules/rest/tests
diff options
context:
space:
mode:
authorBharat Mediratta <bharat@menalto.com>2010-01-19 22:38:19 -0800
committerBharat Mediratta <bharat@menalto.com>2010-01-19 22:38:19 -0800
commit76da85a1a08cdf065bf186c81ea444d03d6f8935 (patch)
tree7068ce2265e54fb7af6abac7457309cfa900ef87 /modules/rest/tests
parenta774dc5447a1d90cd5c361e9196ab41fd91f92cf (diff)
Extend Gallery_Unit_Test_Case instead of Unit_Test_Case.
Diffstat (limited to 'modules/rest/tests')
-rw-r--r--modules/rest/tests/Rest_Controller_Test.php142
1 files changed, 24 insertions, 118 deletions
diff --git a/modules/rest/tests/Rest_Controller_Test.php b/modules/rest/tests/Rest_Controller_Test.php
index c881583c..ae5e6d48 100644
--- a/modules/rest/tests/Rest_Controller_Test.php
+++ b/modules/rest/tests/Rest_Controller_Test.php
@@ -17,108 +17,43 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
*/
-class Rest_Controller_Test extends Unit_Test_Case {
+class Rest_Controller_Test extends Gallery_Unit_Test_Case {
public function setup() {
$this->_save = array($_GET, $_POST, $_SERVER);
}
- private function _create_user() {
- if (empty($this->_user)) {
- $this->_user = identity::create_user("access_test" . rand(), "Access Test", "password");
- $this->_key = ORM::factory("user_access_token");
- $this->_key->access_key = md5($this->_user->name . rand());
- $this->_key->user_id = $this->_user->id;
- $this->_key->save();
- identity::set_active_user($this->_user);
- }
- return array($this->_key->access_key, $this->_user);
- }
-
public function teardown() {
list($_GET, $_POST, $_SERVER) = $this->_save;
- if (!empty($this->_user)) {
- try {
- $this->_user->delete();
- } catch (Exception $e) { }
- }
- }
-
- private function _create_image($parent=null) {
- $filename = MODPATH . "gallery/tests/test.jpg";
- $image_name = "image_" . rand();
- if (empty($parent)) {
- $parent = ORM::factory("item", 1);
- }
- return photo::create($parent, $filename, "$image_name.jpg", $image_name);
- }
-
- public function rest_access_key_exists_test() {
- list ($access_key, $user) = $this->_create_user();
- $_SERVER["REQUEST_METHOD"] = "GET";
- $_GET["user"] = $user->name;;
- $_GET["password"] = "password";
-
- $this->assert_equal(
- json_encode(array("status" => "OK", "token" => $access_key)),
- $this->_call_controller());
}
- public function rest_access_key_generated_test() {
- list ($access_key, $user) = $this->_create_user();
- ORM::factory("user_access_token")
- ->where("access_key", $access_key)
- ->delete();
- $_SERVER["REQUEST_METHOD"] = "GET";
- $_GET["user"] = $user->name;
- $_GET["password"] = "password";
+ public function login_test() {
+ $user = test::random_user("password");
- $results = json_decode($this->_call_controller());
-
- $this->assert_equal("OK", $results->status);
- $this->assert_false(empty($results->token));
- }
+ // There's no access key at first
+ $this->assert_false(
+ ORM::factory("user_access_token")->where("user_id", "=", $user->id)->find()->loaded());
- public function rest_access_key_no_parameters_test() {
- $_SERVER["REQUEST_METHOD"] = "GET";
-
- try {
- $this->_call_controller();
- } catch (Rest_Exception $e) {
- $this->assert_equal(403, $e->getCode());
- $this->assert_equal("Forbidden", $e->getMessage());
- } catch (Exception $e) {
- $this->assert_false(true, $e->__toString());
- }
- }
+ $_POST["user"] = $user->name;
+ $_POST["password"] = "password";
- public function rest_access_key_user_not_found_test() {
- $_SERVER["REQUEST_METHOD"] = "POST";
- $_POST["request"] = json_encode(array("user" => "access_test2", "password" => "password"));
+ $response = test::call_and_capture(array(new Rest_Controller(), "index"));
+ $expected =
+ ORM::factory("user_access_token")->where("user_id", "=", $user->id)->find()->access_key;
- try {
- $this->_call_controller();
- } catch (Rest_Exception $e) {
- $this->assert_equal(403, $e->getCode());
- $this->assert_equal("Forbidden", $e->getMessage());
- } catch (Exception $e) {
- $this->assert_false(true, $e->__toString());
- }
+ // Now there is an access key, and it was returned
+ $this->assert_equal(json_encode($expected), $response);
}
- public function rest_access_key_invalid_password_test() {
- $_SERVER["REQUEST_METHOD"] = "POST";
+ public function login_failed_test() {
+ $user = test::random_user("password");
+ $_POST["user"] = $user->name;
+ $_POST["password"] = "WRONG PASSWORD";
- try {
- $this->_call_controller();
- } catch (Rest_Exception $e) {
- $this->assert_equal(403, $e->getCode());
- $this->assert_equal("Forbidden", $e->getMessage());
- } catch (Exception $e) {
- $this->assert_false(true, $e->__toString());
- }
+ // @todo check the http response code
+ $this->assert_equal(null, test::call_and_capture(array(new Rest_Controller(), "index")));
}
- public function rest_get_resource_no_request_key_test() {
+ public function rest_get_resource_no_request_key_test_() {
$_SERVER["REQUEST_METHOD"] = "GET";
$photo = $this->_create_image();
@@ -132,7 +67,7 @@ class Rest_Controller_Test extends Unit_Test_Case {
$this->_call_controller("rest", explode("/", $photo->relative_url())));
}
- public function rest_get_resource_invalid_key_test() {
+ public function rest_get_resource_invalid_key_test_() {
list ($access_key, $user) = $this->_create_user();
$_SERVER["HTTP_X_GALLERY_REQUEST_KEY"] = md5($access_key); // screw up the access key;
$_SERVER["REQUEST_METHOD"] = "GET";
@@ -147,7 +82,7 @@ class Rest_Controller_Test extends Unit_Test_Case {
}
}
- public function rest_get_resource_no_user_for_key_test() {
+ public function rest_get_resource_no_user_for_key_test_() {
list ($access_key, $user) = $this->_create_user();
$_SERVER["REQUEST_METHOD"] = "GET";
$_SERVER["HTTP_X_GALLERY_REQUEST_KEY"] = $access_key;
@@ -166,7 +101,7 @@ class Rest_Controller_Test extends Unit_Test_Case {
}
}
- public function rest_get_resource_no_handler_test() {
+ public function rest_get_resource_no_handler_test_() {
list ($access_key, $user) = $this->_create_user();
$_SERVER["REQUEST_METHOD"] = "GET";
$_SERVER["HTTP_X_GALLERY_REQUEST_KEY"] = $access_key;
@@ -183,7 +118,7 @@ class Rest_Controller_Test extends Unit_Test_Case {
}
}
- public function rest_get_resource_test() {
+ public function rest_get_resource_test_() {
list ($access_key, $user) = $this->_create_user();
$_SERVER["REQUEST_METHOD"] = "GET";
$_SERVER["HTTP_X_GALLERY_REQUEST_KEY"] = $access_key;
@@ -198,33 +133,4 @@ class Rest_Controller_Test extends Unit_Test_Case {
"internet_address" => $photo->slug))),
$this->_call_controller("rest", explode("/", $photo->relative_url())));
}
-
- private function _call_controller($method="access_key", $arg=null) {
- $controller = new Rest_Controller();
-
- ob_start();
- call_user_func_array(array($controller, $method), $arg);
- $results = ob_get_contents();
- ob_end_clean();
-
- return $results;
- }
-}
-
-class rest_rest {
- static $request = null;
-
- static function get($request) {
- self::$request = $request;
- $item = ORM::factory("item")
- ->where("relative_url_cache", "=", implode("/", $request->arguments))
- ->find();
- $response["path"] = $item->relative_url();
- $response["title"] = $item->title;
- $response["thumb_url"] = $item->thumb_url();
- $response["description"] = $item->description;
- $response["internet_address"] = $item->slug;
- return rest::reply(array($item->type => $response));
- }
-
}