Source

clj-digest / test / digest_test.clj

(ns digest-test
  (:use [digest] :reload-all)
  (:use [clojure.string :only (lower-case)])
  (:use [clojure.test])
  (:import java.io.File))

(deftest md5-test
  (is (= (digest "md5" "foo") "acbd18db4cc2f85cedef654fccc4a4d8")))

(deftest sha-256-test
  (is (= (sha-256 "foo") 
         "2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae")))

(deftest algorithms-test
  (let [names (algorithms)]
    (is not (empty? names))
    (is (names "SHA-1"))))

(deftest utils-test
  (for [name (algorithms)]
    (dorun (is (ns-resolve *ns* (symbol (lower-case name)))))))

(def ^:dynamic *logo-md5* "38cf20fa3c9dc72be56965eb1c311dfa")
(def ^:dynamic *logo-sha256* 
  "42c2af2a0509832f39d0cef3ecd1612b7857c55abbe2170470eabb2a0318701c")

(deftest file-test
  (let [f (File. "test/clojure.png")]
    (is (= (md5 f) *logo-md5*))
    (is (= (sha-256 f) *logo-sha256*))))

; Just making sure that we don't explode on nil
(deftest nil-test
  (md5 nil))

(deftest length-test
  (is (= (sha (File. "test/length.txt")) 
        "007b65165b253172d054189e8e3175f3bcb9e28e")))
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.