7b6edcbe72
Rename the $() selector to $D() so that it doesn't collide with the jQuery name. The API change is that the 'target' option for Canvas and RFB objects must now be a DOM Canvas element. A string is no longer accepted because this requires that a DOM lookup is done and the Canvas and RFB should have no UI code in them. Modularity.
92 lines
3.1 KiB
HTML
92 lines
3.1 KiB
HTML
<!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>
|