65 lines
1.5 KiB
JavaScript
65 lines
1.5 KiB
JavaScript
var fakeCustomData = (function() {
|
|
var buffer = new ArrayBuffer(2);
|
|
new DataView(buffer).setInt16(0, 42, true);
|
|
var canvas = new OffscreenCanvas(100, 100);
|
|
var context = canvas.getContext("2d");
|
|
|
|
var map = new Map();
|
|
var set = new Set();
|
|
map.set("test", 42);
|
|
set.add(4);
|
|
set.add(2);
|
|
|
|
return {
|
|
primitives: {
|
|
a: 123,
|
|
b: "test",
|
|
c: true,
|
|
d: [1, 2, 3],
|
|
},
|
|
date: new Date(2013, 2, 1, 1, 10),
|
|
regexp: new RegExp("[^.]+"),
|
|
arrayBuffer: buffer,
|
|
imageData: context.createImageData(100, 100),
|
|
map,
|
|
set,
|
|
};
|
|
})();
|
|
|
|
function assert_custom_data(dataObj) {
|
|
assert_equals(typeof dataObj, "object", "data should be a JS object");
|
|
assert_equals(
|
|
JSON.stringify(dataObj.primitives),
|
|
JSON.stringify(fakeCustomData.primitives),
|
|
"data.primitives should be preserved"
|
|
);
|
|
assert_equals(
|
|
dataObj.date.toDateString(),
|
|
fakeCustomData.date.toDateString(),
|
|
"data.date should be preserved"
|
|
);
|
|
assert_equals(
|
|
dataObj.regexp.exec("http://www.domain.com")[0].substr(7),
|
|
"www",
|
|
"data.regexp should be preserved"
|
|
);
|
|
assert_equals(
|
|
new Int16Array(dataObj.arrayBuffer)[0],
|
|
42,
|
|
"data.arrayBuffer should be preserved"
|
|
);
|
|
assert_equals(
|
|
JSON.stringify(dataObj.imageData.data),
|
|
JSON.stringify(fakeCustomData.imageData.data),
|
|
"data.imageData should be preserved"
|
|
)
|
|
assert_equals(
|
|
dataObj.map.get("test"),
|
|
42,
|
|
"data.map should be preserved"
|
|
);
|
|
assert_true(
|
|
dataObj.set.has(4) && dataObj.set.has(2),
|
|
"data.set should be preserved"
|
|
);
|
|
}
|