packages feed

willow-0.1.0.0: test/Test/Willow/WebPlatformTests/Manual/Encoding.hs

{-# LANGUAGE CPP #-}

{-|
Description:    

Copyright:      (c) 2020 Samuel May
License:        MPL-2.0
Maintainer:     ag.eitilt@gmail.com

Stability:      experimental
Portability:    portable
-}
module Test.Willow.WebPlatformTests.Manual.Encoding
    ( tests
    ) where


import qualified Test.HUnit as U

import Test.HUnit ( (~:) )

import qualified Test.Willow.WebPlatformTests.Manual.Encoding.ApiBasics as ApiBasics
import qualified Test.Willow.WebPlatformTests.Manual.Encoding.ApiSurrogatesUtf8 as ApiSurrogatesUtf8
import qualified Test.Willow.WebPlatformTests.Manual.Encoding.Big5 as Big5
import qualified Test.Willow.WebPlatformTests.Manual.Encoding.ByteOrderMarks as ByteOrderMarks
import qualified Test.Willow.WebPlatformTests.Manual.Encoding.Gb18030 as Gb18030
import qualified Test.Willow.WebPlatformTests.Manual.Encoding.Gbk as Gbk
import qualified Test.Willow.WebPlatformTests.Manual.Encoding.FatalSingleByte as FatalSingleByte
import qualified Test.Willow.WebPlatformTests.Manual.Encoding.FatalStreaming as FatalStreaming
import qualified Test.Willow.WebPlatformTests.Manual.Encoding.Iso2022JpDecoder as Iso2022JpDecoder
import qualified Test.Willow.WebPlatformTests.Manual.Encoding.Iso2022JpEncoder as Iso2022JpEncoder
import qualified Test.Willow.WebPlatformTests.Manual.Encoding.TextDecoderUtf16Surrogates as TextDecoderUtf16Surrogates
import qualified Test.Willow.WebPlatformTests.Manual.Encoding.TextEncoderUtf16Surrogates as TextEncoderUtf16Surrogates

#ifdef HAVE_WPT
import qualified Test.Willow.WebPlatformTests.Manual.Encoding.ApiInvalidLabel as ApiInvalidLabel
import qualified Test.Willow.WebPlatformTests.Manual.Encoding.ApiReplacementEncodings as ApiReplacementEncodings
import qualified Test.Willow.WebPlatformTests.Manual.Encoding.Fatal as Fatal
import qualified Test.Willow.WebPlatformTests.Manual.Encoding.SingleByte as SingleByte
#endif


--TODO: Any folder wildcards haven't been checked thoroughly for ease of
--implementation, but at a quick scan it looks like they're not
--straightforward.
tests :: IO U.Test
tests = do
#ifdef HAVE_WPT
    apiInvalidLabel <- ApiInvalidLabel.tests
    apiReplacementEncodings <- ApiReplacementEncodings.tests
    fatal <- Fatal.tests
    singleByte <- SingleByte.tests
#endif
    return $ "encoding" ~: U.TestList
        [ ApiBasics.tests
        , ApiSurrogatesUtf8.tests
        , Big5.tests
     -- bom-handling.html
     -- encodeInto.any.js
     -- eof-shift_jis.html
     -- eof-utf-8-one.html
     -- eof-utf-8-two.html
     -- eof-utf-8-three.html
        , Gb18030.tests
        , Gbk.tests
     -- idlharness.any.js
        , Iso2022JpDecoder.tests
        , Iso2022JpEncoder.tests
     -- legacy-mb-japanese/
     -- legacy-mb-korean/
     -- legacy-mb-tchinese/
     -- remove-only-one-bom.html
     -- replacement-encodings.any.js
     -- resources/
     -- sniffing.html
     -- streams/
        , ByteOrderMarks.tests      -- textdecoder-byte-order-marks.any.js
     -- textdecoder-copy.any.js
        , FatalSingleByte.tests     -- textdecoder-fatal-single-byte.any.js
        , FatalStreaming.tests      -- textdecoder-fatal-streaming.any.js
     --TODO: textdecoder-ignore-bom.any.js
     -- textdecoder-labels.any.js
     -- textdecoder-streaming.any.js
        , TextDecoderUtf16Surrogates.tests
     -- textencoder-constructor-non-utf.any.js
        , TextEncoderUtf16Surrogates.tests
     -- unsupported-encodings.any.js
     -- utf-32-from-win1252.html
     -- utf-32.html
#ifdef HAVE_WPT
        , apiInvalidLabel
        , apiReplacementEncodings
        , fatal                     -- textdecoder-fatal.any.js
        , singleByte
#endif
        ]