dataurl-0.1.0.0: test/Web/DataUrlTest.hs
{-# OPTIONS_GHC -F -pgmF htfpp #-}
{-# LANGUAGE OverloadedStrings #-}
module Web.DataUrlTest where
import Web.DataUrl
import Test.Framework
import qualified Data.ByteString.Base64 as B64
import qualified Data.Text as T
import qualified Data.Text.Encoding as T
test_parseDataUrlUrlEnc :: IO ()
test_parseDataUrlUrlEnc =
do x <- assertRight (parseDataUrl inputData)
assertEqual expected x
where
expected =
DataUrl
{ du_contentType = "text/plain"
, du_charset = Nothing
, du_sourceEncoding = DataUrlEncUrl
, du_data = "A brief note"
}
inputData = "data:,A%20brief%20note"
test_parseDataUrlB64 :: IO ()
test_parseDataUrlB64 =
do x <- assertRight (parseDataUrl inputData)
assertEqual expected x
where
expected =
DataUrl
{ du_contentType = "image/png"
, du_charset = Nothing
, du_sourceEncoding = DataUrlEncB64
, du_data = B64.decodeLenient (T.encodeUtf8 inputB64)
}
inputB64 =
T.concat
[ "iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABGdBTUEAALGP"
, "C/xhBQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9YGARc5KB0XV+IA"
, "AAAddEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q72QlbgAAAF1J"
, "REFUGNO9zL0NglAAxPEfdLTs4BZM4DIO4C7OwQg2JoQ9LE1exdlYvBBeZ7jq"
, "ch9//q1uH4TLzw4d6+ErXMMcXuHWxId3KOETnnXXV6MJpcq2MLaI97CER3N0"
, "vr4MkhoXe0rZigAAAABJRU5ErkJggg=="
]
inputData =
T.concat
[ "data:image/png;base64,"
, inputB64
]