Example #1
0
        assert_equal($params["id"], 25);
        $_GET = array();
    });
    it("does not merge params already defined by router", function () {
        Router::getInstance()->reset();
        $_GET["controller"] = "get_application";
        $_GET["user_id"] = 100;
        Router::prepare(function ($r) {
            $r->match("/blog/:action")->to(array("controller" => "application"));
        });
        $d = Dispatcher::getInstance();
        $params = $d->params_for_request("/blog/method");
        assert_not_equal($params["controller"], "get_application");
        assert_equal($params["action"], "method");
        assert_equal($params["user_id"], 100);
        $_GET = array();
    });
    it("returns false when it cannot merge", function () {
        Router::getInstance()->reset();
        $_GET["user_id"] = 100;
        Router::prepare(function ($r) {
            $r->match("/blog/:action")->to(array("controller" => "application"));
        });
        $d = Dispatcher::getInstance();
        $params = $d->params_for_request("/user/method");
        assert_not_equal($params["controller"], "application");
        assert_not_equal($params["action"], "method");
        assert_not_equal($params["user_id"], 100);
        $_GET = array();
    });
});
Example #2
0
    });
    it("should match all optional params", function () {
        Router::prepare(function ($r) {
            $r->match("/artist/:id(/:name(/:page(/:sort_order)))")->to(array("controller" => "catalog", "action" => "show_book"));
        });
        $r = Router::getInstance();
        $params = $r->map_route_to_params("/artist/1234/coldplay/1/recent");
        assert_equal($params["id"], "1234");
        assert_equal($params["name"], "coldplay");
        assert_equal($params["page"], "1");
        assert_equal($params["sort_order"], "recent");
        $r->reset();
    });
    it("should match all params in path", function () {
        Router::prepare(function ($r) {
            $r->match("/artist/:id/:name/:page/:sort_order")->to(array("controller" => "catalog", "action" => "show_book"));
        });
        $r = Router::getInstance();
        $params = $r->map_route_to_params("/artist/1234/coldplay/1/recent");
        assert_equal($params["id"], "1234");
        assert_equal($params["name"], "coldplay");
        assert_equal($params["page"], "1");
        assert_equal($params["sort_order"], "recent");
        $r->reset();
    });
});
describe("Router -> route_path_to_regexp", function () {
    it("should return a regular expression", function () {
        $r = Router::getInstance();
        $pattern = $r->route_path_to_regexp("/artist/:id/:name");
        assert_equal(preg_match("/{$pattern}/", "/artist/100/coldplay"), true, "It should return a regular expression");