function test_router_find_route() { route("get", "/index", "my_index_func"); route("get", "/new", "my_new_func"); route("post", "/create", "my_create_func"); route("get", "/edit/:id", "my_edit_func"); route("put", "/update/:id", "my_update_func"); route("delete", "/delete/:id", "my_delete_func"); route("get", "^/list/(\\d+)", "my_list_func"); $routes = route("get", "/*.jpg/:size", "my_jpeg"); assert_length_of($routes, 8); $r = route_find("GET", "/unkown"); assert_false($r); $r = route_find("GET", "/delete"); assert_false($r); $r = route_find("POST", "/create"); assert_equal($r["function"], "my_create_func"); $r = route_find("GET", "/edit"); assert_equal($r["function"], "my_edit_func"); $r = route_find("GET", "/edit/120"); assert_equal($r["function"], "my_edit_func"); assert_equal($r["params"]["id"], 120); $r = route_find("GET", "/limonade.jpg/thumb", 'my_jpeg'); assert_equal($r["function"], "my_jpeg"); assert_equal($r["params"][0], "limonade"); assert_equal($r["params"]["size"], "thumb"); route("get", "/index/*", "my_index_func2"); $routes = route("delete", "/delete/:id/:confirm", "my_delete_func2"); assert_length_of($routes, 10); $r = route_find("GET", "/index"); assert_equal($r["function"], "my_index_func"); $r = route_find("GET", "/index/ok"); assert_equal($r["function"], "my_index_func2"); $r = route_find("DELETE", "/delete"); assert_equal($r["function"], "my_delete_func"); $r = route_find("DELETE", "/delete/120"); assert_equal($r["function"], "my_delete_func"); $r = route_find("DELETE", "/delete/120/ok"); assert_equal($r["function"], "my_delete_func2"); $r = route_find("GET", "/list/120"); assert_equal($r["function"], "my_list_func"); /* testing parameterized functions */ $extra_p = array(123, 'id' => 123, 'name' => 'abc'); route("get", "/no/cat/:id", "my_p_func"); route("get", "/with/cat/:id", "my_p_func", array('params' => $extra_p)); $routes = route("get", "/indexed/cat/*", "my_p_func", array('params' => $extra_p)); $r = route_find("GET", "/no/cat/21"); assert_equal($r["function"], "my_p_func"); assert_equal($r["params"]["id"], 21); $r = route_find("GET", "/with/cat/21"); assert_equal($r["function"], "my_p_func"); assert_equal($r["params"]["id"], 21); assert_equal($r["params"]["name"], "abc"); $r = route_find("GET", "/indexed/cat/21"); assert_equal($r["function"], "my_p_func"); assert_equal($r["params"][0], 21); assert_equal($r["params"]["id"], 123); assert_equal($r["params"]["name"], "abc"); /* testing route with special characters */ route("get", "/mañana/:when", "my_special_func"); $r = route_find("GET", "/mañana/123"); assert_equal($r["function"], "my_special_func"); assert_equal($r["params"]["when"], 123); $r = route_find("GET", "/mañana/après demain"); assert_equal($r["function"], "my_special_func"); assert_equal($r["params"]["when"], "après demain"); }
function test_main_require_once_dir() { $root = dirname(dirname(__FILE__)); ob_start(); assert_empty(require_once_dir($root)); $files = require_once_dir($root, "AUTHORS"); assert_empty(ob_get_contents()); ob_clean(); assert_length_of($files, 1); assert_match('/AUTHORS$/', $files[0]); ob_start(); $files = require_once_dir($root, "CHANGES", false); assert_not_empty(ob_get_contents()); ob_clean(); $lib = $root.'/lib'; // pb because it loads abstract.php that conflict with tests that use abstracts // $limonade = $lib.'/limonade'; // // $files = require_once_dir($limonade); // assert_not_empty($files); $tests_lib = $root.'/tests/data/lib0'; $libs = array('a', 'b', 'c'); foreach($libs as $lib) assert_false(defined('TEST_LIB_'.strtoupper($lib))); $files = require_once_dir($tests_lib); assert_not_empty($files); assert_length_of($files, 3); foreach($libs as $lib) assert_true(defined('TEST_LIB_'.strtoupper($lib))); assert_empty(require_once_dir($root.'/tests/data/')); assert_true(is_array(require_once_dir($root.'/tests/data/'))); assert_empty(require_once_dir($root.'/tests/data/unknown_dir')); assert_true(is_array(require_once_dir($root.'/tests/data/unknown_dir'))); }
function test_request_methods() { $m = request_methods(); assert_length_of($m, 5); }
function test_main_require_once_dir() { $root = dirname(dirname(__FILE__)); ob_start(); assert_empty(require_once_dir($root)); $files = require_once_dir($root, "AUTHORS"); ob_clean(); assert_length_of($files, 1); assert_match('/AUTHORS$/', $files[0]); $lib = $root . '/lib'; $limonade = $lib . '/limonade'; $files = require_once_dir($limonade); assert_not_empty($files); $tests_lib = $root . '/tests/data/lib0'; $libs = array('a', 'b', 'c'); foreach ($libs as $lib) { assert_false(defined('TEST_LIB_' . strtoupper($lib))); } $files = require_once_dir($tests_lib); assert_not_empty($files); assert_length_of($files, 3); foreach ($libs as $lib) { assert_true(defined('TEST_LIB_' . strtoupper($lib))); } assert_empty(require_once_dir($root . '/tests/data/')); assert_true(is_array(require_once_dir($root . '/tests/data/'))); assert_empty(require_once_dir($root . '/tests/data/unknown_dir')); assert_true(is_array(require_once_dir($root . '/tests/data/unknown_dir'))); }
function test_router_find_route() { route("get", "/index", "my_index_func"); route("get", "/new", "my_new_func"); route("post", "/create", "my_create_func"); route("get", "/edit/:id", "my_edit_func"); route("put", "/update/:id", "my_update_func"); route("delete", "/delete/:id", "my_delete_func"); route("get", "^/list/(\\d+)", "my_list_func"); $routes = route("get", "/*.jpg/:size", "my_jpeg"); assert_length_of($routes, 8); $r = route_find("GET", "/unkown"); assert_false($r); $r = route_find("GET", "/delete"); assert_false($r); $r = route_find("POST", "/create"); assert_equal($r["function"], "my_create_func"); $r = route_find("GET", "/edit"); assert_equal($r["function"], "my_edit_func"); $r = route_find("GET", "/edit/120"); assert_equal($r["function"], "my_edit_func"); assert_equal($r["params"]["id"], 120); $r = route_find("GET", "/limonade.jpg/thumb", 'my_jpeg'); assert_equal($r["function"], "my_jpeg"); assert_equal($r["params"][0], "limonade"); assert_equal($r["params"]["size"], "thumb"); route("get", "/index/*", "my_index_func2"); $routes = route("delete", "/delete/:id/:confirm", "my_delete_func2"); assert_length_of($routes, 10); $r = route_find("GET", "/index"); assert_equal($r["function"], "my_index_func"); $r = route_find("GET", "/index/ok"); assert_equal($r["function"], "my_index_func2"); $r = route_find("DELETE", "/delete"); assert_equal($r["function"], "my_delete_func"); $r = route_find("DELETE", "/delete/120"); assert_equal($r["function"], "my_delete_func"); $r = route_find("DELETE", "/delete/120/ok"); assert_equal($r["function"], "my_delete_func2"); $r = route_find("GET", "/list/120"); assert_equal($r["function"], "my_list_func"); }