summaryrefslogtreecommitdiff
path: root/compojure-3.2/test/compojure/http/request_test.clj
blob: 5b19dc33574bb0505cfe5e8d4ef6b371147632bb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
(ns compojure.http.request-test
  (:use compojure.http.request
        clojure.contrib.test-is
        test.helpers))

(deftest query-params
  (are (= (parse-query-params {:query-string _1}) _2)
    "a=1"     {:a "1"}
    "a=1&b=2" {:a "1", :b "2"}))

(deftest query-params-plus
  (is (= (parse-query-params {:query-string "a=1+2"})
         {:a "1 2"})))

(deftest query-params-space
  (is (= (parse-query-params {:query-string "a=1%202"})
         {:a "1 2"})))

(deftest query-params-invalid
  (are (= (parse-query-params {:query-string _1}) _2)
    ""      {}
    "="     {}
    "=1"    {}
    "a=1&=" {:a "1"}))

(deftest urlencoded-charset
  (is (urlencoded-form?
        {:content-type "application/x-www-form-urlencoded; charset=UTF8"})))

(deftest form-params
  (are (= (parse-form-params (form-request _1)) _2)
    "a=1"     {:a "1"}
    "a=1&b=2" {:a "1", :b "2"}))

(deftest assoc-params-empty
  (is (= (assoc-params {})
         {:form-params {}, :query-params {}, :params {}})))

(deftest assoc-params-merge
  (let [request {:form-params {:a "1"}, :query-params {:b "2"}}]
    (is (= (assoc-params request)
           (assoc request :params {:a "1", :b "2"})))))

(deftest assoc-params-twice
  (let [request (form-request "a=1")]
    (is (= (:form-params (-> request assoc-params assoc-params))
           {:a "1"}))))

(deftest request-cookies
  (is (= (parse-cookies {:headers {"cookie" "a=1;b=2"}})
         {:a "1", :b "2"})))