summaryrefslogtreecommitdiff
path: root/tests/Hakyll/Web/CompressCss/Tests.hs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/Hakyll/Web/CompressCss/Tests.hs')
-rw-r--r--tests/Hakyll/Web/CompressCss/Tests.hs59
1 files changed, 59 insertions, 0 deletions
diff --git a/tests/Hakyll/Web/CompressCss/Tests.hs b/tests/Hakyll/Web/CompressCss/Tests.hs
new file mode 100644
index 0000000..b356388
--- /dev/null
+++ b/tests/Hakyll/Web/CompressCss/Tests.hs
@@ -0,0 +1,59 @@
+--------------------------------------------------------------------------------
+module Hakyll.Web.CompressCss.Tests
+ ( tests
+ ) where
+
+
+--------------------------------------------------------------------------------
+import Data.Char (toUpper)
+import Test.Framework (Test, testGroup)
+import Test.HUnit (assert, (@=?))
+
+
+--------------------------------------------------------------------------------
+import Hakyll.Web.CompressCss
+import TestSuite.Util
+
+
+--------------------------------------------------------------------------------
+tests :: Test
+tests = testGroup "Hakyll.Web.CompressCss.Tests" $ concat
+ [ fromAssertions "compressCss"
+ [
+ -- compress whitespace
+ " something something " @=?
+ compressCss " something \n\t\r something "
+ -- do not compress whitespace in constants
+ , "abc \" \t\n\r \" xyz" @=?
+ compressCss "abc \" \t\n\r \" xyz"
+ , "abc ' \t\n\r ' xyz" @=?
+ compressCss "abc ' \t\n\r ' xyz"
+
+ -- strip comments
+ , "before after" @=? compressCss "before /* abc { } ;; \n\t\r */ after"
+ -- don't strip comments inside constants
+ , "before \"/* abc { } ;; \n\t\r */\" after"
+ @=? compressCss "before \"/* abc { } ;; \n\t\r */\" after"
+
+ -- compress separators
+ , "}" @=? compressCss "; }"
+ , "{};" @=? compressCss " { } ; "
+ -- compress whitespace even after this curly brace
+ , "}" @=? compressCss "; } "
+ -- but do not compress separators inside of constants
+ , "\" { } ; \"" @=? compressCss "\" { } ; \""
+ -- don't compress separators at the start or end of constants
+ , "\" }\"" @=? compressCss "\" }\""
+ , "\"{ \"" @=? compressCss "\"{ \""
+ -- don't get irritated by the wrong constant terminator
+ , "\" ' \"" @=? compressCss "\" ' \""
+ , "' \" '" @=? compressCss "' \" '"
+ -- don't compress whitespace around separators in constants in the middle of a string
+ , "abc '{ '" @=? compressCss "abc '{ '"
+ , "abc \"{ \"" @=? compressCss "abc \"{ \""
+ -- compress whitespace after colons
+ , "abc:xyz" @=? compressCss "abc : xyz"
+ -- compress multiple semicolons
+ , ";" @=? compressCss ";;;;;;;"
+ ]
+ ]