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 var unittest = unittest || {}; | |
27 | |
28 (function () { | |
29 | |
30 module("results"); | |
31 | |
32 unittest.kExampleResultsJSON = { | |
33 "tests": { | |
34 "scrollbars": { | |
35 "custom-scrollbar-with-incomplete-style.html": { | |
36 "expected": "IMAGE", | |
37 "actual": "IMAGE" | |
38 }, | |
39 "expected-wontfix": { | |
40 "expected": "IMAGE", | |
41 "actual": "IMAGE", | |
42 "wontfix": true | |
43 }, | |
44 "unexpected-wontfix": { | |
45 "expected": "IMAGE", | |
46 "actual": "TEXT", | |
47 "wontfix": true | |
48 }, | |
49 "flaky-scrollbar.html": { | |
50 "expected": "PASS", | |
51 "actual": "PASS TEXT" | |
52 }, | |
53 "unexpected-failing-flaky-scrollbar.html": { | |
54 "expected": "TEXT", | |
55 "actual": "TIMEOUT TEXT" | |
56 }, | |
57 "unexpected-pass.html": { | |
58 "expected": "FAIL", | |
59 "actual": "PASS" | |
60 } | |
61 }, | |
62 "userscripts": { | |
63 "user-script-video-document.html": { | |
64 "expected": "FAIL", | |
65 "actual": "TEXT" | |
66 }, | |
67 "another-test.html": { | |
68 "expected": "PASS", | |
69 "actual": "TEXT" | |
70 } | |
71 }, | |
72 }, | |
73 "skipped": 339, | |
74 "num_regressions": 14, | |
75 "interrupted": false, | |
76 "layout_tests_dir": "\/mnt\/data\/b\/build\/slave\/Webkit_Linux\/build\/src\
/third_party\/WebKit\/LayoutTests", | |
77 "version": 3, | |
78 "num_passes": 15566, | |
79 "has_pretty_patch": false, | |
80 "fixable": 1233, | |
81 "num_flaky":1, | |
82 "uses_expectations_file": true, | |
83 "has_wdiff": true, | |
84 "revision": "90430" | |
85 }; | |
86 | |
87 test("ResultAnalyzer", 55, function() { | |
88 var analyzer; | |
89 | |
90 analyzer = new results.ResultAnalyzer({expected: 'PASS', actual: 'TEXT'}); | |
91 ok(analyzer.expectedToSucceed()); | |
92 ok(analyzer.hasUnexpectedFailures()); | |
93 deepEqual(analyzer.unexpectedResults(), ['TEXT']); | |
94 ok(!analyzer.succeeded()); | |
95 ok(!analyzer.flaky()); | |
96 | |
97 analyzer = new results.ResultAnalyzer({expected: 'PASS TIMEOUT', actual: 'TE
XT'}); | |
98 ok(analyzer.expectedToSucceed()); | |
99 ok(analyzer.hasUnexpectedFailures()); | |
100 deepEqual(analyzer.unexpectedResults(), ['TEXT']); | |
101 ok(!analyzer.succeeded()); | |
102 ok(!analyzer.flaky()); | |
103 | |
104 analyzer = new results.ResultAnalyzer({expected: 'TEXT', actual: 'TEXT TIMEO
UT'}); | |
105 ok(!analyzer.expectedToSucceed()); | |
106 ok(analyzer.hasUnexpectedFailures()); | |
107 deepEqual(analyzer.unexpectedResults(), ['TIMEOUT']); | |
108 ok(!analyzer.succeeded()); | |
109 ok(analyzer.flaky()); | |
110 | |
111 analyzer = new results.ResultAnalyzer({expected: 'PASS', actual: 'TEXT TIMEO
UT'}); | |
112 ok(analyzer.expectedToSucceed()); | |
113 ok(analyzer.hasUnexpectedFailures()); | |
114 deepEqual(analyzer.unexpectedResults(), ['TEXT', 'TIMEOUT']); | |
115 ok(!analyzer.succeeded()); | |
116 ok(analyzer.flaky()); | |
117 | |
118 analyzer = new results.ResultAnalyzer({expected: 'PASS TIMEOUT', actual: 'PA
SS TIMEOUT'}); | |
119 ok(analyzer.expectedToSucceed()); | |
120 ok(!analyzer.hasUnexpectedFailures()); | |
121 deepEqual(analyzer.unexpectedResults(), []); | |
122 ok(analyzer.succeeded()); | |
123 ok(analyzer.flaky()); | |
124 | |
125 analyzer = new results.ResultAnalyzer({expected: 'PASS TIMEOUT', actual: 'TI
MEOUT PASS'}); | |
126 ok(analyzer.expectedToSucceed()); | |
127 ok(!analyzer.hasUnexpectedFailures()); | |
128 deepEqual(analyzer.unexpectedResults(), []); | |
129 ok(analyzer.succeeded()); | |
130 ok(analyzer.flaky()); | |
131 | |
132 analyzer = new results.ResultAnalyzer({expected: 'FAIL', actual: 'TIMEOUT'})
; | |
133 ok(!analyzer.expectedToSucceed()); | |
134 ok(analyzer.hasUnexpectedFailures()); | |
135 deepEqual(analyzer.unexpectedResults(), ['TIMEOUT']); | |
136 ok(!analyzer.succeeded()); | |
137 ok(!analyzer.flaky()); | |
138 | |
139 analyzer = new results.ResultAnalyzer({expected: 'FAIL', actual: 'IMAGE'}); | |
140 ok(!analyzer.expectedToSucceed()); | |
141 ok(analyzer.hasUnexpectedFailures()); | |
142 deepEqual(analyzer.unexpectedResults(), ['IMAGE']); | |
143 ok(!analyzer.succeeded()); | |
144 ok(!analyzer.flaky()); | |
145 | |
146 analyzer = new results.ResultAnalyzer({expected: 'FAIL', actual: 'AUDIO'}); | |
147 ok(!analyzer.expectedToSucceed()); | |
148 ok(!analyzer.hasUnexpectedFailures()); | |
149 deepEqual(analyzer.unexpectedResults(), []); | |
150 ok(!analyzer.succeeded()); | |
151 ok(!analyzer.flaky()); | |
152 | |
153 analyzer = new results.ResultAnalyzer({expected: 'FAIL', actual: 'TEXT'}); | |
154 ok(!analyzer.expectedToSucceed()); | |
155 ok(!analyzer.hasUnexpectedFailures()); | |
156 deepEqual(analyzer.unexpectedResults(), []); | |
157 ok(!analyzer.succeeded()); | |
158 ok(!analyzer.flaky()); | |
159 | |
160 analyzer = new results.ResultAnalyzer({expected: 'FAIL', actual: 'IMAGE+TEXT
'}); | |
161 ok(!analyzer.expectedToSucceed()); | |
162 ok(!analyzer.hasUnexpectedFailures()); | |
163 deepEqual(analyzer.unexpectedResults(), []); | |
164 ok(!analyzer.succeeded()); | |
165 ok(!analyzer.flaky()); | |
166 }); | |
167 | |
168 test("expectedFailures", 1, function() { | |
169 var expectedFailures = results.expectedFailures(unittest.kExampleResultsJSON
); | |
170 deepEqual(expectedFailures, { | |
171 "scrollbars/custom-scrollbar-with-incomplete-style.html": { | |
172 "expected": "IMAGE", | |
173 "actual": "IMAGE" | |
174 }, | |
175 "userscripts/user-script-video-document.html": { | |
176 "expected": "FAIL", | |
177 "actual": "TEXT" | |
178 } | |
179 }); | |
180 }); | |
181 | |
182 test("unexpectedFailures", 1, function() { | |
183 var unexpectedFailures = results.unexpectedFailures(unittest.kExampleResults
JSON); | |
184 deepEqual(unexpectedFailures, { | |
185 "userscripts/another-test.html": { | |
186 "expected": "PASS", | |
187 "actual": "TEXT" | |
188 } | |
189 }); | |
190 }); | |
191 | |
192 test("unexpectedFailuresByTest", 1, function() { | |
193 var unexpectedFailuresByTest = results.unexpectedFailuresByTest({ | |
194 "Mock Builder": unittest.kExampleResultsJSON | |
195 }); | |
196 deepEqual(unexpectedFailuresByTest, { | |
197 "userscripts/another-test.html": { | |
198 "Mock Builder": { | |
199 "expected": "PASS", | |
200 "actual": "TEXT" | |
201 } | |
202 } | |
203 }); | |
204 }); | |
205 | |
206 test("unexpectedSuccessesByTest", 1, function() { | |
207 var unexpectedFailuresByTest = results.unexpectedSuccessesByTest({ | |
208 "Mock Builder": unittest.kExampleResultsJSON | |
209 }); | |
210 deepEqual(unexpectedFailuresByTest, { | |
211 "scrollbars/unexpected-pass.html": { | |
212 "Mock Builder": { | |
213 "expected": "FAIL", | |
214 "actual": "PASS" | |
215 } | |
216 } | |
217 }); | |
218 }); | |
219 | |
220 test("failureInfoForTestAndBuilder", 1, function() { | |
221 var unexpectedFailuresByTest = results.unexpectedFailuresByTest({ | |
222 "Mock Builder": unittest.kExampleResultsJSON | |
223 }); | |
224 var failureInfo = results.failureInfoForTestAndBuilder(unexpectedFailuresByT
est, "userscripts/another-test.html", "Mock Builder"); | |
225 deepEqual(failureInfo, { | |
226 "testName": "userscripts/another-test.html", | |
227 "builderName": "Mock Builder", | |
228 "failureTypeList": ["TEXT"], | |
229 }); | |
230 }); | |
231 | |
232 test("resultKind", 12, function() { | |
233 equals(results.resultKind("http://example.com/foo-actual.txt"), "actual"); | |
234 equals(results.resultKind("http://example.com/foo-expected.txt"), "expected"
); | |
235 equals(results.resultKind("http://example.com/foo-diff.txt"), "diff"); | |
236 equals(results.resultKind("http://example.com/foo.bar-actual.txt"), "actual"
); | |
237 equals(results.resultKind("http://example.com/foo.bar-expected.txt"), "expec
ted"); | |
238 equals(results.resultKind("http://example.com/foo.bar-diff.txt"), "diff"); | |
239 equals(results.resultKind("http://example.com/foo-actual.png"), "actual"); | |
240 equals(results.resultKind("http://example.com/foo-expected.png"), "expected"
); | |
241 equals(results.resultKind("http://example.com/foo-diff.png"), "diff"); | |
242 equals(results.resultKind("http://example.com/foo-pretty-diff.html"), "diff"
); | |
243 equals(results.resultKind("http://example.com/foo-wdiff.html"), "diff"); | |
244 equals(results.resultKind("http://example.com/foo-xyz.html"), "unknown"); | |
245 }); | |
246 | |
247 test("resultType", 12, function() { | |
248 equals(results.resultType("http://example.com/foo-actual.txt"), "text"); | |
249 equals(results.resultType("http://example.com/foo-expected.txt"), "text"); | |
250 equals(results.resultType("http://example.com/foo-diff.txt"), "text"); | |
251 equals(results.resultType("http://example.com/foo.bar-actual.txt"), "text"); | |
252 equals(results.resultType("http://example.com/foo.bar-expected.txt"), "text"
); | |
253 equals(results.resultType("http://example.com/foo.bar-diff.txt"), "text"); | |
254 equals(results.resultType("http://example.com/foo-actual.png"), "image"); | |
255 equals(results.resultType("http://example.com/foo-expected.png"), "image"); | |
256 equals(results.resultType("http://example.com/foo-diff.png"), "image"); | |
257 equals(results.resultType("http://example.com/foo-pretty-diff.html"), "text"
); | |
258 equals(results.resultType("http://example.com/foo-wdiff.html"), "text"); | |
259 equals(results.resultType("http://example.com/foo.xyz"), "text"); | |
260 }); | |
261 | |
262 test("resultNodeForTest", 4, function() { | |
263 deepEqual(results.resultNodeForTest(unittest.kExampleResultsJSON, "userscrip
ts/another-test.html"), { | |
264 "expected": "PASS", | |
265 "actual": "TEXT" | |
266 }); | |
267 equals(results.resultNodeForTest(unittest.kExampleResultsJSON, "foo.html"),
null); | |
268 equals(results.resultNodeForTest(unittest.kExampleResultsJSON, "userscripts/
foo.html"), null); | |
269 equals(results.resultNodeForTest(unittest.kExampleResultsJSON, "userscripts/
foo/bar.html"), null); | |
270 }); | |
271 | |
272 test("walkHistory", 6, function() { | |
273 var simulator = new NetworkSimulator(); | |
274 | |
275 var keyMap = { | |
276 "Mock_Builder": { | |
277 "11108": { | |
278 "tests": { | |
279 "userscripts": { | |
280 "another-test.html": { | |
281 "expected": "PASS", | |
282 "actual": "TEXT" | |
283 } | |
284 }, | |
285 }, | |
286 "revision": "90430" | |
287 }, | |
288 "11107":{ | |
289 "tests": { | |
290 "userscripts": { | |
291 "user-script-video-document.html": { | |
292 "expected": "FAIL", | |
293 "actual": "TEXT" | |
294 }, | |
295 "another-test.html": { | |
296 "expected": "PASS", | |
297 "actual": "TEXT" | |
298 } | |
299 }, | |
300 }, | |
301 "revision": "90429" | |
302 }, | |
303 "11106":{ | |
304 "tests": { | |
305 "userscripts": { | |
306 "another-test.html": { | |
307 "expected": "PASS", | |
308 "actual": "TEXT" | |
309 } | |
310 }, | |
311 }, | |
312 "revision": "90426" | |
313 }, | |
314 "11105":{ | |
315 "tests": { | |
316 "userscripts": { | |
317 "user-script-video-document.html": { | |
318 "expected": "FAIL", | |
319 "actual": "TEXT" | |
320 }, | |
321 }, | |
322 }, | |
323 "revision": "90424" | |
324 }, | |
325 }, | |
326 "Another_Builder": { | |
327 "22202":{ | |
328 "tests": { | |
329 "userscripts": { | |
330 "another-test.html": { | |
331 "expected": "PASS", | |
332 "actual": "TEXT" | |
333 } | |
334 }, | |
335 }, | |
336 "revision": "90426" | |
337 }, | |
338 "22201":{ | |
339 "tests": { | |
340 }, | |
341 "revision": "90425" | |
342 }, | |
343 }, | |
344 }; | |
345 | |
346 simulator.jsonp = function(url, callback) { | |
347 simulator.scheduleCallback(function() { | |
348 var result = keyMap[/[^/]+_Builder/.exec(url)][/\d+/.exec(url)]; | |
349 callback(result ? result : {}); | |
350 }); | |
351 }; | |
352 | |
353 simulator.get = function(url, callback) { | |
354 simulator.scheduleCallback(function() { | |
355 if (/Mock_Builder/.test(url)) | |
356 callback('<a href="11101/"></a><a href="11102/"></a><a href="111
03/"></a><a href="11104/"></a><a href="11105/"></a><a href="11106/"></a><a href=
"11107/"></a><a href="11108/"></a>'); | |
357 else if (/Another_Builder/.test(url)) | |
358 callback('<a href="22201/"></a><a href="22202/"></a>'); | |
359 else | |
360 ok(false, 'Unexpected URL: ' + url); | |
361 }); | |
362 }; | |
363 | |
364 simulator.runTest(function() { | |
365 results.regressionRangeForFailure("Mock Builder", "userscripts/another-t
est.html", function(oldestFailingRevision, newestPassingRevision) { | |
366 equals(oldestFailingRevision, 90426); | |
367 equals(newestPassingRevision, 90424); | |
368 }); | |
369 | |
370 results.unifyRegressionRanges(["Mock Builder", "Another Builder"], "user
scripts/another-test.html", function(oldestFailingRevision, newestPassingRevisio
n) { | |
371 equals(oldestFailingRevision, 90426); | |
372 equals(newestPassingRevision, 90425); | |
373 }); | |
374 | |
375 results.countFailureOccurences(["Mock Builder", "Another Builder"], "use
rscripts/another-test.html", function(failureCount) { | |
376 equals(failureCount, 4); | |
377 }); | |
378 }); | |
379 }); | |
380 | |
381 test("walkHistory (no revision)", 3, function() { | |
382 var simulator = new NetworkSimulator(); | |
383 | |
384 var keyMap = { | |
385 "Mock_Builder": { | |
386 "11103": { | |
387 "tests": { | |
388 "userscripts": { | |
389 "another-test.html": { | |
390 "expected": "PASS", | |
391 "actual": "TEXT" | |
392 } | |
393 }, | |
394 }, | |
395 "revision": "" | |
396 }, | |
397 "11102":{ | |
398 "tests": { | |
399 }, | |
400 "revision": "" | |
401 }, | |
402 }, | |
403 }; | |
404 | |
405 simulator.jsonp = function(url, callback) { | |
406 simulator.scheduleCallback(function() { | |
407 var result = keyMap[/[^/]+_Builder/.exec(url)][/\d+/.exec(url)]; | |
408 callback(result ? result : {}); | |
409 }); | |
410 }; | |
411 | |
412 simulator.get = function(url, callback) { | |
413 simulator.scheduleCallback(function() { | |
414 callback('<a href="11101/"></a><a href="11102/"></a><a href="11103/"
></a>'); | |
415 }); | |
416 }; | |
417 | |
418 | |
419 simulator.runTest(function() { | |
420 results.regressionRangeForFailure("Mock Builder", "userscripts/another-t
est.html", function(oldestFailingRevision, newestPassingRevision) { | |
421 equals(oldestFailingRevision, 0); | |
422 equals(newestPassingRevision, 0); | |
423 }); | |
424 }); | |
425 }); | |
426 | |
427 test("collectUnexpectedResults", 1, function() { | |
428 var dictionaryOfResultNodes = { | |
429 "foo": { | |
430 "expected": "IMAGE", | |
431 "actual": "IMAGE" | |
432 }, | |
433 "bar": { | |
434 "expected": "PASS", | |
435 "actual": "PASS TEXT" | |
436 }, | |
437 "baz": { | |
438 "expected": "TEXT", | |
439 "actual": "IMAGE" | |
440 }, | |
441 "qux": { | |
442 "expected": "PASS", | |
443 "actual": "TEXT" | |
444 }, | |
445 "taco": { | |
446 "expected": "PASS", | |
447 "actual": "TEXT" | |
448 }, | |
449 }; | |
450 | |
451 var collectedResults = results.collectUnexpectedResults(dictionaryOfResultNo
des); | |
452 deepEqual(collectedResults, ["TEXT", "IMAGE"]); | |
453 }); | |
454 | |
455 test("failureTypeToExtensionList", 5, function() { | |
456 deepEqual(results.failureTypeToExtensionList('TEXT'), ['txt']); | |
457 deepEqual(results.failureTypeToExtensionList('IMAGE+TEXT'), ['txt', 'png']); | |
458 deepEqual(results.failureTypeToExtensionList('IMAGE'), ['png']); | |
459 deepEqual(results.failureTypeToExtensionList('CRASH'), []); | |
460 deepEqual(results.failureTypeToExtensionList('TIMEOUT'), []); | |
461 }); | |
462 | |
463 test("canRebaseline", 6, function() { | |
464 ok(results.canRebaseline(['TEXT'])); | |
465 ok(results.canRebaseline(['IMAGE+TEXT', 'CRASH'])); | |
466 ok(results.canRebaseline(['IMAGE'])); | |
467 ok(!results.canRebaseline(['CRASH'])); | |
468 ok(!results.canRebaseline(['TIMEOUT'])); | |
469 ok(!results.canRebaseline([])); | |
470 }); | |
471 | |
472 test("fetchResultsURLs", 5, function() { | |
473 var simulator = new NetworkSimulator(); | |
474 | |
475 var probedURLs = []; | |
476 simulator.probe = function(url, options) | |
477 { | |
478 simulator.scheduleCallback(function() { | |
479 probedURLs.push(url); | |
480 if (base.endsWith(url, '.txt')) | |
481 options.success.call(); | |
482 else if (/taco.+png$/.test(url)) | |
483 options.success.call(); | |
484 else | |
485 options.error.call(); | |
486 }); | |
487 }; | |
488 | |
489 simulator.runTest(function() { | |
490 results.fetchResultsURLs({ | |
491 'builderName': "Mock Builder", | |
492 'testName': "userscripts/another-test.html", | |
493 'failureTypeList': ['IMAGE', 'CRASH'], | |
494 }, function(resultURLs) { | |
495 deepEqual(resultURLs, [ | |
496 "http://build.chromium.org/f/chromium/layout_test_results/Mock_B
uilder/results/layout-test-results/userscripts/another-test-crash-log.txt" | |
497 ]); | |
498 }); | |
499 results.fetchResultsURLs({ | |
500 'builderName': "Mock Builder", | |
501 'testName': "userscripts/another-test.html", | |
502 'failureTypeList': ['TIMEOUT'], | |
503 }, function(resultURLs) { | |
504 deepEqual(resultURLs, []); | |
505 }); | |
506 results.fetchResultsURLs({ | |
507 'builderName': "Mock Builder", | |
508 'testName': "userscripts/taco.html", | |
509 'failureTypeList': ['IMAGE', 'IMAGE+TEXT'], | |
510 }, function(resultURLs) { | |
511 deepEqual(resultURLs, [ | |
512 "http://build.chromium.org/f/chromium/layout_test_results/Mock_B
uilder/results/layout-test-results/userscripts/taco-expected.png", | |
513 "http://build.chromium.org/f/chromium/layout_test_results/Mock_B
uilder/results/layout-test-results/userscripts/taco-actual.png", | |
514 "http://build.chromium.org/f/chromium/layout_test_results/Mock_B
uilder/results/layout-test-results/userscripts/taco-diff.png", | |
515 "http://build.chromium.org/f/chromium/layout_test_results/Mock_B
uilder/results/layout-test-results/userscripts/taco-expected.txt", | |
516 "http://build.chromium.org/f/chromium/layout_test_results/Mock_B
uilder/results/layout-test-results/userscripts/taco-actual.txt", | |
517 "http://build.chromium.org/f/chromium/layout_test_results/Mock_B
uilder/results/layout-test-results/userscripts/taco-diff.txt", | |
518 ]); | |
519 }); | |
520 }); | |
521 | |
522 deepEqual(probedURLs, [ | |
523 "http://build.chromium.org/f/chromium/layout_test_results/Mock_Builder/r
esults/layout-test-results/userscripts/another-test-expected.png", | |
524 "http://build.chromium.org/f/chromium/layout_test_results/Mock_Builder/r
esults/layout-test-results/userscripts/another-test-actual.png", | |
525 "http://build.chromium.org/f/chromium/layout_test_results/Mock_Builder/r
esults/layout-test-results/userscripts/another-test-diff.png", | |
526 "http://build.chromium.org/f/chromium/layout_test_results/Mock_Builder/r
esults/layout-test-results/userscripts/another-test-crash-log.txt", | |
527 "http://build.chromium.org/f/chromium/layout_test_results/Mock_Builder/r
esults/layout-test-results/userscripts/taco-expected.png", | |
528 "http://build.chromium.org/f/chromium/layout_test_results/Mock_Builder/r
esults/layout-test-results/userscripts/taco-actual.png", | |
529 "http://build.chromium.org/f/chromium/layout_test_results/Mock_Builder/r
esults/layout-test-results/userscripts/taco-diff.png", | |
530 "http://build.chromium.org/f/chromium/layout_test_results/Mock_Builder/r
esults/layout-test-results/userscripts/taco-actual.txt", | |
531 "http://build.chromium.org/f/chromium/layout_test_results/Mock_Builder/r
esults/layout-test-results/userscripts/taco-expected.txt", | |
532 "http://build.chromium.org/f/chromium/layout_test_results/Mock_Builder/r
esults/layout-test-results/userscripts/taco-diff.txt", | |
533 ]); | |
534 }); | |
535 | |
536 test("fetchResultsByBuilder", 5, function() { | |
537 var simulator = new NetworkSimulator(); | |
538 | |
539 var probedURLs = []; | |
540 simulator.jsonp = function(url, callback) | |
541 { | |
542 simulator.scheduleCallback(function() { | |
543 probedURLs.push(url); | |
544 if (base.endsWith(url, 'MockBuilder2/r1%20(1)/full_results.json')) | |
545 callback({'MockBuildResults': true}); | |
546 else | |
547 callback({}); | |
548 }); | |
549 }; | |
550 | |
551 config.currentPlatform = 'gtk'; | |
552 | |
553 var oldCachedBuildInfos = builders.cachedBuildInfos; | |
554 builders.cachedBuildInfos = function(platform, builderName, callback) { | |
555 callback( | |
556 { | |
557 1: { | |
558 sourceStamp: { | |
559 revision: 1 | |
560 } | |
561 }, | |
562 2: { | |
563 sourceStamp: { | |
564 revision: 2 | |
565 } | |
566 } | |
567 | |
568 }); | |
569 }; | |
570 | |
571 var oldRecentBuildInfos = builders.recentBuildInfos; | |
572 builders.recentBuildInfos = function(callback) { | |
573 callback({ | |
574 'MockBuilder1': true, | |
575 'MockBuilder2': true | |
576 }); | |
577 }; | |
578 | |
579 simulator.runTest(function() { | |
580 results.fetchResultsByBuilder(['MockBuilder1', 'MockBuilder2'], function
(resultsByBuilder) { | |
581 deepEqual(resultsByBuilder, { | |
582 "MockBuilder2": { | |
583 "MockBuildResults": true, | |
584 "_buildLocation": { | |
585 "buildNumber": "1", | |
586 "revision": 1, | |
587 "url": "http://build.webkit.org/results/MockBuilder2/r1%
20(1)/full_results.json" | |
588 } | |
589 } | |
590 }); | |
591 }); | |
592 }); | |
593 | |
594 deepEqual(probedURLs, [ | |
595 "http://build.webkit.org/results/MockBuilder1/r2%20(2)/full_results.json
", | |
596 "http://build.webkit.org/results/MockBuilder2/r2%20(2)/full_results.json
", | |
597 "http://build.webkit.org/results/MockBuilder1/r1%20(1)/full_results.json
", | |
598 "http://build.webkit.org/results/MockBuilder2/r1%20(1)/full_results.json
" | |
599 ]); | |
600 | |
601 builders.cachedBuildInfos = oldCachedBuildInfos; | |
602 equal(builders.cachedBuildInfos, oldCachedBuildInfos, "Failed to restore rea
l base!"); | |
603 | |
604 builders.recentBuildInfos = oldRecentBuildInfos; | |
605 equal(builders.recentBuildInfos, oldRecentBuildInfos, "Failed to restore rea
l base!"); | |
606 }); | |
607 | |
608 })(); | |
OLD | NEW |