summaryrefslogtreecommitdiff
path: root/test/reverse_routing/core_test.clj
diff options
context:
space:
mode:
Diffstat (limited to 'test/reverse_routing/core_test.clj')
-rw-r--r--test/reverse_routing/core_test.clj168
1 files changed, 0 insertions, 168 deletions
diff --git a/test/reverse_routing/core_test.clj b/test/reverse_routing/core_test.clj
deleted file mode 100644
index fb37c94..0000000
--- a/test/reverse_routing/core_test.clj
+++ /dev/null
@@ -1,168 +0,0 @@
-(ns reverse-routing.core-test
- (:use clojure.test
- reverse-routing.core
- [compojure.core :only [GET]]))
-
-(defn make-request [handler uri]
- ;; Technically most of this map is required by the ring spec
- ;; I'm fairly sure we could get away with not having most of it
- (-> {:request-method :get
- :scheme :http
- :uri uri
- :remote-addr "127.0.0.1"
- :server-port 8080
- :server-name "something"}
- handler
- :body))
-
-(deftest test-basic-route
- (let [handler (-> (register-route :user
- (GET "/succeed" [id] (url-for :user 10)))
- wrap-reverse-routing)]
- (is (= (make-request handler "/succeed") "/user/10"))))
-
-(-> (routes
- (register-route :user
- (GET "/user/:id" [id] (str "user " id)))
- (GET "/succeed" [] (url-for :user 10))
- (GET "/fail1" [] (url-for :user))
- (GET "/fail2" [] (url-for :user 10 20)))
- wrap-reverse-routing
- (make-request "/succeed"))
-
-(deftest test-basic-route
- (let [handler (-> (routes
- (register-route :user
- (GET "/user/:id" [id] (str "user " id)))
- (GET "/succeed" [] (url-for :user 10))
- (GET "/fail1" [] (url-for :user))
- (GET "/fail2" [] (url-for :user 10 20)))
- wrap-reverse-routing)]
- (is (= (make-request handler "/succeed") "/user/10"))
- (is (nil? (make-request handler "/fail1")))
- (is (nil? (make-request handler "/fail2")))))
-
-(-> (routes
- (register-route :user
- (GET "/user/" [id] (str "user list")))
- (context "/user/:id" []
- (register-route :user
- (GET "/" [id] (str "user " id)))
- (register-route :edit-user
- (GET "/edit" [id] (str "edit user " id))))
- (GET "/succeed1" [] (url-for :user))
- (GET "/succeed2" [] (url-for :user 10))
- (GET "/succeed3" [] (url-for :edit-user 10))
- (GET "/fail1" [] (url-for :user 10 20))
- (GET "/fail2" [] (url-for :edit-user))
- (GET "/fail3" [] (url-for :edit-user 10 20)))
- wrap-reverse-routing
- (make-request "/fail2"))
-
-(deftest test-context-routes
- (let [handler (-> (routes
- (register-route :user
- (GET "/user/" [id] (str "user list")))
- (context "/user/:id" []
- (register-route :user
- (GET "/" [id] (str "user " id)))
- (register-route :edit-user
- (GET "/edit" [id] (str "edit user " id))))
- (GET "/succeed1" [] (url-for :user))
- (GET "/succeed2" [] (url-for :user 10))
- (GET "/succeed3" [] (url-for :edit-user 10))
- (GET "/fail1" [] (url-for :user 10 20))
- (GET "/fail2" [] (url-for :edit-user))
- (GET "/fail3" [] (url-for :edit-user 10 20)))
- wrap-reverse-routing)]
- (is (= (make-request handler "/succeed1") "/user/"))
- (is (= (make-request handler "/succeed2") "/user/10/"))
- (is (= (make-request handler "/succeed3") "/user/10/edit"))
-
- (is (nil? (make-request handler "/fail1")))
- (is (nil? (make-request handler "/fail2")))
- (is (nil? (make-request handler "/fail3")))))
-
-(deftest test-context-in-context-routes
- (let [handler (-> (routes
- (context "/user" []
- (register-route :user
- (GET "/" [id] (str "user list")))
- (context "/:id" [id]
- (register-route :user
- (GET "/" [] (str "user " id)))
- (register-route :edit-user
- (GET "/edit" [] (str "edit user " id)))))
- (GET "/succeed1" [] (url-for :user))
- (GET "/succeed2" [] (url-for :user 10))
- (GET "/succeed3" [] (url-for :edit-user 10))
- (GET "/fail1" [] (url-for :user 10 20))
- (GET "/fail2" [] (url-for :edit-user))
- (GET "/fail3" [] (url-for :edit-user 10 20)))
- wrap-reverse-routing)]
- (is (= (make-request handler "/succeed1") "/user/"))
- (is (= (make-request handler "/succeed2") "/user/10/"))
- (is (= (make-request handler "/succeed3") "/user/10/edit"))
-
- (is (nil? (make-request handler "/fail1")))
- (is (nil? (make-request handler "/fail2")))
- (is (nil? (make-request handler "/fail3")))))
-
-
-(deftest test-with-rebinding-vars
- (with-local-vars [subroutes (register-route :user
- (GET "/user" [] (str "user")))]
- (let [handler (-> (routes
- subroutes
- (GET "/succeed" [] (url-for :user))
- (GET "/fail" [] (url-for :user 10)))
- wrap-reverse-routing)]
- (is (= (make-request handler "/succeed") "/user"))
- (is (nil? (make-request handler "/fail")))
-
- (var-set subroutes (register-route :user
- (GET "/not-user" [] (str "user"))))
- (is (= (make-request handler "/succeed") "/not-user"))
- (is (nil? (make-request handler "/fail"))))))
-
-(deftest top-level-is-a-var
- (with-local-vars [bare-handler (routes
- (register-route :user
- (GET "/user/:id" [id] (str "user " id)))
- (GET "/succeed" [] (url-for :user 10))
- (GET "/fail1" [] (url-for :user))
- (GET "/fail2" [] (url-for :user 10 20)))]
- (let [handler (wrap-reverse-routing bare-handler)]
- (is (= (make-request handler "/succeed") "/user/10"))
- (is (nil? (make-request handler "/fail1")))
- (is (nil? (make-request handler "/fail2"))))))
-
-
-(deftest context-requiring-not-nil-value
- (let [handler (-> (routes
- (context "/:type" [type]
- (if (not= type nil)
- (register-route :get-object
- (GET "/:id" [id]
- (str [type id])))))
- (GET "/succeed" [] (url-for :get-object "user" 10))
- (GET "/fail" [] (url-for :get-object nil 10)))
- wrap-reverse-routing)]
- (is (= (make-request handler "/succeed"), "/user/10"))
- (is (nil? (make-request handler "/fail")))))
-
-(deftest context-with-limited-options
- (let [valid-type? #{"user"}
- handler (-> (routes
- (context "/:type" [type]
- (when-routes (valid-type? type)
- (register-route :get-object
- (GET "/:id" [id]
- (str [type id])))))
- (GET "/succeed" [] (url-for :get-object "user" 10))
- (GET "/fail1" [] (url-for :get-object nil 10))
- (GET "/fail2" [] (url-for :get-object "person" 10)))
- wrap-reverse-routing)]
- (is (= (make-request handler "/succeed"), "/user/10"))
- (is (nil? (make-request handler "/fail1")))
- (is (nil? (make-request handler "/fail2")))))