|
|
|
; Copyright (c) meissa. All rights reserved.
|
|
|
|
; The use and distribution terms for this software are covered by the
|
|
|
|
; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)
|
|
|
|
; which can be found in the file epl-v10.html at the root of this distribution.
|
|
|
|
; By using this software in any fashion, you are agreeing to be bound by
|
|
|
|
; the terms of this license.
|
|
|
|
; You must not remove this notice, or any other, from this software.
|
|
|
|
|
|
|
|
(ns cryogen-core.classpath-able-io-test
|
|
|
|
(:require [clojure.test :refer :all]
|
|
|
|
[clojure.java.io :as io]
|
|
|
|
[schema.core :as s]
|
|
|
|
[cryogen-core.file-test-tools :as ftt]
|
|
|
|
[cryogen-core.classpath-able-io :as sut])
|
|
|
|
(:import [java.nio.file FileSystems Paths Files LinkOption StandardCopyOption]
|
|
|
|
[java.nio.file.attribute FileAttribute]))
|
|
|
|
|
|
|
|
(s/set-fn-validation! true)
|
|
|
|
|
|
|
|
(def theme "bootstrap4-test")
|
|
|
|
|
|
|
|
(def target "target/tmp")
|
|
|
|
|
|
|
|
(deftest test-file-from-cp
|
|
|
|
(is
|
|
|
|
(sut/path-from-cp "dummy")))
|
|
|
|
|
|
|
|
(deftest test-resource-from-cp-or-fs
|
|
|
|
(is
|
|
|
|
(some? (sut/resource-from-cp-or-fs
|
|
|
|
"not-existing-filesystem-path"
|
|
|
|
""
|
|
|
|
"dummy")))
|
|
|
|
(is
|
|
|
|
(Files/exists
|
|
|
|
(:java-path
|
|
|
|
(sut/resource-from-cp-or-fs
|
|
|
|
"./test-resources"
|
|
|
|
"templates/themes/bootstrap4-test"
|
|
|
|
"js")) sut/no-link-option))
|
|
|
|
(is
|
|
|
|
(Files/exists
|
|
|
|
(:java-path
|
|
|
|
(sut/resource-from-cp-or-fs
|
|
|
|
"./" "" ".gitkeep")) sut/no-link-option))
|
|
|
|
(is
|
|
|
|
(some? (sut/resource-from-cp-or-fs
|
|
|
|
"./test-resources"
|
|
|
|
"templates/themes/bootstrap4-test"
|
|
|
|
"js")))
|
|
|
|
(is
|
|
|
|
(some? (sut/resource-from-cp-or-fs
|
|
|
|
"./not-existing-so-load-from-cp" "" ".gitkeep")))
|
|
|
|
(is (=
|
|
|
|
{:short-path "js/subdir"
|
|
|
|
:source-type :classpath
|
|
|
|
:resource-type :dir}
|
|
|
|
(ftt/filter-object
|
|
|
|
(sut/resource-from-cp-or-fs
|
|
|
|
"./not-existing-so-load-from-cp"
|
|
|
|
"templates/themes/bootstrap4-test"
|
|
|
|
"js/subdir")))))
|
|
|
|
|
|
|
|
(deftest test-get-resources-recursive
|
|
|
|
(is (=
|
|
|
|
[]
|
|
|
|
(sut/get-resources-recursive "" "templates/themes/bootstrap4-test" ["not-existing"])))
|
|
|
|
; TODO: one dummy from jar and one dummy from cp-filesystem and one from filesystem
|
|
|
|
; get resources and see all
|
|
|
|
; add test here
|
|
|
|
; TODO: fix dir.list on jar
|
|
|
|
(is (=
|
|
|
|
[{:short-path "dummy", :source-type :classpath, :resource-type :dir}
|
|
|
|
{:short-path "dummy/dummy_from_jar", :source-type :classpath, :resource-type :file}]
|
|
|
|
(map ftt/filter-object
|
|
|
|
(sut/get-resources-recursive "not-existing" "" ["dummy"]))))
|
|
|
|
(is (=
|
|
|
|
[{:short-path "js/dummy.js"
|
|
|
|
:source-type :classpath
|
|
|
|
:resource-type :file}]
|
|
|
|
(map ftt/filter-object
|
|
|
|
(sut/get-resources-recursive
|
|
|
|
"" "templates/themes/bootstrap4-test" ["js/dummy.js"]))))
|
|
|
|
(is (=
|
|
|
|
[]
|
|
|
|
(sut/get-resources-recursive
|
|
|
|
"" "templates/themes/bootstrap4-test" ["js/dummy.js"] :from-cp false)))
|
|
|
|
(is (=
|
|
|
|
["js/subdir"
|
|
|
|
"js/subdir/subdummy.js"
|
|
|
|
"js/subdir/test.js"]
|
|
|
|
(sort (map :short-path
|
|
|
|
(sut/get-resources-recursive
|
|
|
|
"" "templates/themes/bootstrap4-test" ["js/subdir"])))))
|
|
|
|
(is (=
|
|
|
|
["."
|
|
|
|
"./css"
|
|
|
|
"./css/dummy.css"
|
|
|
|
"./html"
|
|
|
|
"./html/403.html"
|
|
|
|
"./html/404.html"
|
|
|
|
"./js"
|
|
|
|
"./js/dummy.js"
|
|
|
|
"./js/subdir"
|
|
|
|
"./js/subdir/subdummy.js"
|
|
|
|
"./js/subdir/test.js"]
|
|
|
|
(sort (map :short-path
|
|
|
|
(sut/get-resources-recursive
|
|
|
|
"" "templates/themes/bootstrap4-test" ["."]))))))
|
|
|
|
|
|
|
|
(deftest test-distinct-resources-by-path
|
|
|
|
(is (= [{:short-path "pages/test"}
|
|
|
|
{:short-path "pages/test1"}
|
|
|
|
{:short-path "pages/test2"}]
|
|
|
|
(sut/distinct-resources-by-path [{:short-path "pages/test"}
|
|
|
|
{:short-path "pages/test1"}
|
|
|
|
{:short-path "pages/test2"}
|
|
|
|
{:short-path "pages/test1"}]))))
|
|
|
|
|
|
|
|
(deftest test-filter-for-ignore-patterns
|
|
|
|
(is (=
|
|
|
|
["file.js"]
|
|
|
|
(sut/filter-for-ignore-patterns #".*\.ignore" ["file.js" "file.ignore"]))))
|
|
|
|
|
|
|
|
(deftest test-delete-resource-recursive!
|
|
|
|
(is
|
|
|
|
(do
|
|
|
|
(.mkdir (io/file target))
|
|
|
|
(sut/delete-resource-recursive! target)
|
|
|
|
(not (ftt/verify-dir-exists target)))))
|