blob: f4b3d6c9ab936983c8a548b3c10f06878c6f6246 (
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
|
let parentLocation = "";
// The first time this gets called in a page, the location of the parent
// should be passed in. This will be used as the target origin argument
// for the postMessage call for all subsequent calls to postMsg().
function postMsg(message, newParentLocation) {
if (newParentLocation) {
parentLocation = newParentLocation;
} else if (parentLocation == "") {
throw new Error("Failed to pass in newParentLocation");
}
parent.postMessage(message, parentLocation);
}
window.addEventListener("message", onMessageReceived);
function onMessageReceived(event) {
if (event.data == "step") {
var performed = false;
try {
performed = doStep();
} catch (ex) {
postMsg("FAILURE: exception threw at " + location + ":\n" + ex);
finishTest();
}
if (performed) {
postMsg("perf");
}
return;
}
if (parent) {
postMsg(event.data);
}
}
function ok(a, message) {
if (!a) {
postMsg("FAILURE: " + message);
} else {
postMsg(message);
}
}
function is(a, b, message) {
if (a != b) {
postMsg("FAILURE: " + message + ", expected " + b + " got " + a);
} else {
postMsg(message + ", expected " + b + " got " + a);
}
}
function todo(a, b, message) {
postMsg("TODO: " + message + ", expected " + b + " got " + a);
}
function finishTest() {
postMsg("done");
return false;
}
|