From c3fc1cb7ec91783a7953486c8a83aa8008dd5406 Mon Sep 17 00:00:00 2001 From: Jozef Selesi Date: Thu, 20 Nov 2008 01:25:29 +0000 Subject: * Added HTTP status constants and helper functions to REST helper. * HTTP header setting in comment module now going through REST helper API. * Fixed items controller test. * Fixed user installer test. * Fixed _create() handling in the REST controller. * Fixed routing for edit and add forms. * Added some tests for the REST controller. * Set svn:eol-style to LF on a bunch of files. * Added preamble to MY_Forge.php. --- core/tests/Item_Controller_Test.php | 43 ------------ core/tests/Items_Controller_Test.php | 43 ++++++++++++ core/tests/REST_Controller_Test.php | 128 +++++++++++++++++++++++++++++++++++ 3 files changed, 171 insertions(+), 43 deletions(-) delete mode 100644 core/tests/Item_Controller_Test.php create mode 100644 core/tests/Items_Controller_Test.php create mode 100644 core/tests/REST_Controller_Test.php (limited to 'core/tests') diff --git a/core/tests/Item_Controller_Test.php b/core/tests/Item_Controller_Test.php deleted file mode 100644 index 114664d1..00000000 --- a/core/tests/Item_Controller_Test.php +++ /dev/null @@ -1,43 +0,0 @@ -_post($album); - $this->assert_equal("new title", $album->title); - $this->assert_equal("new description", $album->description); - } - - public function change_item_test_with_return() { - $controller = new Item_Controller(); - $album = album::create(1, "test", "test"); - $_POST["title"] = "item_title"; - $_POST["description"] = "item_description"; - $_POST["__return"] = "item_description"; - - $tihs->assert_equal("item_description", $controller->_post($album)); - $this->assert_equal("item_title", $album->title); - $this->assert_equal("item_description", $album->description); - } -} diff --git a/core/tests/Items_Controller_Test.php b/core/tests/Items_Controller_Test.php new file mode 100644 index 00000000..784177b5 --- /dev/null +++ b/core/tests/Items_Controller_Test.php @@ -0,0 +1,43 @@ +_update($album); + $this->assert_equal("new title", $album->title); + $this->assert_equal("new description", $album->description); + } + + public function change_item_test_with_return() { + $controller = new Items_Controller(); + $album = album::create(1, "test", "test"); + $_POST["title"] = "item_title"; + $_POST["description"] = "item_description"; + $_POST["__return"] = "item_description"; + + $this->assert_equal("item_description", $controller->_post($album)); + $this->assert_equal("item_title", $album->title); + $this->assert_equal("item_description", $album->description); + } +} diff --git a/core/tests/REST_Controller_Test.php b/core/tests/REST_Controller_Test.php new file mode 100644 index 00000000..5478aa70 --- /dev/null +++ b/core/tests/REST_Controller_Test.php @@ -0,0 +1,128 @@ +__call("index", ""); + $this->assert_equal("index", $mock_controller->method_called); + + /* show() */ + $_SERVER["REQUEST_METHOD"] = "GET"; + $_POST["_method"] = ""; + $mock_controller->__call("3", ""); + $this->assert_equal("show", $mock_controller->method_called); + $this->assert_equal("Mock_Model", get_class($mock_controller->resource)); + + /* update() */ + $_SERVER["REQUEST_METHOD"] = "POST"; + $_POST["_method"] = "PUT"; + $mock_controller->__call("3", ""); + $this->assert_equal("update", $mock_controller->method_called); + $this->assert_equal("Mock_Model", get_class($mock_controller->resource)); + + /* delete */ + $_SERVER["REQUEST_METHOD"] = "POST"; + $_POST["_method"] = "DELETE"; + $mock_controller->__call("3", ""); + $this->assert_equal("delete", $mock_controller->method_called); + $this->assert_equal("Mock_Model", get_class($mock_controller->resource)); + + /* create */ + $_SERVER["REQUEST_METHOD"] = "POST"; + $_POST["_method"] = ""; + $mock_not_loaded_controller->__call("", ""); + $this->assert_equal("create", $mock_not_loaded_controller->method_called); + $this->assert_equal( + "Mock_Not_Loaded_Model", get_class($mock_not_loaded_controller->resource)); + + /* form_add */ + $mock_controller->form_add("args"); + $this->assert_equal("form_add", $mock_controller->method_called); + $this->assert_equal("args", $mock_controller->resource); + + /* form_edit */ + $mock_controller->form_edit("1"); + $this->assert_equal("form_edit", $mock_controller->method_called); + $this->assert_equal("Mock_Model", get_class($mock_controller->resource)); + } + + public function routes_test() { + $this->assert_equal("mock/form_add/args", router::routed_uri("form/add/mock/args")); + $this->assert_equal("mock/form_edit/args", router::routed_uri("form/edit/mock/args")); + $this->assert_equal(null, router::routed_uri("rest/args")); + } +} + +class Mock_RESTful_Controller extends REST_Controller { + public $method_called; + public $resource; + + public function __construct($type) { + $this->resource_type = $type; + parent::__construct(); + } + + public function _index() { + $this->method_called = "index"; + } + + public function _create($resource) { + $this->method_called = "create"; + $this->resource = $resource; + } + + public function _show($resource) { + $this->method_called = "show"; + $this->resource = $resource; + } + + public function _update($resource) { + $this->method_called = "update"; + $this->resource = $resource; + } + + public function _delete($resource) { + $this->method_called = "delete"; + $this->resource = $resource; + } + + public function _form_add($args) { + $this->method_called = "form_add"; + $this->resource = $args; + } + + public function _form_edit($resource) { + $this->method_called = "form_edit"; + $this->resource = $resource; + } +} + +class Mock_Model { + public $loaded = true; +} + +class Mock_Not_Loaded_Model { + public $loaded = false; +} -- cgit v1.2.3