OLD | NEW |
| (Empty) |
1 <!-- | |
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 | |
4 found in the LICENSE file. | |
5 --> | |
6 | |
7 <link rel="import" href="../ct-results-detail.html"> | |
8 | |
9 <link rel="import" href="../../lib/network-simulator.html"> | |
10 <link rel="import" href="../../model/ct-step-failure.html"> | |
11 | |
12 <script> | |
13 (function () { | |
14 | |
15 var assert = chai.assert; | |
16 | |
17 describe('ct-results-detail', function() { | |
18 describe('webkit failures', function() { | |
19 var resultsDetail; | |
20 var probedUrls; | |
21 | |
22 // Set to test different types. | |
23 var resultType = ''; | |
24 var extensions = []; | |
25 | |
26 beforeEach(function(done) { | |
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 } | |
36 return Promise.reject(); | |
37 }; | |
38 | |
39 // FIXME: Use a proper mock model object. | |
40 var failure = new CTStepFailure( | |
41 "testName", "dummy/test.html", | |
42 { | |
43 "dummy builder": { | |
44 "actual": resultType, | |
45 }, | |
46 }, 177164, 177165 | |
47 ); | |
48 | |
49 simulator.runTest(function() { | |
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, [ | |
66 'https://storage.googleapis.com/chromium-layout-test-archives/dummy_bu
ilder/results/layout-test-results/dummy/test-expected.png', | |
67 'https://storage.googleapis.com/chromium-layout-test-archives/dummy_bu
ilder/results/layout-test-results/dummy/test-actual.png', | |
68 'https://storage.googleapis.com/chromium-layout-test-archives/dummy_bu
ilder/results/layout-test-results/dummy/test-diff.png', | |
69 'https://storage.googleapis.com/chromium-layout-test-archives/dummy_bu
ilder/results/layout-test-results/dummy/test-actual.txt', | |
70 'https://storage.googleapis.com/chromium-layout-test-archives/dummy_bu
ilder/results/layout-test-results/dummy/test-expected.txt', | |
71 'https://storage.googleapis.com/chromium-layout-test-archives/dummy_bu
ilder/results/layout-test-results/dummy/test-diff.txt', | |
72 ]); | |
73 | |
74 assert.lengthOf(resultsDetail.shadowRoot.querySelectorAll('ct-results-co
mparison'), 2); | |
75 assert.lengthOf(resultsDetail.shadowRoot.querySelectorAll('ct-test-outpu
t'), 0); | |
76 }); | |
77 }); | |
78 | |
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: 'https://masterurl/' | |
118 }, | |
119 }; | |
120 result.failure = new CTStepFailure('foo_step', 'test.html', resultsByBui
lder, 123, 124); | |
121 expectedUrl = 'https://masterurl//builders/dummy%20builder/builds/124/st
eps/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: 'https://masterurl/' | |
138 }, | |
139 }; | |
140 result.failure = new CTStepFailure('foo_step', 'TestSuite.TestName', res
ultsByBuilder, 123, 124); | |
141 expectedUrl = 'https://masterurl//builders/dummy%20builder/builds/124/st
eps/foo_step/logs/TestName'; | |
142 | |
143 setTimeout(done); | |
144 }); | |
145 }); | |
146 | |
147 describe('parameterized gtest failure', function() { | |
148 it('should have a munged url', function(done) { | |
149 result = document.createElement('ct-results-detail'); | |
150 | |
151 result.builder = 'dummy builder'; | |
152 | |
153 var resultsByBuilder = { | |
154 "dummy builder": { | |
155 actual: "FAIL", | |
156 lastFailingBuild: 124, | |
157 masterUrl: 'http://masterurl/' | |
158 }, | |
159 }; | |
160 result.failure = new CTStepFailure('foo_step', 'TestSuite.TestName/98',
resultsByBuilder, 123, 124); | |
161 expectedUrl = 'http://masterurl//builders/dummy%20builder/builds/124/ste
ps/foo_step/logs/TestName_98'; | |
162 | |
163 setTimeout(done); | |
164 }); | |
165 }); | |
166 }); | |
167 }); | |
168 | |
169 })() | |
170 </script> | |
OLD | NEW |