diff options
Diffstat (limited to 'third_party/websockify/tests/base64.html')
-rw-r--r-- | third_party/websockify/tests/base64.html | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/third_party/websockify/tests/base64.html b/third_party/websockify/tests/base64.html new file mode 100644 index 00000000..24ad80b5 --- /dev/null +++ b/third_party/websockify/tests/base64.html @@ -0,0 +1,91 @@ +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <title>Native Base64 Tests</title> + <script src="include/util.js"></script> + <script src="include/webutil.js"></script> + <script src="include/base64.js"></script> + </head> + <body> + <h1>Native Base64 Tests</h1> + + <br> + Messages:<br> + <textarea id="debug" style="font-size: 9px;" cols=80 rows=25></textarea> + + <br> + </body> + +<script> + function debug(str) { + console.log(str); + cell = $D('debug'); + cell.innerHTML += str + "\n"; + cell.scrollTop = cell.scrollHeight; + } + + function assertRun(code, result) { + try { + var actual = eval(code); + } catch (exc) { + debug("FAIL: '" + code + "' threw an exception"); + fail += 1; + return false; + } + if (actual !== result) { + debug("FAIL: '" + code + "' returned '" + actual + "', expected '" + result + "'"); + fail += 1; + return false; + } + debug("PASS: '" + code + "' returned expected '" + result +"'"); + pass += 1; + return true; + } + + function Base64_decode(data) { + var arr = Base64.decode (data); + return arr.map(function (num) { + return String.fromCharCode(num); } ).join(''); + + } + + window.onload = function() { + var str; + debug('onload'); + fail = 0; + pass = 0; + assertRun('window.btoa("hello world")', 'aGVsbG8gd29ybGQ='); + assertRun('window.btoa("a")', 'YQ=='); + assertRun('window.btoa("ab")', 'YWI='); + assertRun('window.btoa("abc")', 'YWJj'); + assertRun('window.btoa("abcd")', 'YWJjZA=='); + assertRun('window.btoa("abcde")', 'YWJjZGU='); + assertRun('window.btoa("abcdef")', 'YWJjZGVm'); + assertRun('window.btoa("abcdefg")', 'YWJjZGVmZw=='); + assertRun('window.btoa("abcdefgh")', 'YWJjZGVmZ2g='); + + assertRun('window.atob("aGVsbG8gd29ybGQ=")', 'hello world'); + assertRun('Base64_decode("aGVsbG8gd29ybGQ=")', 'hello world'); + assertRun('window.atob("YQ==")', 'a'); + assertRun('Base64_decode("YQ==")', 'a'); + assertRun('window.atob("YWI=")', 'ab'); + assertRun('Base64_decode("YWI=")', 'ab'); + assertRun('window.atob("YWJj")', 'abc'); + assertRun('Base64_decode("YWJj")', 'abc'); + assertRun('window.atob("YWJjZA==")', 'abcd'); + assertRun('Base64_decode("YWJjZA==")', 'abcd'); + assertRun('window.atob("YWJjZGU=")', 'abcde'); + assertRun('Base64_decode("YWJjZGU=")', 'abcde'); + assertRun('window.atob("YWJjZGVm")', 'abcdef'); + assertRun('Base64_decode("YWJjZGVm")', 'abcdef'); + + assertRun('typeof window.btoa', 'function'); + assertRun('window.btoa("")', ''); + assertRun('window.btoa(null)', ''); + assertRun('window.atob(window.btoa(window))', window.toString()); // "[object DOMWindow]" + assertRun('window.btoa("\\u0080\\u0081")', 'gIE='); + + debug("Tests failed: " + fail); + debug("Tests passed: " + pass); + } +</script> |