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