+++ /dev/null
-#require "str";;
-#directory "..";;
-#load "netstring.cma";;
-
-
-open Netencoding;;
-
-(**********************************************************************)
-(* Base64 *)
-(**********************************************************************)
-
-(* Test strings:
- * "", "a", "ab", "abc", "abcd", "abcde",
- * "abcdefghijklmnopqrstuvwxyz".
- *)
-
-let t001() =
- (* ENCODE. No line breaks. *)
- Base64.encode "" = "" &
- Base64.encode "a" = "YQ==" &
- Base64.encode "ab" = "YWI=" &
- Base64.encode "abc" = "YWJj" &
- Base64.encode "abcd" = "YWJjZA==" &
- Base64.encode "abcde" = "YWJjZGU=" &
- Base64.encode "abcdefghijklmnopqrstuvwxyz" =
- "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo="
-;;
-
-
-let t002() =
- (* ENCODE. Lines with length of 4, separated by LF *)
- let abc = "abcdefghijklmnopqrstuvwxyz" in
- Base64.encode_substring abc 0 0 4 false = "" &
- Base64.encode_substring abc 0 1 4 false = "YQ==\n" &
- Base64.encode_substring abc 0 2 4 false = "YWI=\n" &
- Base64.encode_substring abc 0 3 4 false = "YWJj\n" &
- Base64.encode_substring abc 0 4 4 false = "YWJj\nZA==\n" &
- Base64.encode_substring abc 0 5 4 false = "YWJj\nZGU=\n" &
- Base64.encode_substring abc 0 26 4 false =
- "YWJj\nZGVm\nZ2hp\namts\nbW5v\ncHFy\nc3R1\ndnd4\neXo=\n"
-;;
-
-
-let t003() =
- (* ENCODE. Lines with length of 5, separated by LF *)
- let abc = "abcdefghijklmnopqrstuvwxyz" in
- Base64.encode_substring abc 0 0 5 false = "" &
- Base64.encode_substring abc 0 1 5 false = "YQ==\n" &
- Base64.encode_substring abc 0 2 5 false = "YWI=\n" &
- Base64.encode_substring abc 0 3 5 false = "YWJj\n" &
- Base64.encode_substring abc 0 4 5 false = "YWJj\nZA==\n" &
- Base64.encode_substring abc 0 5 5 false = "YWJj\nZGU=\n" &
- Base64.encode_substring abc 0 26 5 false =
- "YWJj\nZGVm\nZ2hp\namts\nbW5v\ncHFy\nc3R1\ndnd4\neXo=\n"
-;;
-
-
-let t004() =
- (* ENCODE. Lines with length of 7, separated by LF *)
- let abc = "abcdefghijklmnopqrstuvwxyz" in
- Base64.encode_substring abc 0 0 7 false = "" &
- Base64.encode_substring abc 0 1 7 false = "YQ==\n" &
- Base64.encode_substring abc 0 2 7 false = "YWI=\n" &
- Base64.encode_substring abc 0 3 7 false = "YWJj\n" &
- Base64.encode_substring abc 0 4 7 false = "YWJj\nZA==\n" &
- Base64.encode_substring abc 0 5 7 false = "YWJj\nZGU=\n" &
- Base64.encode_substring abc 0 26 7 false =
- "YWJj\nZGVm\nZ2hp\namts\nbW5v\ncHFy\nc3R1\ndnd4\neXo=\n"
-;;
-
-
-let t005() =
- (* ENCODE. Lines with length of 8, separated by LF *)
- let abc = "abcdefghijklmnopqrstuvwxyz" in
- Base64.encode_substring abc 0 0 8 false = "" &
- Base64.encode_substring abc 0 1 8 false = "YQ==\n" &
- Base64.encode_substring abc 0 2 8 false = "YWI=\n" &
- Base64.encode_substring abc 0 3 8 false = "YWJj\n" &
- Base64.encode_substring abc 0 4 8 false = "YWJjZA==\n" &
- Base64.encode_substring abc 0 5 8 false = "YWJjZGU=\n" &
- Base64.encode_substring abc 0 26 8 false =
- "YWJjZGVm\nZ2hpamts\nbW5vcHFy\nc3R1dnd4\neXo=\n"
-;;
-
-
-let t006() =
- (* ENCODE. Lines with length of 8, separated by CRLF *)
- let abc = "abcdefghijklmnopqrstuvwxyz" in
- Base64.encode_substring abc 0 0 8 true = "" &
- Base64.encode_substring abc 0 1 8 true = "YQ==\r\n" &
- Base64.encode_substring abc 0 2 8 true = "YWI=\r\n" &
- Base64.encode_substring abc 0 3 8 true = "YWJj\r\n" &
- Base64.encode_substring abc 0 4 8 true = "YWJjZA==\r\n" &
- Base64.encode_substring abc 0 5 8 true = "YWJjZGU=\r\n" &
- Base64.encode_substring abc 0 26 8 true =
- "YWJjZGVm\r\nZ2hpamts\r\nbW5vcHFy\r\nc3R1dnd4\r\neXo=\r\n"
-;;
-
-
-let t020() =
- (* DECODE. First test without spaces *)
- Base64.decode_substring "" 0 0 false false = "" &
- Base64.decode_substring "YQ==" 0 4 false false = "a" &
- Base64.decode_substring "YWI=" 0 4 false false = "ab" &
- Base64.decode_substring "YWJj" 0 4 false false = "abc" &
- Base64.decode_substring "YWJjZA==" 0 8 false false = "abcd" &
- Base64.decode_substring "YWJjZGU=" 0 8 false false = "abcde" &
- Base64.decode_substring
- "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo=" 0 36 false false =
- "abcdefghijklmnopqrstuvwxyz"
-;;
-
-
-let t021() =
- (* DECODE. With spaces *)
- Base64.decode_substring " \r\n\t" 0 4 false true = "" &
- Base64.decode_substring " Y W J j\n Z G U = " 0 18 false true = "abcde"
-;;
-
-
-let t022() =
- (* DECODE. With URL characters and spaces *)
- Base64.decode_substring " Y W J j\n Z G U = " 0 18 true true = "abcde" &
- Base64.decode_substring " Y W J j\n Z G U . " 0 18 true true = "abcde"
-;;
-
-(**********************************************************************)
-(* Quoted Printable *)
-(**********************************************************************)
-
-let t100() =
- (* ENCODE. *)
- QuotedPrintable.encode "a %= 12345 &$[]\"" = "a %=3D 12345 &=24=5B=5D=22" &
- QuotedPrintable.encode "\000\001\002" = "=00=01=02" &
- QuotedPrintable.encode "abc\r\ndef\nghi" = "abc\r\ndef\nghi" &
- QuotedPrintable.encode " abc\r\n def\n ghi" = " abc\r\n def\n ghi" &
- QuotedPrintable.encode "abc \r\n def\nghi " = "abc=20\r\n def\nghi=20"
-;;
-
-
-let t120() =
- (* DECODE. *)
- QuotedPrintable.decode "a %=3D 12345 &=24=5B=5D=22" = "a %= 12345 &$[]\"" &
- QuotedPrintable.decode "=00=01=02" = "\000\001\002" &
- QuotedPrintable.decode "abc\r\ndef\nghi" = "abc\r\ndef\nghi" &
- QuotedPrintable.decode " abc\r\n def\n ghi" = " abc\r\n def\n ghi" &
- QuotedPrintable.decode "abc=20\r\n def\nghi=20" = "abc \r\n def\nghi " &
- QuotedPrintable.decode "abc=\r\n def\nghi=20" = "abc def\nghi "
-;;
-
-(**********************************************************************)
-(* Q *)
-(**********************************************************************)
-
-let t200() =
- (* ENCODE. *)
- Q.encode "a %= 12345 &$[]\"" = "a=20=25=3D=2012345=20=26=24=5B=5D=22" &
- Q.encode "\000\001\002\r\n" = "=00=01=02=0D=0A"
-;;
-
-
-let t220() =
- (* DECODE. *)
- Q.decode "a=20=25=3D=2012345=20=26=24=5B=5D=22" = "a %= 12345 &$[]\"" &
- Q.decode "=00=01=02=0D=0A" = "\000\001\002\r\n" &
- Q.decode "a=20=25=3d=2012345=20=26=24=5b=5d=22" = "a %= 12345 &$[]\""
-;;
-
-(**********************************************************************)
-(* Url *)
-(**********************************************************************)
-
-(* Already tested for Cgi *)
-
-(**********************************************************************)
-(* Html *)
-(**********************************************************************)
-
-let t300() =
- Html.encode_from_latin1 "<>&\"abcdefäöÜ\160\025'" =
- "<>&"abcdefäöÜ '"
-;;
-
-
-let t320() =
- Html.decode_to_latin1
- "<>&"abcdefäöÜ " =
- "<>&\"abcdefäöÜ\160\025" &
- Html.decode_to_latin1 "'" = "'" &
- Html.decode_to_latin1 "&nonsense;" = "&nonsense;" &
- Html.decode_to_latin1 "Ā" = "Ā"
-;;
-
-
-(**********************************************************************)
-
-let test f n =
- if f() then
- print_endline ("Test " ^ n ^ " ok")
- else
- print_endline ("Test " ^ n ^ " FAILED!!!!");
- flush stdout
-;;
-
-test t001 "001";
-test t002 "002";
-test t003 "003";
-test t004 "004";
-test t005 "005";
-test t006 "006";
-
-test t020 "020";
-test t021 "021";
-test t022 "022";
-
-test t100 "100";
-test t120 "120";
-
-test t200 "200";
-test t220 "220";
-
-test t300 "300";
-test t320 "320";