diff options
Diffstat (limited to 'src/clojure/contrib/test_contrib')
-rw-r--r-- | src/clojure/contrib/test_contrib/str_utils.clj | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/clojure/contrib/test_contrib/str_utils.clj b/src/clojure/contrib/test_contrib/str_utils.clj new file mode 100644 index 00000000..812821dc --- /dev/null +++ b/src/clojure/contrib/test_contrib/str_utils.clj @@ -0,0 +1,33 @@ +(ns clojure.contrib.test-contrib.str-utils + (:use clojure.contrib.test-is + clojure.contrib.str-utils)) + + +(deftest test-re-gsub + (let [re #"\%([0-9a-fA-F]{2})" + replacement (fn [match] + (char (Integer/parseInt + (match 1) 16)))] + (is (= (re-gsub re replacement "") "")) + (is (= (re-gsub re replacement "%20") " ")) + (is (= (re-gsub re replacement "x%20") "x ")) + (is (= (re-gsub re replacement "x%20%0a") "x \n")) + (is (= (re-gsub re replacement "x%20y") "x y")) + (is (= (re-gsub re "?" "") "")) + (is (= (re-gsub re "?" "%21") "?")) + (is (= (re-gsub re "?" "x%22") "x?")) + (is (= (re-gsub re "?" "x%23y") "x?y")))) + +(deftest test-re-sub + (let [re #"\%([0-9a-fA-F]{2})" + replacement (fn [match] + (char (Integer/parseInt + (match 1) 16)))] + (is (= (re-sub re replacement "") "")) + (is (= (re-sub re replacement "%20") " ")) + (is (= (re-sub re replacement "x%20%20") "x %20")) + (is (= (re-sub re replacement "x%20y") "x y")) + (is (= (re-sub re "?" "") "")) + (is (= (re-sub re "?" "%21") "?")) + (is (= (re-sub re "?" "x%22%25") "x?%25")) + (is (= (re-gsub re "?" "x%23y") "x?y")))) |