{-# LANGUAGE OverloadedStrings, UnicodeSyntax, QuasiQuotes, CPP #-} module Data.Microformats2.Parser.InternalSpec (spec) where import Test.Hspec import TestCommon import Text.HTML.DOM import Text.XML.Lens (documentRoot) import Data.Microformats2.Parser.Internal #if __GLASGOW_HASKELL__ < 709 import Control.Applicative #endif {-# ANN module ("HLint: ignore Redundant do"::String) #-} spec ∷ Spec spec = do describe "extractProperty" $ do it "parses p- properties" $ do let nm = extractProperty P "name" . 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 Span With Img nope |] `shouldBe` pure "Hello Span With Img&& Value Title" it "parses u- properties" $ do let ur = extractProperty U "url" . documentRoot . parseLBS ur [xml|
link|] `shouldBe` pure "/yo/a" ur [xml|
|] `shouldBe` pure "/yo/area" ur [xml|
|] `shouldBe` pure "/yo/img" ur [xml|