Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Tools / GardeningServer / ui / test / ct-failure-stream-tests.html
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-failure-stream.html">
8
9 <script>
10 (function () {
11
12 var assert = chai.assert;
13
14 describe('ct-failure-stream', function() {
15
16   var stream;
17
18   beforeEach(function(done) {
19     stream = document.createElement('ct-failure-stream');
20     setTimeout(done);
21   });
22
23   describe('default ui', function() {
24     it('should show failure groups', function(done) {
25       // FIXME: We should use some more interesting test data, but
26       // ct-failure-stream will give these values to ct-commit-data,
27       // which will hit the network unless we figure out how to mock
28       // out ct-commit-data in a better way.
29       stream.groups = [new CTFailureGroup('', new CTStepFailureGroupData([])),
30           new CTFailureGroup('', new CTStepFailureGroupData([]))];
31       stream.category = 'default';
32       setTimeout(function() {
33         var cards = stream.shadowRoot.querySelectorAll('ct-step-failure-card');
34         assert.equal(cards.length, 2);
35         done();
36       });
37     });
38   });
39
40   describe('category', function() {
41
42     it('should only show failure groups for the specified category', function(done) {
43       var failures = [new CTStepFailure('step', 'reason', [{key: 'a', annotation: {snoozeTime: Date.now() + 1000 * 1000}}])];
44       var snoozed = new CTFailureGroup('', new CTStepFailureGroupData(failures));
45       stream.groups = [new CTFailureGroup('', new CTStepFailureGroupData([])), snoozed];
46       stream.category = 'snoozed';
47       setTimeout(function() {
48         var cards = stream.shadowRoot.querySelectorAll('ct-step-failure-card');
49         assert.equal(cards.length, 1);
50         assert.equal(cards[0].group, snoozed.data);
51         done();
52       });
53     });
54
55     it('should select the correct card type', function(done) {
56       var failures = [new CTStepFailure('step', 'reason', [{key: 'a', annotation: {}}])];
57       var failureGroup = new CTFailureGroup('', new CTStepFailureGroupData(failures));
58       stream.groups = [new CTFailureGroup('', new CTStepFailureGroupData([])), failureGroup];
59       stream.category = 'default';
60       setTimeout(function() {
61         assert(stream.shadowRoot.querySelector('ct-step-failure-card') != null,
62             'missing sheriff card');
63         stream.groups = [new CTFailureGroup('', new CTTrooperFailureGroupData(
64             'details', 'url', {percent_over_median_slo: '6%',
65             percent_over_max_slo: '7%'}, 'cq_latency', ''))];
66         setTimeout(function() {
67           assert(stream.shadowRoot.querySelector('ct-trooper-card') != null,
68               'missing cq-latency card');
69           stream.groups[0].data.type = 'tree_status';
70           setTimeout(function() {
71             assert(stream.shadowRoot.querySelector('ct-trooper-card') !=
72                 null, 'missing tree-status card');
73             stream.groups[0].data.type = 'cycle_time';
74             setTimeout(function() {
75               assert(stream.shadowRoot.querySelector('ct-trooper-card') !=
76                   null, 'missing cycle-time card');
77               done();
78             });
79           });
80         });
81       });
82     });
83
84     it('adding a bug number should show bugs link', function(done) {
85       var cl = new CTCommitListMock();
86       var group = new CTFailureGroup('blink', new CTStepFailureGroupData([
87           new CTStepFailure('autobot', 'unknown', {someBuilder: {key: 'a', failingBuildCount: 2}},
88               {'blink':158547}, {'blink':158544}),
89         ], cl));
90       group.setBug(123);
91
92       stream.groups = [group];
93       stream.category = 'default';
94
95       setTimeout(function() {
96         var links = stream.shadowRoot.querySelectorAll('.bugs a');
97         assert.lengthOf(links, 1);
98         assert.match(links[0].href, /crbug.com\/123/);
99         done();
100       });
101     });
102
103     it('should not show bugs link without a bug number', function(done) {
104       var cl = new CTCommitListMock();
105       var group = new CTFailureGroup('blink', new CTStepFailureGroupData([
106         new CTStepFailure('autobot', 'unknown', {someBuilder: {key: 'a'}}, {'blink':158547},
107                       {'blink':158544})], cl));
108
109       stream.groups = [group];
110       stream.category = 'default';
111
112       setTimeout(function() {
113         var links = stream.shadowRoot.querySelectorAll('.bugs');
114         assert.lengthOf(links, 0);
115         done();
116       });
117     });
118   });
119 });
120
121 })();
122 </script>