aboutsummaryrefslogtreecommitdiff
path: root/third_party/websockify/tests/base64.html
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/websockify/tests/base64.html')
-rw-r--r--third_party/websockify/tests/base64.html91
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>