{-# LANGUAGE NoImplicitPrelude, OverloadedStrings, UnicodeSyntax, QuasiQuotes #-} module Data.Microformats2.Parser.PropertySpec (spec) where import Prelude.Compat import Test.Hspec import TestCommon import Data.Microformats2.Parser.Property {-# ANN module ("HLint: ignore Redundant do"::String) #-} spec ∷ Spec spec = do describe "extractProperty" $ do it "parses p- properties" $ do let nm = extractP . documentRoot . parseLBS nm [xml|Hello Basic|] `shouldBe` pure "Hello Basic" nm [xml|HA|] `shouldBe` pure "Hello Abbr" nm [xml|HA|] `shouldBe` pure "HA" nm [xml||] `shouldBe` pure "Hello Data" nm [xml||] `shouldBe` pure "Hello Input" nm [xml|Hello Img|] `shouldBe` pure "Hello Img" nm [xml|Hello Area|] `shouldBe` pure "Hello Area" nm [xml| ignore Hello ValuePattern |] `shouldBe` pure "HelloValuePattern" nm [xml| ignore Hi Value-Title|] `shouldBe` pure "HelloValue-Title" nm [xml| Hello Span With Img |] `shouldBe` pure "Hello Span With Img" nm [xml| Hello |] `shouldBe` pure "Hello span-with.png" nm [xml| Hello Span With Img nope |] `shouldBe` pure "Hello&& Value Title" it "parses u- properties" $ do let ur = extractU . documentRoot . parseLBS ur [xml|link|] `shouldBe` pure ("/yo/a", True) ur [xml||] `shouldBe` pure ("/yo/area", True) ur [xml||] `shouldBe` pure ("/yo/img", True) ur [xml|