custom-data.js (1580B)
1 var fakeCustomData = (function() { 2 var buffer = new ArrayBuffer(2); 3 new DataView(buffer).setInt16(0, 42, true); 4 var canvas = new OffscreenCanvas(100, 100); 5 var context = canvas.getContext("2d"); 6 7 var map = new Map(); 8 var set = new Set(); 9 map.set("test", 42); 10 set.add(4); 11 set.add(2); 12 13 return { 14 primitives: { 15 a: 123, 16 b: "test", 17 c: true, 18 d: [1, 2, 3], 19 }, 20 date: new Date(2013, 2, 1, 1, 10), 21 regexp: new RegExp("[^.]+"), 22 arrayBuffer: buffer, 23 imageData: context.createImageData(100, 100), 24 map, 25 set, 26 }; 27 })(); 28 29 function assert_custom_data(dataObj) { 30 assert_equals(typeof dataObj, "object", "data should be a JS object"); 31 assert_equals( 32 JSON.stringify(dataObj.primitives), 33 JSON.stringify(fakeCustomData.primitives), 34 "data.primitives should be preserved" 35 ); 36 assert_equals( 37 dataObj.date.toDateString(), 38 fakeCustomData.date.toDateString(), 39 "data.date should be preserved" 40 ); 41 assert_equals( 42 dataObj.regexp.exec("http://www.domain.com")[0].substr(7), 43 "www", 44 "data.regexp should be preserved" 45 ); 46 assert_equals( 47 new Int16Array(dataObj.arrayBuffer)[0], 48 42, 49 "data.arrayBuffer should be preserved" 50 ); 51 assert_equals( 52 JSON.stringify(dataObj.imageData.data), 53 JSON.stringify(fakeCustomData.imageData.data), 54 "data.imageData should be preserved" 55 ) 56 assert_equals( 57 dataObj.map.get("test"), 58 42, 59 "data.map should be preserved" 60 ); 61 assert_true( 62 dataObj.set.has(4) && dataObj.set.has(2), 63 "data.set should be preserved" 64 ); 65 }