diff --git a/src/cemerick/url.cljx b/src/cemerick/url.cljx index 75ff53d..9629181 100644 --- a/src/cemerick/url.cljx +++ b/src/cemerick/url.cljx @@ -29,7 +29,7 @@ (defn map->query [m] (some->> (seq m) - sort ; sorting makes testing a lot easier :-) + (sort-by (fn [[k v]] (name k))) ; sorting makes testing a lot easier :-) (map (fn [[k v]] [(url-encode (name k)) "=" diff --git a/test/cemerick/test_url.cljx b/test/cemerick/test_url.cljx index fe2e6d1..0856d7e 100644 --- a/test/cemerick/test_url.cljx +++ b/test/cemerick/test_url.cljx @@ -47,6 +47,12 @@ nil nil "" nil)) +(deftest query-mixed-keys + (is (= "https://localhost:80?baz=bam&foo=bar" + (-> (url "https://localhost:80?foo=bar") + (assoc-in [:query :baz] "bam") + str)))) + (deftest user-info-edgecases (are [user-info url-string] (= user-info ((juxt :username :password) (url url-string))) ["a" nil] "http://a@foo"