aboutsummaryrefslogtreecommitdiff
path: root/src/clojure/contrib/test_contrib/str_utils.clj
blob: 815525bb8cb73c6beade60783f87edabf65393f3 (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
(ns clojure.contrib.test-contrib.str-utils
    (:use clojure.test
          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"))))