shakespeare-css 1.0.1.4 → 1.0.1.5
raw patch · 3 files changed
+84/−86 lines, 3 filesdep ~hspecPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: hspec
API changes (from Hackage documentation)
- Text.Cassius: cassiusFileDebug, cassiusFileReload :: FilePath -> Q Exp
- Text.Lucius: luciusFileDebug, luciusFileReload :: FilePath -> Q Exp
+ Text.Cassius: cassiusFileDebug :: FilePath -> Q Exp
+ Text.Cassius: cassiusFileReload :: FilePath -> Q Exp
+ Text.Lucius: luciusFileDebug :: FilePath -> Q Exp
+ Text.Lucius: luciusFileReload :: FilePath -> Q Exp
Files
- shakespeare-css.cabal +2/−2
- test.hs +3/−3
- test/ShakespeareCssTest.hs +79/−81
shakespeare-css.cabal view
@@ -1,5 +1,5 @@ name: shakespeare-css-version: 1.0.1.4+version: 1.0.1.5 license: MIT license-file: LICENSE author: Michael Snoyman <michael@snoyman.com>@@ -54,7 +54,7 @@ , shakespeare , base >= 4 && < 5 , HUnit- , hspec >= 1.1 && < 1.3+ , hspec >= 1.3 , text >= 0.7 && < 0.12
test.hs view
@@ -1,5 +1,5 @@-import Test.Hspec.Core-import ShakespeareCssTest (specs)+import Test.Hspec+import ShakespeareCssTest (spec) main :: IO ()-main = hspec [specs]+main = hspec spec
test/ShakespeareCssTest.hs view
@@ -1,10 +1,9 @@ {-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE TemplateHaskell #-} -module ShakespeareCssTest (specs) where +module ShakespeareCssTest (spec) where import Test.HUnit hiding (Test) import Test.Hspec -import Test.Hspec.HUnit () import Prelude hiding (reverse) import Text.Cassius @@ -17,25 +16,26 @@ import Data.Text (Text, pack, unpack) import Data.Monoid (mappend) -specs :: Spec -specs = describe "shakespeare-css" - [ it "cassius" caseCassius - , it "cassiusFile" caseCassiusFile +spec :: Spec +spec = do + describe "shakespeare-css" $ do + it "cassius" caseCassius + it "cassiusFile" caseCassiusFile - , it "cassiusFileDebug" $ do - let var = "var" - let selector = "foo" - let urlp = (Home, [(pack "p", pack "q")]) - flip celper $(cassiusFileDebug "test/cassiuses/external1.cassius") $ concat - [ "foo {\n background: #000;\n bar: baz;\n color: #F00;\n}\n" - , "bin {\n" - , " background-image: url(url);\n" - , " bar: bar;\n color: #7F6405;\n fvarx: someval;\n unicode-test: שלום;\n" - , " urlp: url(url?p=q);\n}\n" - ] + it "cassiusFileDebug" $ do + let var = "var" + let selector = "foo" + let urlp = (Home, [(pack "p", pack "q")]) + flip celper $(cassiusFileDebug "test/cassiuses/external1.cassius") $ concat + [ "foo {\n background: #000;\n bar: baz;\n color: #F00;\n}\n" + , "bin {\n" + , " background-image: url(url);\n" + , " bar: bar;\n color: #7F6405;\n fvarx: someval;\n unicode-test: שלום;\n" + , " urlp: url(url?p=q);\n}\n" + ] {- TODO - , it "cassiusFileDebugChange" $ do + it "cassiusFileDebugChange" $ do let var = "var" writeFile "test/cassiuses/external2.cassius" "foo\n #{var}: 1" celper "foo{var:1}" $(cassiusFileDebug "test/cassiuses/external2.cassius") @@ -45,22 +45,22 @@ -} - , it "comments" $ do - -- FIXME reconsider Hamlet comment syntax? - celper "" [cassius|/* this is a comment */ + it "comments" $ do + -- FIXME reconsider Hamlet comment syntax? + celper "" [cassius|/* this is a comment */ /* another comment */ /*a third one*/|] - , it "cassius pseudo-class" $ - flip celper [cassius| + it "cassius pseudo-class" $ + flip celper [cassius| a:visited color: blue |] "a:visited{color:blue}" - , it "ignores a blank line" $ do - celper "foo{bar:baz}" [cassius| + it "ignores a blank line" $ do + celper "foo{bar:baz}" [cassius| foo bar: baz @@ -68,30 +68,30 @@ |] - , it "leading spaces" $ - celper "foo{bar:baz}" [cassius| + it "leading spaces" $ + celper "foo{bar:baz}" [cassius| foo bar: baz |] - , it "cassius all spaces" $ - celper "h1{color:green }" [cassius| + it "cassius all spaces" $ + celper "h1{color:green }" [cassius| h1 color: green |] - , it "cassius whitespace and colons" $ do - celper "h1:hover{color:green ;font-family:sans-serif}" [cassius| + it "cassius whitespace and colons" $ do + celper "h1:hover{color:green ;font-family:sans-serif}" [cassius| h1:hover color: green font-family:sans-serif |] - , it "cassius trailing comments" $ - celper "h1:hover {color:green ;font-family:sans-serif}" [cassius| + it "cassius trailing comments" $ + celper "h1:hover {color:green ;font-family:sans-serif}" [cassius| h1:hover /* Please ignore this */ color: green /* This is a comment. */ /* Obviously this is ignored too. */ @@ -100,11 +100,10 @@ - , it "cassius module names" $ - let foo = "foo" - dub = 3.14::Double - int = -5::Int - in + it "cassius module names" $ do + let foo = "foo" + dub = 3.14::Double + int = -5::Int celper "sel{bar:oof oof 3.14 -5}" [cassius| sel @@ -113,33 +112,33 @@ - , it "single dollar at and caret" $ do - celper "sel{att:$@^}" [cassius| + it "single dollar at and caret" $ do + celper "sel{att:$@^}" [cassius| sel att: $@^ |] - celper "sel{att:#{@{^{}" [cassius| + celper "sel{att:#{@{^{}" [cassius| sel att: #\{@\{^{ |] - , it "dollar operator" $ do - let val = (1, (2, 3)) :: (Integer, (Integer, Integer)) - celper "sel{att:2}" [cassius| + it "dollar operator" $ do + let val = (1, (2, 3)) :: (Integer, (Integer, Integer)) + celper "sel{att:2}" [cassius| sel att: #{ show $ fst $ snd val } |] - celper "sel{att:2}" [cassius| + celper "sel{att:2}" [cassius| sel att: #{ show $ fst $ snd $ val} |] - , it "embedded slash" $ do - celper "sel{att:///}" [cassius| + it "embedded slash" $ do + celper "sel{att:///}" [cassius| sel att: /// |] @@ -149,8 +148,8 @@ - , it "multi cassius" $ do - celper "foo{bar:baz;bar:bin}" [cassius| + it "multi cassius" $ do + celper "foo{bar:baz;bar:bin}" [cassius| foo bar: baz bar: bin @@ -161,10 +160,10 @@ - , it "lucius" $ do - let var = "var" - let urlp = (Home, [(pack "p", pack "q")]) - flip celper [lucius| + it "lucius" $ do + let var = "var" + let urlp = (Home, [(pack "p", pack "q")]) + flip celper [lucius| foo { background: #{colorBlack}; bar: baz; @@ -188,7 +187,7 @@ - , it "lucius file" $ do + it "lucius file" $ do let var = "var" let urlp = (Home, [(pack "p", pack "q")]) flip celper $(luciusFile "test/cassiuses/external1.lucius") $ concat @@ -199,12 +198,12 @@ , "urlp:url(url?p=q)}" ] - , it "lucius file debug" caseLuciusFileDebug + it "lucius file debug" caseLuciusFileDebug - , it "lucius nested" $ do + it "lucius nested" $ do celper "foo bar{baz:bin}" $(luciusFile "test/cassiuses/external-nested.lucius") celper "foo bar {\n baz: bin;\n}\n" $(luciusFileDebug "test/cassiuses/external-nested.lucius") celper "foo bar{baz:bin}" [lucius| @@ -223,7 +222,7 @@ |] - , it "lucius charset" $ do + it "lucius charset" $ do celper (concat ["@charset \"utf-8\";" , "#content ul{list-style:none;padding:0 5em}" , "#content ul li{padding:1em 0}" @@ -249,7 +248,7 @@ } |] - , it "lucius media" $ do + it "lucius media" $ do celper "@media only screen{foo bar{baz:bin}}" $(luciusFile "test/cassiuses/external-media.lucius") celper "@media only screen {\n foo bar {\n baz: bin;\n }\n}\n" $(luciusFileDebug "test/cassiuses/external-media.lucius") celper "@media only screen{foo bar{baz:bin}}" [lucius| @@ -263,7 +262,7 @@ |] - , it "cassius removes whitespace" $ do + it "cassius removes whitespace" $ do celper "foo{bar:baz}" [cassius| foo bar : baz @@ -273,16 +272,16 @@ - , it "lucius trailing comments" $ + it "lucius trailing comments" $ celper "foo{bar:baz}" [lucius|foo{bar:baz;}/* ignored*/|] - , it "lucius variables" $ celper "foo{bar:baz}" [lucius| + it "lucius variables" $ celper "foo{bar:baz}" [lucius| @myvar: baz; foo { bar: #{myvar}; } |] - , it "lucius CDO/CDC tokens" $ + it "lucius CDO/CDC tokens" $ celper "*{a:b}" [lucius| <!-- --> <!-- * { @@ -290,65 +289,65 @@ } --> |] - , it "lucius @import statements" $ + it "lucius @import statements" $ celper "@import url(\"bla.css\");" [lucius| @import url("bla.css"); |] - , it "lucius simple escapes" $ + it "lucius simple escapes" $ celper "*{a:test}" [lucius| * { a: t\65 st; } |] - , it "lucius bounded escapes" $ + it "lucius bounded escapes" $ celper "*{a:teft}" [lucius| * { a: t\000065ft; } |] - , it "lucius case-insensitive keywords" $ + it "lucius case-insensitive keywords" $ celper "@media foo {}" [lucius| @MeDIa foo { } |] - , it "lucius @page statements" $ + it "lucius @page statements" $ celper "@page :right{a:b;c:d}" [lucius| @page :right { a:b; c:d; } |] - , it "lucius @font-face statements" $ + it "lucius @font-face statements" $ celper "@font-face{a:b;c:d}" [lucius| @font-face { a:b; c:d; } |] - , it "lucius runtime" $ Right (T.pack "foo {\n bar: baz;\n}\n") @=? luciusRT (T.pack "foo { bar: #{myvar}}") [(TS.pack "myvar", TS.pack "baz")] - , it "lucius runtime variables" $ Right (T.pack "foo {\n bar: baz;\n}\n") @=? luciusRT (T.pack "@dummy: dummy; @myvar: baz; @dummy2: dummy; foo { bar: #{myvar}}") [] - , it "lucius whtiespace" $ Right (T.pack "@media foo {\n bar {\n baz: bin;\n baz2: bin2;\n }\n}\n") - @=? luciusRT (T.pack "@media foo{bar{baz:bin;baz2:bin2}}") [] - , it "variables inside value" $ + it "lucius runtime" $ Right (T.pack "foo {\n bar: baz;\n}\n") @=? luciusRT (T.pack "foo { bar: #{myvar}}") [(TS.pack "myvar", TS.pack "baz")] + it "lucius runtime variables" $ Right (T.pack "foo {\n bar: baz;\n}\n") @=? luciusRT (T.pack "@dummy: dummy; @myvar: baz; @dummy2: dummy; foo { bar: #{myvar}}") [] + it "lucius whtiespace" $ Right (T.pack "@media foo {\n bar {\n baz: bin;\n baz2: bin2;\n }\n}\n") + @=? luciusRT (T.pack "@media foo{bar{baz:bin;baz2:bin2}}") [] + it "variables inside value" $ celper "foo{foo:XbarY}" [lucius| @bar: bar; foo { foo:X#{bar}Y; } |] - , it "variables in media selector" $ + it "variables in media selector" $ celper "@media (max-width: 400px){foo{color:red}}" [lucius| @mobileWidth: 400px; @media (max-width: #{mobileWidth}){ foo { color: red; } } |] - , it "URLs in import" $ celper + it "URLs in import" $ celper "@import url(\"suburl\");" [lucius| @import url("@{Sub SubUrl}"); |] - , let charset = "mycharset" - in it "vars in charset" $ celper - "@charset mycharset;" [lucius| + it "vars in charset" $ do + let charset = "mycharset" + celper "@charset mycharset;" [lucius| @charset #{charset}; |] - , it "keyframes" $ celper + it "keyframes" $ celper "@keyframes mymove {from{top:0px}to{top:200px}}" [lucius| @keyframes mymove { from { @@ -359,7 +358,7 @@ } } |] - , it "prefixed keyframes" $ celper + it "prefixed keyframes" $ celper "@-webkit-keyframes mymove {from{top:0px}to{top:200px}}" [lucius| @-webkit-keyframes mymove { from { @@ -370,7 +369,6 @@ } } |] - ] data Url = Home | Sub SubUrl data SubUrl = SubUrl