<!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>