1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
var fakeCustomData = (function() {
var buffer = new ArrayBuffer(2);
new DataView(buffer).setInt16(0, 42, true);
var canvas = document.createElement("canvas");
canvas.width = canvas.height = 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"
);
}
|