Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(408)

Side by Side Diff: Tools/GardeningServer/ui/ct-test-list.html

Issue 728023004: Remove GardeningServer. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(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="../bower_components/paper-icon-button/paper-icon-button .html">
8
9 <polymer-element name="ct-test-list" attributes="tests">
10 <template>
11 <style>
12 :host {
13 display: block;
14 }
15
16 :host > div {
17 /* Be at least the height of a paper-icon-button.
18 So things line up nicely. */
19 min-height: 24px;
20 }
21
22 .test-failures {
23 margin-left: 15px;
24 }
25
26 paper-icon-button {
27 vertical-align: middle;
28 }
29
30 paper-icon-button::shadow #icon {
31 margin: 0;
32 }
33 </style>
34 <template repeat="{{ groups in testGroups_ }}">
35 <template if="{{ groups.tests.length }}">
36 <div><span style="font-weight: bold">Step:</span> {{ groups.step }}</div >
37 </template>
38
39 <template repeat="{{ group in groups.tests | maybeTruncate(groups.expanded ) }}">
40 <!-- Case 1: single test failure -->
41 <template if="{{ group.name && (group.tests.length == 1 || group.expande d) }}">
42 <template repeat="{{ test in group.tests }}">
43 <div class="test-failures">
44 <a href="{{ test | flakinessDashboardURL }}">{{ test.testName }}</ a>
45 </div>
46 </template>
47 </template>
48 <!-- Case 2: group of tests failed -->
49 <template if="{{ group.name && group.tests.length > 1 && !group.expanded }}">
50 <div class="test-failures">
51 {{ group.name }} ({{ group.tests.length }} Tests)
52 <paper-icon-button id="expand" icon="unfold-more" step="{{ groups.st ep }}" group="{{ group.name }}" on-click="{{ _innerExpand }}"></paper-icon-butto n>
53 </div>
54 </template>
55 </template>
56 <template if="{{ !groups.expanded }}">
57 <div class="test-failures">
58 {{ groups.tests.length - kMaxTestsPerStep }} more
59 <paper-icon-button id="outerExpand" icon="unfold-more" step="{{ groups .step }}" on-click="{{ _outerExpand }}"></paper-icon-button>
60 </div>
61 </template>
62 </template>
63 </template>
64 <script>
65 Polymer('ct-test-list', {
66 kMaxTestsPerStep: 10,
67
68 testsChanged: function() {
69 var groups = {};
70 if (this.tests) {
71 this.tests.forEach(function(test) {
72 if (!groups[test.step])
73 groups[test.step] = {};
74 var testName = test.reasonGroupName();
75 if (!groups[test.step][testName])
76 groups[test.step][testName] = [];
77 groups[test.step][testName].push(test);
78 }.bind(this));
79 }
80 this.testGroups_ = [];
81 Object.keys(groups, function(step, testsByName) {
82 var tests = [];
83 Object.keys(testsByName, function(name, testList) {
84 if (name == 'undefined')
85 name = undefined;
86 tests.push({'name': name, 'tests': testList, 'expanded': false});
87 }.bind(this));
88 tests.sortBy('name');
89 // The + 1 is to make sure at least 2 tests are hidden by the message.
90 this.testGroups_.push({'step': step, 'tests': tests, 'expanded': tests .length <= (this.kMaxTestsPerStep + 1)});
91 }.bind(this));
92 this.testGroups_.sortBy('step');
93 },
94
95 _innerExpand: function(evt) {
96 step = evt.target.attributes['step'].value;
97 name = evt.target.attributes['group'].value;
98 this.testGroups_.forEach(function(testGroup) {
99 if (testGroup.step == step) {
100 testGroup.tests.forEach(function(test) {
101 // FIXME: This attribute should be persisted over reloads.
102 if (test.name == name)
103 test.expanded = true;
104 });
105 }
106 });
107 },
108
109 _outerExpand: function(evt) {
110 var step = evt.target.attributes['step'].value;
111 this.testGroups_.forEach(function(testGroup) {
112 if (testGroup.step == step) {
113 testGroup.expanded = true;
114 }
115 });
116 },
117
118 flakinessDashboardURL: function(test) {
119 return test.flakinessDashboardURL();
120 },
121
122 // FIXME: Remove maybeTruncate. Persist the expanded list as described in
123 // http://crbug.com/417159.
124 maybeTruncate: function(input, expanded) {
125 if (expanded)
126 return input;
127 return input.slice(0, this.kMaxTestsPerStep);
128 },
129 });
130 </script>
131 </polymer-element>
OLDNEW
« no previous file with comments | « Tools/GardeningServer/ui/ct-step-failure-card.html ('k') | Tools/GardeningServer/ui/ct-test-output.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698