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 |