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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
var runTests = function(testFuncs, testNum) {
var failed = false;
var successCount = 0;
window.fail = function() {
failed = true;
document.getElementById('success').style.display = 'none';
document.getElementById('failed').style.display = 'block';
document.getElementById('running').style.display = 'none';
console.error(new Error());
};
window.failCallback = function() {
var err = new Error();
return function() {
console.error(err);
window.fail();
};
};
window.success = function() {
if (!failed && ++successCount == (typeof testNum !== 'undefined' ? 1 : testFuncs.length)) {
document.getElementById('success').style.display = 'block';
document.getElementById('running').style.display = 'none';
}
};
window.testNotInjected = function(id) {
};
window.testInjected = function(id) {
};
window.isEqualElseFail = function(count, num, callback) {
if (count === num) {
callback && callback();
return true;
} else if (count > num) {
window.fail();
return false;
}
};
for (var i = 0; i < testFuncs.length; ++i) {
if (typeof testNum !== 'undefined') {
// testing only one test
if (i === testNum) {
testFuncs[i]();
} else {
// set dummy function
window['SVGInject' + (i + 1)] = function() {};
window['SVGInject' + (i + 1)].err = function() {};
}
} else {
testFuncs[i]();
}
}
};
var domReady = function(callback) {
var ready = false;
var detach = function() {
if(document.addEventListener) {
document.removeEventListener("DOMContentLoaded", completed);
window.removeEventListener("load", completed);
} else {
document.detachEvent("onreadystatechange", completed);
window.detachEvent("onload", completed);
}
};
var completed = function() {
if(!ready && (document.addEventListener || event.type === "load" || document.readyState === "complete")) {
ready = true;
detach();
callback();
}
};
if(document.readyState === "complete") {
callback();
} else if(document.addEventListener) {
document.addEventListener("DOMContentLoaded", completed);
window.addEventListener("load", completed);
} else {
document.attachEvent("onreadystatechange", completed);
window.attachEvent("onload", completed);
var top = false;
try {
top = window.frameElement === null && document.documentElement;
} catch(e) {}
if(top && top.doScroll) {
(function scrollCheck() {
if(ready) return;
try {
top.doScroll("left");
} catch(e) {
return setTimeout(scrollCheck, 50);
}
ready = true;
detach();
callback();
})();
}
}
};