| OLD | NEW |
| 1 <!-- | 1 <!-- |
| 2 Copyright 2014 The Chromium Authors. All rights reserved. | 2 Copyright 2014 The Chromium Authors. All rights reserved. |
| 3 Use of this source code is governed by a BSD-style license that can be | 3 Use of this source code is governed by a BSD-style license that can be |
| 4 found in the LICENSE file. | 4 found in the LICENSE file. |
| 5 --> | 5 --> |
| 6 | 6 |
| 7 <link rel="import" href="ct-results-detail.html"> | 7 <link rel="import" href="../ct-results-detail.html"> |
| 8 | 8 |
| 9 <link rel="import" href="../model/ct-failure.html"> | 9 <link rel="import" href="../../model/ct-failure.html"> |
| 10 | 10 |
| 11 <script> | 11 <script> |
| 12 (function () { | 12 (function () { |
| 13 | 13 |
| 14 module("ct-results-detail"); | 14 var assert = chai.assert; |
| 15 | 15 |
| 16 asyncTest("image+text", 4, function() { | 16 describe('ct-results-detail', function() { |
| 17 var simulator = new NetworkSimulator(); | 17 describe('webkit failures', function() { |
| 18 var probedUrls = []; | 18 var resultsDetail |
| 19 var probedUrls; |
| 19 | 20 |
| 20 simulator.probe = function(url) | 21 // Set to test different types. |
| 21 { | 22 var resultType = ''; |
| 22 probedUrls.push(url); | 23 var extensions = []; |
| 23 if (url.endsWith('.txt') || url.endsWith('.png')) | 24 |
| 24 return Promise.resolve(); | 25 beforeEach(function(done) { |
| 25 else | 26 var simulator = new NetworkSimulator(assert, done); |
| 27 probedUrls = []; |
| 28 |
| 29 simulator.probe = function(url) { |
| 30 probedUrls.push(url); |
| 31 for (var i = 0; i < extensions.length; i++) { |
| 32 if (url.endsWith(extensions[i])) |
| 33 return Promise.resolve(); |
| 34 } |
| 26 return Promise.reject(); | 35 return Promise.reject(); |
| 27 }; | 36 }; |
| 28 | 37 |
| 29 simulator.runTest(function() { | 38 // FIXME: Use a proper mock model object. |
| 30 var comparisonResult = document.createElement('ct-results-detail'); | 39 var failure = new CTFailure( |
| 31 comparisonResult.builder = 'dummy builder'; | 40 "testName", "dummy/test.html", |
| 32 // FIXME: Use a proper mock model object. | 41 { |
| 33 comparisonResult.failure = new CTFailure( | 42 "dummy builder": { |
| 34 "testName", "dummy/test.html", | 43 "actual": resultType, |
| 35 { | 44 }, |
| 36 "dummy builder": { | 45 }, 177164, 177165 |
| 37 "actual": "IMAGE+TEXT", | 46 ); |
| 38 }, | |
| 39 }, 177164, 177165 | |
| 40 ); | |
| 41 | 47 |
| 42 comparisonResult.async(function() { | 48 simulator.runTest(function() { |
| 43 deepEqual(probedUrls, [ | 49 resultsDetail = document.createElement('ct-results-detail'); |
| 50 resultsDetail.builder = 'dummy builder'; |
| 51 resultsDetail.failure = failure; |
| 52 }); |
| 53 |
| 54 setTimeout(done); |
| 55 }); |
| 56 |
| 57 describe('image+text', function() { |
| 58 before(function() { |
| 59 resultType = "IMAGE+TEXT"; |
| 60 extensions = ['.txt', '.png']; |
| 61 }); |
| 62 |
| 63 it('should fetch the correct URLs', function() { |
| 64 assert.deepEqual(probedUrls, [ |
| 44 'https://storage.googleapis.com/chromium-layout-test-archives/dummy_bu
ilder/results/layout-test-results/dummy/test-expected.png', | 65 'https://storage.googleapis.com/chromium-layout-test-archives/dummy_bu
ilder/results/layout-test-results/dummy/test-expected.png', |
| 45 'https://storage.googleapis.com/chromium-layout-test-archives/dummy_bu
ilder/results/layout-test-results/dummy/test-actual.png', | 66 'https://storage.googleapis.com/chromium-layout-test-archives/dummy_bu
ilder/results/layout-test-results/dummy/test-actual.png', |
| 46 'https://storage.googleapis.com/chromium-layout-test-archives/dummy_bu
ilder/results/layout-test-results/dummy/test-diff.png', | 67 'https://storage.googleapis.com/chromium-layout-test-archives/dummy_bu
ilder/results/layout-test-results/dummy/test-diff.png', |
| 47 'https://storage.googleapis.com/chromium-layout-test-archives/dummy_bu
ilder/results/layout-test-results/dummy/test-actual.txt', | 68 'https://storage.googleapis.com/chromium-layout-test-archives/dummy_bu
ilder/results/layout-test-results/dummy/test-actual.txt', |
| 48 'https://storage.googleapis.com/chromium-layout-test-archives/dummy_bu
ilder/results/layout-test-results/dummy/test-expected.txt', | 69 'https://storage.googleapis.com/chromium-layout-test-archives/dummy_bu
ilder/results/layout-test-results/dummy/test-expected.txt', |
| 49 'https://storage.googleapis.com/chromium-layout-test-archives/dummy_bu
ilder/results/layout-test-results/dummy/test-diff.txt', | 70 'https://storage.googleapis.com/chromium-layout-test-archives/dummy_bu
ilder/results/layout-test-results/dummy/test-diff.txt', |
| 50 ]); | 71 ]); |
| 51 | 72 |
| 52 var comparisons = comparisonResult.shadowRoot.querySelectorAll('ct-results
-comparison'); | 73 assert.lengthOf(resultsDetail.shadowRoot.querySelectorAll('ct-results-co
mparison'), 2); |
| 53 equal(comparisons.length, 2); | 74 assert.lengthOf(resultsDetail.shadowRoot.querySelectorAll('ct-test-outpu
t'), 0); |
| 54 equal(comparisonResult.shadowRoot.querySelectorAll('ct-test-output').lengt
h, 0); | 75 }); |
| 76 }); |
| 55 | 77 |
| 56 start(); | 78 describe('crash', function() { |
| 79 before(function() { |
| 80 resultType = "CRASH"; |
| 81 extensions = ['.txt']; |
| 82 }); |
| 83 |
| 84 it('should fetch the correct URLs', function() { |
| 85 assert.deepEqual(probedUrls, [ |
| 86 'https://storage.googleapis.com/chromium-layout-test-archives/dummy_bu
ilder/results/layout-test-results/dummy/test-crash-log.txt', |
| 87 ]); |
| 88 |
| 89 assert.lengthOf(resultsDetail.shadowRoot.querySelectorAll('ct-test-outpu
t'), 1); |
| 90 assert.lengthOf(resultsDetail.shadowRoot.querySelectorAll('ct-results-co
mparison'), 0); |
| 91 }); |
| 92 }); |
| 93 }); |
| 94 |
| 95 describe('failures', function() { |
| 96 var result; |
| 97 var expectedUrl; |
| 98 |
| 99 afterEach(function() { |
| 100 var outputs = result.shadowRoot.querySelectorAll('ct-test-output'); |
| 101 assert.lengthOf(outputs, 1); |
| 102 assert.equal(outputs[0].url, expectedUrl); |
| 103 assert.lengthOf(result.shadowRoot.querySelectorAll('ct-results-comparison'
), 0); |
| 104 }); |
| 105 |
| 106 describe('unknown failures', function() { |
| 107 it('should show the failure output', function(done) { |
| 108 result = document.createElement('ct-results-detail'); |
| 109 |
| 110 result.builder = 'dummy builder'; |
| 111 |
| 112 var resultsByBuilder = { |
| 113 "dummy builder": { |
| 114 actual: "UNKNOWN", |
| 115 lastFailingBuild: 124, |
| 116 masterUrl: 'http://masterurl/' |
| 117 }, |
| 118 }; |
| 119 result.failure = new CTFailure('foo_step', 'test.html', resultsByBuilder
, 123, 124); |
| 120 expectedUrl = 'http://masterurl//builders/dummy%20builder/builds/124/ste
ps/foo_step/logs/stdio'; |
| 121 |
| 122 setTimeout(done); |
| 123 }); |
| 124 }); |
| 125 |
| 126 describe('failures', function() { |
| 127 it('should show the failure output', function(done) { |
| 128 result = document.createElement('ct-results-detail'); |
| 129 |
| 130 result.builder = 'dummy builder'; |
| 131 |
| 132 var resultsByBuilder = { |
| 133 "dummy builder": { |
| 134 actual: "FAIL", |
| 135 lastFailingBuild: 124, |
| 136 masterUrl: 'http://masterurl/' |
| 137 }, |
| 138 }; |
| 139 result.failure = new CTFailure('foo_step', 'TestSuite.TestName', results
ByBuilder, 123, 124); |
| 140 expectedUrl = 'http://masterurl//builders/dummy%20builder/builds/124/ste
ps/foo_step/logs/TestName'; |
| 141 |
| 142 setTimeout(done); |
| 143 }); |
| 57 }); | 144 }); |
| 58 }); | 145 }); |
| 59 }); | 146 }); |
| 60 | 147 |
| 61 asyncTest("crash", 4, function() { | |
| 62 var simulator = new NetworkSimulator(); | |
| 63 var probedUrls = []; | |
| 64 | |
| 65 simulator.probe = function(url) | |
| 66 { | |
| 67 probedUrls.push(url); | |
| 68 if (url.endsWith('.txt')) | |
| 69 return Promise.resolve(); | |
| 70 else | |
| 71 return Promise.reject(); | |
| 72 }; | |
| 73 | |
| 74 simulator.runTest(function() { | |
| 75 var crashResult = document.createElement('ct-results-detail'); | |
| 76 crashResult.builder = 'dummy builder'; | |
| 77 // FIXME: Use a proper mock model object. | |
| 78 crashResult.failure = { | |
| 79 "testName": "dummy/test.html", | |
| 80 "resultNodesByBuilder": { | |
| 81 "dummy builder": { | |
| 82 "actual": "CRASH", | |
| 83 }, | |
| 84 }, | |
| 85 "oldestFailingRevision": 177164, | |
| 86 "newestPassingRevision": 177165, | |
| 87 }; | |
| 88 | |
| 89 crashResult.async(function() { | |
| 90 deepEqual(probedUrls, [ | |
| 91 'https://storage.googleapis.com/chromium-layout-test-archives/dummy_bu
ilder/results/layout-test-results/dummy/test-crash-log.txt', | |
| 92 ]); | |
| 93 | |
| 94 var crashOutputs = crashResult.shadowRoot.querySelectorAll('ct-test-output
'); | |
| 95 equal(crashOutputs.length, 1); | |
| 96 equal(crashResult.shadowRoot.querySelectorAll('ct-results-comparison').len
gth, 0); | |
| 97 start(); | |
| 98 }); | |
| 99 }); | |
| 100 }); | |
| 101 | |
| 102 asyncTest("unknown", 3, function() { | |
| 103 var result = document.createElement('ct-results-detail'); | |
| 104 | |
| 105 result.builder = 'dummy builder'; | |
| 106 | |
| 107 var resultsByBuilder = { | |
| 108 "dummy builder": { | |
| 109 actual: "UNKNOWN", | |
| 110 lastFailingBuild: 124, | |
| 111 masterUrl: 'http://masterurl/' | |
| 112 }, | |
| 113 }; | |
| 114 result.failure = new CTFailure('foo_step', 'test.html', resultsByBuilder, 123,
124); | |
| 115 | |
| 116 requestAnimationFrame(function() { | |
| 117 var outputs = result.shadowRoot.querySelectorAll('ct-test-output'); | |
| 118 equal(outputs.length, 1); | |
| 119 equal(outputs[0].url, 'http://masterurl//builders/dummy%20builder/builds/124
/steps/foo_step/logs/stdio'); | |
| 120 equal(result.shadowRoot.querySelectorAll('ct-results-comparison').length, 0)
; | |
| 121 start(); | |
| 122 }); | |
| 123 }); | |
| 124 | |
| 125 asyncTest("unknown", 3, function() { | |
| 126 var result = document.createElement('ct-results-detail'); | |
| 127 | |
| 128 result.builder = 'dummy builder'; | |
| 129 | |
| 130 var resultsByBuilder = { | |
| 131 "dummy builder": { | |
| 132 actual: "FAIL", | |
| 133 lastFailingBuild: 124, | |
| 134 masterUrl: 'http://masterurl/' | |
| 135 }, | |
| 136 }; | |
| 137 result.failure = new CTFailure('foo_step', 'TestSuite.TestName', resultsByBuil
der, 123, 124); | |
| 138 | |
| 139 requestAnimationFrame(function() { | |
| 140 var outputs = result.shadowRoot.querySelectorAll('ct-test-output'); | |
| 141 equal(outputs.length, 1); | |
| 142 equal(outputs[0].url, 'http://masterurl//builders/dummy%20builder/builds/124
/steps/foo_step/logs/TestName'); | |
| 143 equal(result.shadowRoot.querySelectorAll('ct-results-comparison').length, 0)
; | |
| 144 start(); | |
| 145 }); | |
| 146 }); | |
| 147 | |
| 148 })() | 148 })() |
| 149 </script> | 149 </script> |
| OLD | NEW |