summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/notifications/resources/custom-data.js
blob: b21d28a1bb390575f34206c87aae1f7fd8655fd7 (plain)
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"
  );
}