willow-0.1.0.0: test/Test/Willow/WebPlatformTests/Manual/Encoding/ApiReplacementEncodings.hs
{-|
Description: Emulating tests from @encoding/api-replacement-encodings.any.js@
Copyright: (c) 2020 Samuel May
License: MPL-2.0
Maintainer: ag.eitilt@gmail.com
Stability: experimental
Portability: portable
The original test checks that initializing the joint encoder/decoder fails.
Since the API functions aren't yet implemented, that's approximated by the
("static" scope) encoder failing on something it really shouldn't for
implemented algorithms: an empty string.
-}
module Test.Willow.WebPlatformTests.Manual.Encoding.ApiReplacementEncodings
( tests
) where
import qualified Data.Maybe as Y
import qualified Data.Text as T
import qualified Test.HUnit as U
import Test.HUnit ( (~:), (~?) )
import Web.Willow.Common.Encoding
import Test.Willow.WebPlatformTests.Manual.CommonReader
tests :: IO U.Test
tests = do
replacementRejected' <- someEncodings replacementGroup replacementRejected
return $ "api-replacement-encodings.any.js" ~: U.TestList
[ "'replacement' labels rejected" ~: replacementRejected'
]
replacementGroup :: (String, String, T.Text) -> Bool
replacementGroup (_, "replacement", _) = True
replacementGroup _ = False
replacementRejected :: Encoding -> U.Test
replacementRejected enc =
null (encodeEnc enc $ T.pack "replacement") ~? "'replacement' should never encode anything"