{-# LANGUAGE OverloadedStrings #-} module Zenacy.HTML.Internal.Oper.Tests ( testOper ) where import Zenacy.HTML import Control.Monad ( (>=>) ) import Data.Map ( Map ) import qualified Data.Map as Map ( fromList , lookup ) import Data.Maybe ( fromJust ) import Test.Framework ( Test , testGroup ) import Test.Framework.Providers.HUnit ( testCase ) import Test.HUnit ( assertBool , assertEqual , assertFailure ) testOper :: Test testOper = testGroup "Zenacy.HTML.Internal.Oper" [ testStyle ] h = fromJust . htmlDocBody $ htmlParseEasy "\ \

\ \

AAA

\ \

\ \

\ \

\ \

\ \

\ \

\ \

\ \

\ \
\ \
\ \" f x = fromJust . htmlElemFindID x testStyle :: Test testStyle = testCase "oper style" $ do assertEqual "TEST 1" m0 $ g "1" assertEqual "TEST 2" m0 $ g "2" assertEqual "TEST 3" m0 $ g "3" assertEqual "TEST 4" m0 $ g "4" assertEqual "TEST 5" m1 $ g "5" assertEqual "TEST 6" m2 $ g "6" assertEqual "TEST 7" m1 $ g "7" assertEqual "TEST 8" m0 $ g "8" assertEqual "TEST 9" (Map.fromList [("background-image","url(https://a/b)")]) (g "9") assertEqual "TEST 10" (Just "https://a/b") ((Map.lookup "background-image" >=> htmlElemStyleParseURL) (g "9")) assertEqual "TEST 11" (Just "https://a/b") ((Map.lookup "background-image" >=> htmlElemStyleParseURL) (g "10")) where g x = htmlElemStyles $ f x h m0 = Map.fromList [("display","none")] m1 = Map.fromList [("display","")] m2 = Map.fromList []