OLD | NEW |
| (Empty) |
1 /* | |
2 * Copyright (C) 2011 Google Inc. All rights reserved. | |
3 * | |
4 * Redistribution and use in source and binary forms, with or without | |
5 * modification, are permitted provided that the following conditions | |
6 * are met: | |
7 * 1. Redistributions of source code must retain the above copyright | |
8 * notice, this list of conditions and the following disclaimer. | |
9 * 2. Redistributions in binary form must reproduce the above copyright | |
10 * notice, this list of conditions and the following disclaimer in the | |
11 * documentation and/or other materials provided with the distribution. | |
12 * | |
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' | |
14 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, | |
15 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | |
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS | |
17 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |
18 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | |
19 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | |
20 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | |
21 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | |
22 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF | |
23 * THE POSSIBILITY OF SUCH DAMAGE. | |
24 */ | |
25 | |
26 (function () { | |
27 | |
28 module('ui.results'); | |
29 | |
30 asyncTest('FlakinessData', 1, function() { | |
31 var dashboard = new ui.results.FlakinessData(); | |
32 dashboard.addEventListener('load', function() { | |
33 // setTimeout to be after the FlakinessData's load handler. | |
34 setTimeout(function() { | |
35 window.postMessage({command: 'heightChanged', height: 15}, '*'); | |
36 // setTimeout to be after the postMessage has been handled. | |
37 setTimeout(function() { | |
38 equals(dashboard.offsetHeight, 15); | |
39 dashboard.remove(); | |
40 start(); | |
41 }, 0); | |
42 }, 0); | |
43 }); | |
44 document.body.appendChild(dashboard); | |
45 }); | |
46 | |
47 var kExampleResultsByTest = { | |
48 "scrollbars/custom-scrollbar-with-incomplete-style.html": { | |
49 "Mock Builder": { | |
50 "expected": "IMAGE", | |
51 "actual": "CRASH" | |
52 }, | |
53 "Mock Linux": { | |
54 "expected": "TEXT", | |
55 "actual": "CRASH" | |
56 } | |
57 }, | |
58 "userscripts/another-test.html": { | |
59 "Mock Builder": { | |
60 "expected": "PASS", | |
61 "actual": "TEXT" | |
62 } | |
63 } | |
64 }; | |
65 | |
66 var kExampleReftestResults = { | |
67 "reftest.html": { | |
68 "Mock Builder": { | |
69 "expected": "PASS", | |
70 "actual": "IMAGE", | |
71 "reftest_type": ["=="] | |
72 } | |
73 }, | |
74 "mismatch-reftest.html": { | |
75 "Mock Builder": { | |
76 "expected": "PASS", | |
77 "actual": "IMAGE", | |
78 "reftest_type": ["!="] | |
79 } | |
80 } | |
81 }; | |
82 | |
83 var kExampleResultsWithTimeoutByTest = { | |
84 "fast/not-fast-test.html": { | |
85 "Mock Builder": { | |
86 "expected": "PASS", | |
87 "actual": "TIMEOUT" | |
88 } | |
89 } | |
90 }; | |
91 | |
92 var kExampleGreaterThanFourResultsByTest = { | |
93 "scrollbars/custom-scrollbar-with-incomplete-style.html": { | |
94 "Mock Linux": { | |
95 "expected": "TEXT", | |
96 "actual": "CRASH" | |
97 } | |
98 }, | |
99 "scrollbars/1.html": { | |
100 "Mock Linux": { | |
101 "expected": "TEXT", | |
102 "actual": "CRASH" | |
103 } | |
104 }, | |
105 "scrollbars/2.html": { | |
106 "Mock Linux": { | |
107 "expected": "TEXT", | |
108 "actual": "CRASH" | |
109 } | |
110 }, | |
111 "scrollbars/3.html": { | |
112 "Mock Linux": { | |
113 "expected": "TEXT", | |
114 "actual": "CRASH" | |
115 } | |
116 }, | |
117 "userscripts/another-test.html": { | |
118 "Mock Builder": { | |
119 "expected": "PASS", | |
120 "actual": "TEXT" | |
121 } | |
122 } | |
123 }; | |
124 | |
125 test('View', 18, function() { | |
126 var delegate = { | |
127 fetchResultsURLs: function(failureInfo) { return Promise.resolve(); } | |
128 }; | |
129 | |
130 var view = new ui.results.View(delegate); | |
131 view.setResultsByTest(kExampleResultsByTest); | |
132 | |
133 view.firstResult(); | |
134 var testSelector = view.querySelector('.test-selector'); | |
135 var topPanel = testSelector.querySelector('.top-panel'); | |
136 equals(topPanel.childNodes[0], topPanel.querySelector('.active'));; | |
137 equals($($('.builder-selector', view)[0]).tabs('option', 'selected'), 0); | |
138 | |
139 view.nextResult(); | |
140 equals(topPanel.childNodes[0], topPanel.querySelector('.active'));; | |
141 equals($($('.builder-selector', view)[0]).tabs('option', 'selected'), 1); | |
142 equals(view.currentTestName(), 'scrollbars/custom-scrollbar-with-incomplete-
style.html'); | |
143 | |
144 view.nextResult(); | |
145 equals(topPanel.childNodes[1], topPanel.querySelector('.active'));; | |
146 equals($($('.builder-selector', view)[0]).tabs('option', 'selected'), 0); | |
147 equals(view.currentTestName(), 'userscripts/another-test.html'); | |
148 | |
149 view.previousResult(); | |
150 equals(topPanel.childNodes[0], topPanel.querySelector('.active'));; | |
151 equals($($('.builder-selector', view)[0]).tabs('option', 'selected'), 1); | |
152 | |
153 view.nextTest(); | |
154 equals(topPanel.childNodes[1], topPanel.querySelector('.active'));; | |
155 equals($($('.builder-selector', view)[0]).tabs('option', 'selected'), 0); | |
156 equals(view.currentTestName(), 'userscripts/another-test.html'); | |
157 | |
158 view.previousTest(); | |
159 equals(topPanel.childNodes[0], topPanel.querySelector('.active'));; | |
160 equals($($('.builder-selector', view)[0]).tabs('option', 'selected'), 1); | |
161 equals(view.currentTestName(), 'scrollbars/custom-scrollbar-with-incomplete-
style.html'); | |
162 | |
163 ok(!testSelector.querySelector('.resize-handle')); | |
164 equals(topPanel.style.minHeight, ''); | |
165 }); | |
166 | |
167 test('View with more than four tests', 2, function() { | |
168 var delegate = { | |
169 fetchResultsURLs: function(failureInfo) { return Promise.resolve(); } | |
170 }; | |
171 | |
172 var view = new ui.results.View(delegate); | |
173 view.setResultsByTest(kExampleGreaterThanFourResultsByTest); | |
174 | |
175 var testSelector = view.querySelector('.test-selector'); | |
176 var topPanel = testSelector.querySelector('.top-panel'); | |
177 | |
178 ok(testSelector.querySelector('.resize-handle')); | |
179 equals(topPanel.style.minHeight, '100px'); | |
180 }); | |
181 | |
182 test('View with reftests', 2, function() { | |
183 var delegate = { | |
184 fetchResultsURLs: function(failureInfo) { return Promise.resolve(); } | |
185 }; | |
186 | |
187 var view = new ui.results.View(delegate); | |
188 view.setResultsByTest(kExampleReftestResults); | |
189 view.firstResult(); | |
190 | |
191 equals(view.querySelectorAll('.non-action-button').length, 0); | |
192 equals(view.querySelectorAll('.action').length, 0); | |
193 }); | |
194 | |
195 asyncTest('View of timeouts', 1, function() { | |
196 var emptyPromise = Promise.resolve([]); | |
197 var delegate = { | |
198 fetchResultsURLs: function(failureInfo) { return emptyPromise; } | |
199 }; | |
200 | |
201 var view = new ui.results.View(delegate); | |
202 view.setResultsByTest(kExampleResultsWithTimeoutByTest); | |
203 view.firstResult(); | |
204 emptyPromise.then(function() { | |
205 equals(view.querySelector('.results-grid').innerHTML, 'No results to dis
play.'); | |
206 start(); | |
207 }); | |
208 }); | |
209 | |
210 })(); | |
OLD | NEW |