blob: 8b38d190e7450a63b53c40efb9e8e90f3b74dd66 (
plain) (
blame)
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
|
/* Test Utilities */
kutty.logAll();
function byId(id) {
return document.getElementById(id);
}
function make(htmlStr) {
var makeFn = function(){
var range = document.createRange();
var fragment = range.createContextualFragment(htmlStr);
var wa = getWorkArea();
for (var i = fragment.childNodes.length - 1; i >= 0; i--) {
var child = fragment.childNodes[i];
kutty.process(child);
wa.appendChild(child);
}
return wa.lastChild;
}
if (getWorkArea()) {
return makeFn();
} else {
ready(makeFn);
}
}
function ready(fn) {
if (document.readyState !== 'loading') {
fn();
} else {
document.addEventListener('DOMContentLoaded', fn);
}
}
function getWorkArea() {
return byId("work-area");
}
function clearWorkArea() {
getWorkArea().innerHTML = "";
}
function removeWhiteSpace(str) {
return str.replace(/\s/g, "");
}
function makeServer(){
var server = sinon.fakeServer.create();
server.fakeHTTPMethods = true;
server.getHTTPMethod = function(xhr) {
return xhr.requestHeaders['X-HTTP-Method-Override'] || xhr.method;
}
return server;
}
function parseParams(str) {
var re = /([^&=]+)=?([^&]*)/g;
var decode = function (str) {
return decodeURIComponent(str.replace(/\+/g, ' '));
};
var params = {}, e;
if (str) {
if (str.substr(0, 1) == '?') {
str = str.substr(1);
}
while (e = re.exec(str)) {
var k = decode(e[1]);
var v = decode(e[2]);
if (params[k] !== undefined) {
if (!Array.isArray(params[k])) {
params[k] = [params[k]];
}
params[k].push(v);
} else {
params[k] = v;
}
}
}
return params;
}
|