diff --git a/tests/FSharp.Data.Core.Tests/FSharp.Data.Core.Tests.fsproj b/tests/FSharp.Data.Core.Tests/FSharp.Data.Core.Tests.fsproj index 94f0b2e9b..c6faa5658 100644 --- a/tests/FSharp.Data.Core.Tests/FSharp.Data.Core.Tests.fsproj +++ b/tests/FSharp.Data.Core.Tests/FSharp.Data.Core.Tests.fsproj @@ -20,6 +20,7 @@ + diff --git a/tests/FSharp.Data.Core.Tests/HttpEncodings.fs b/tests/FSharp.Data.Core.Tests/HttpEncodings.fs new file mode 100644 index 000000000..5aaba8721 --- /dev/null +++ b/tests/FSharp.Data.Core.Tests/HttpEncodings.fs @@ -0,0 +1,49 @@ +module FSharp.Data.Tests.HttpEncodings + +open FsUnit +open NUnit.Framework +open System.Text +open FSharp.Data + +[] +let ``HttpEncodings.PostDefaultEncoding returns ISO-8859-1`` () = + HttpEncodings.PostDefaultEncoding.WebName |> should equal "iso-8859-1" + +[] +let ``HttpEncodings.ResponseDefaultEncoding returns ISO-8859-1`` () = + HttpEncodings.ResponseDefaultEncoding.WebName |> should equal "iso-8859-1" + +[] +let ``HttpEncodings.getEncoding with valid encoding name works`` () = + let utf8Encoding = HttpEncodings.getEncoding "utf-8" + utf8Encoding.WebName |> should equal "utf-8" + +[] +let ``HttpEncodings.getEncoding with codepage number works`` () = + let utf8Encoding = HttpEncodings.getEncoding "65001" + utf8Encoding.WebName |> should equal "utf-8" + +[] +let ``HttpEncodings.getEncoding with ASCII encoding name works`` () = + let asciiEncoding = HttpEncodings.getEncoding "ascii" + asciiEncoding.WebName |> should equal "us-ascii" + +[] +let ``HttpEncodings.getEncoding with ISO-8859-1 encoding name works`` () = + let iso88591 = HttpEncodings.getEncoding "iso-8859-1" + iso88591.WebName |> should equal "iso-8859-1" + +[] +let ``HttpEncodings.getEncoding with UTF-16 codepage works`` () = + let utf16 = HttpEncodings.getEncoding "1200" + utf16.WebName |> should equal "utf-16" + +[] +let ``HttpEncodings.getEncoding with invalid encoding name throws`` () = + (fun () -> HttpEncodings.getEncoding "invalid-encoding-name" |> ignore) + |> should throw typeof + +[] +let ``HttpEncodings.getEncoding with invalid codepage number throws`` () = + (fun () -> HttpEncodings.getEncoding "99999" |> ignore) + |> should throw typeof \ No newline at end of file