| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 146 ok(!analyzer.succeeded()); | 146 ok(!analyzer.succeeded()); |
| 147 ok(!analyzer.flaky()); | 147 ok(!analyzer.flaky()); |
| 148 | 148 |
| 149 analyzer = new results.ResultAnalyzer({expected: 'FAIL', actual: 'IMAGE+TEXT
'}); | 149 analyzer = new results.ResultAnalyzer({expected: 'FAIL', actual: 'IMAGE+TEXT
'}); |
| 150 ok(!analyzer.hasUnexpectedFailures()); | 150 ok(!analyzer.hasUnexpectedFailures()); |
| 151 deepEqual(analyzer.unexpectedResults(), []); | 151 deepEqual(analyzer.unexpectedResults(), []); |
| 152 ok(!analyzer.succeeded()); | 152 ok(!analyzer.succeeded()); |
| 153 ok(!analyzer.flaky()); | 153 ok(!analyzer.flaky()); |
| 154 }); | 154 }); |
| 155 | 155 |
| 156 test("trimExtension", 6, function() { |
| 157 equals(results._trimExtension("xyz"), "xyz"); |
| 158 equals(results._trimExtension("xy.z"), "xy"); |
| 159 equals(results._trimExtension("x.yz"), "x"); |
| 160 equals(results._trimExtension("x.y.z"), "x.y"); |
| 161 equals(results._trimExtension(".xyz"), ""); |
| 162 equals(results._trimExtension(""), ""); |
| 163 }); |
| 164 |
| 165 test("joinPath", 1, function() { |
| 166 var value = results._joinPath("path/to", "test.html"); |
| 167 equals(value, "path/to/test.html"); |
| 168 }); |
| 169 |
| 170 test("joinPath with empty parent", 1, function() { |
| 171 var value = results._joinPath("", "test.html"); |
| 172 equals(value, "test.html"); |
| 173 }); |
| 174 |
| 175 test("filterTree", 2, function() { |
| 176 var tree = { |
| 177 'path': { |
| 178 'to': { |
| 179 'test.html': { |
| 180 'actual': 'PASS', |
| 181 'expected': 'FAIL' |
| 182 } |
| 183 }, |
| 184 'another.html': { |
| 185 'actual': 'TEXT', |
| 186 'expected': 'PASS' |
| 187 } |
| 188 } |
| 189 } |
| 190 |
| 191 function isLeaf(node) |
| 192 { |
| 193 return !!node.actual; |
| 194 } |
| 195 |
| 196 function actualIsText(node) |
| 197 { |
| 198 return node.actual == 'TEXT'; |
| 199 } |
| 200 |
| 201 var all = results._filterTree(tree, isLeaf, function() { return true }); |
| 202 deepEqual(all, { |
| 203 'path/to/test.html': { |
| 204 'actual': 'PASS', |
| 205 'expected': 'FAIL' |
| 206 }, |
| 207 'path/another.html': { |
| 208 'actual': 'TEXT', |
| 209 'expected': 'PASS' |
| 210 } |
| 211 }); |
| 212 |
| 213 var text = results._filterTree(tree, isLeaf, actualIsText); |
| 214 deepEqual(text, { |
| 215 'path/another.html': { |
| 216 'actual': 'TEXT', |
| 217 'expected': 'PASS' |
| 218 } |
| 219 }); |
| 220 }); |
| 221 |
| 156 test("unexpectedFailures", 1, function() { | 222 test("unexpectedFailures", 1, function() { |
| 157 var unexpectedFailures = results.unexpectedFailures(unittest.kExampleResults
JSON); | 223 var unexpectedFailures = results.unexpectedFailures(unittest.kExampleResults
JSON); |
| 158 deepEqual(unexpectedFailures, { | 224 deepEqual(unexpectedFailures, { |
| 159 "userscripts/another-test.html": { | 225 "userscripts/another-test.html": { |
| 160 "expected": "PASS", | 226 "expected": "PASS", |
| 161 "actual": "TEXT", | 227 "actual": "TEXT", |
| 162 "is_unexpected": true, | 228 "is_unexpected": true, |
| 163 } | 229 } |
| 164 }); | 230 }); |
| 165 }); | 231 }); |
| (...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 384 }); | 450 }); |
| 385 }); | 451 }); |
| 386 | 452 |
| 387 asyncTest("fetchResultsURLs", 5, function() { | 453 asyncTest("fetchResultsURLs", 5, function() { |
| 388 var simulator = new NetworkSimulator(); | 454 var simulator = new NetworkSimulator(); |
| 389 | 455 |
| 390 var probedURLs = []; | 456 var probedURLs = []; |
| 391 simulator.probe = function(url) | 457 simulator.probe = function(url) |
| 392 { | 458 { |
| 393 probedURLs.push(url); | 459 probedURLs.push(url); |
| 394 if (base.endsWith(url, '.txt')) | 460 if (url.endsWith('.txt')) |
| 395 return Promise.resolve(); | 461 return Promise.resolve(); |
| 396 else if (/taco.+png$/.test(url)) | 462 else if (/taco.+png$/.test(url)) |
| 397 return Promise.resolve(); | 463 return Promise.resolve(); |
| 398 else | 464 else |
| 399 return Promise.reject(); | 465 return Promise.reject(); |
| 400 }; | 466 }; |
| 401 | 467 |
| 402 simulator.runTest(function() { | 468 simulator.runTest(function() { |
| 403 results.fetchResultsURLs({ | 469 results.fetchResultsURLs({ |
| 404 'builderName': "Mock Builder", | 470 'builderName': "Mock Builder", |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 447 }); | 513 }); |
| 448 }); | 514 }); |
| 449 | 515 |
| 450 asyncTest("fetchResultsByBuilder", 3, function() { | 516 asyncTest("fetchResultsByBuilder", 3, function() { |
| 451 var simulator = new NetworkSimulator(); | 517 var simulator = new NetworkSimulator(); |
| 452 | 518 |
| 453 var probedURLs = []; | 519 var probedURLs = []; |
| 454 simulator.jsonp = function(url) | 520 simulator.jsonp = function(url) |
| 455 { | 521 { |
| 456 probedURLs.push(url); | 522 probedURLs.push(url); |
| 457 return Promise.resolve(base.endsWith(url, 'results/layout-test-results/f
ailing_results.json')); | 523 return Promise.resolve(url.endsWith('results/layout-test-results/failing
_results.json')); |
| 458 }; | 524 }; |
| 459 | 525 |
| 460 simulator.runTest(function() { | 526 simulator.runTest(function() { |
| 461 results.fetchResultsByBuilder(['MockBuilder1', 'MockBuilder2']).then(fun
ction(resultsByBuilder) { | 527 results.fetchResultsByBuilder(['MockBuilder1', 'MockBuilder2']).then(fun
ction(resultsByBuilder) { |
| 462 deepEqual(resultsByBuilder, { | 528 deepEqual(resultsByBuilder, { |
| 463 "MockBuilder1": true, | 529 "MockBuilder1": true, |
| 464 "MockBuilder2": true, | 530 "MockBuilder2": true, |
| 465 }); | 531 }); |
| 466 }); | 532 }); |
| 467 }).then(start); | 533 }).then(start); |
| 468 | 534 |
| 469 deepEqual(probedURLs, [ | 535 deepEqual(probedURLs, [ |
| 470 MockResultsBaseURL.replace('Mock_Builder', 'MockBuilder1') + "/failing_r
esults.json", | 536 MockResultsBaseURL.replace('Mock_Builder', 'MockBuilder1') + "/failing_r
esults.json", |
| 471 MockResultsBaseURL.replace('Mock_Builder', 'MockBuilder2') + "/failing_r
esults.json" | 537 MockResultsBaseURL.replace('Mock_Builder', 'MockBuilder2') + "/failing_r
esults.json" |
| 472 ]); | 538 ]); |
| 473 | 539 |
| 474 }); | 540 }); |
| 475 | 541 |
| 476 })(); | 542 })(); |
| OLD | NEW |