packages feed

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
          ]