packages feed

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

{-# LANGUAGE OverloadedStrings #-}

{-|
Description:    Emulating tests from @encoding/gb18030-encoder.html@

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

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


import qualified Test.HUnit as U

import Test.HUnit ( (~:), (~?=) )

import Web.Willow.Common.Encoding

import Test.Willow.WebPlatformTests.Manual.Common


tests :: U.Test
tests = "gb18030-encoder.html" ~: U.TestList $ map test testData
  where test t = nameE t ~: encodeEnc' Gb18030 (inputE t) ~?= outputE t


testData :: [InlineEncode]
testData =
    [ InlineEncode
        { inputE = "s"
        , outputE = "s"
        , nameE = "very basic"
        }
    , InlineEncode
        { inputE = "\x20AC"
        , outputE = "\xA2\xE3"
        , nameE = "Euro"
        }
    , InlineEncode
        { inputE = "\x4E02"
        , outputE = "\x81@"
        , nameE = "character"
        }
    , InlineEncode
        { inputE = "\xE4C6"
        , outputE = "\xA1@"
        , nameE = "PUA"
        }
    , InlineEncode
        { inputE = "\xE4C5"
        , outputE = "\xFE\xFE"
        , nameE = "PUA #2"
        }
    , InlineEncode
        { inputE = "\x1F4A9"
        , outputE = "\x94\&9\xDA\&3"
        , nameE = "poo"
        }
    ]