ce4c83ff
wxy
初始提交
|
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
115
116
117
118
|
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<script>
// allow sauce to query for the jasmine report
// because we have to load the page before starting the test, so the thing
// sauce queries for might not be setup yet
var JASMINE;
if(Object.defineProperty) {
Object.defineProperty(window, 'jasmine', {
get: function() { return JASMINE; },
set: function(jsm) {
JASMINE = jsm || {};
if(!JASMINE.getJSReport || typeof JASMINE.getJSReport !== 'function') {
JASMINE.getJSReport = function() { };
}
}
});
}
else {
window.jasmine = { getJSReport: function() { } };
}
</script>
<title>Jasmine Spec Runner</title>
<!-- generate script tags for tests -->
<% var generateScriptTags = function(allScripts) { allScripts.forEach(function(script){ %>
<script src="<%= script %>"></script>
<% }); }; %>
<!-- generate script tags for tests -->
<% var toArray = function(scripts) {
%>[<%
scripts.forEach(function(scriptUrl, index){
%>"<%= scriptUrl %>"<%
if (index !== scripts.length -1) {
%>,<%
}
});
%>]<%
}; %>
<!-- for each test, generate CSS/LESS link tags -->
<% scripts.src.forEach(function(fullLessName) {
var pathParts = fullLessName.split('/');
var fullCssName = fullLessName.replace(/less/g, 'css');
var lessName = pathParts[pathParts.length - 1];
var name = lessName.split('.')[0]; %>
<!-- the tags to be generated -->
<link id="original-less:test-less-<%= name %>" title="test-less-<%= name %>" rel="stylesheet/less" type="text/css" href="<%= fullLessName %>">
<link id="expected-less:test-less-<%= name %>" rel="stylesheet" type="text/css" href="<%= fullCssName %>">
<% }); %>
<!-- generate grunt-contrib-jasmine link tags -->
<% css.forEach(function(style){ %>
<link rel="stylesheet" type="text/css" href="<%= style %>">
<% }) %>
<script>
function loadScript(url,callback){
var script = document.createElement('script');
if(document.documentMode === 8){
script.onreadystatechange = function(){
if (script.readyState === 'loaded'){
if (callback){callback()};
};
};
} else {
script.onload = function(){
if (callback){callback()};
};
};
script.src = url;
document.body.appendChild(script);
};
var jasmine = <% toArray([].concat(scripts.polyfills, scripts.jasmine, scripts.boot)) %>,
helpers = <% toArray(scripts.helpers) %>,
vendor = <% toArray(scripts.vendor) %>,
specs = <% toArray(scripts.specs) %>,
reporters = <% toArray([].concat(scripts.reporters)) %>,
setupScripts = jasmine.concat(helpers).concat(vendor),
runScripts = specs.concat(reporters);
</script>
<% generateScriptTags(scripts.polyfills); %>
<% generateScriptTags(scripts.jasmine); %>
<% generateScriptTags(scripts.boot); %>
<% generateScriptTags(scripts.helpers); %>
<% generateScriptTags(scripts.vendor); %>
<script>
setTimeout(function() {
function addNextScript() {
// for sauce, see above. Additional step needed between loading jasmine and loading
// the js reporter
if (runScripts.length) {
var scriptSrc = runScripts.shift();
loadScript(scriptSrc, addNextScript);
} else {
window.onload();
}
}
addNextScript();
},1000);
</script>
</head>
<body>
<!-- content -->
</body>
</html>
|