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.
8 function CTFailure(step, reason, resultsByBuilder, firstFailingRevisions, lastPassingRevisions) {
10 // FIXME: Rename this to reason.
11 this.testName = reason;
12 this.resultNodesByBuilder = resultsByBuilder;
13 // FIXME: Move these up one layer to the groupedFailures object.
14 this.firstFailingRevisions = firstFailingRevisions;
15 this.lastPassingRevisions = lastPassingRevisions;
18 CTFailure.prototype.flakinessDashboardURL = function(tree) {
19 var testType = this.step;
21 // FIXME: Replace the flakiness dashboard's sense of groups with sheriff-o-matic's
22 // sense of trees and get rid of this mapping.
23 var treeToDashboardGroup = {
24 blink: '@ToT%20Blink',
25 chromium: '@ToT%20Chromium',
28 // FIXME: Remove this once the flakiness dashboard stops having webkit_tests
29 // masquerade as layout-tests.
30 if (testType == 'webkit_tests')
31 testType = 'layout-tests';
33 // FIXME: sugarjs's toQueryString makes spaces into pluses instead of %20, which confuses
34 // the flakiness dashboard, which just uses decodeURIComponent.
35 return 'http://test-results.appspot.com/dashboards/flakiness_dashboard.html#group=' +
36 treeToDashboardGroup[tree] + '&' +
37 Object.toQueryString({
43 CTFailure.prototype.embeddedFlakinessDashboardURL = function(tree) {
44 return this.flakinessDashboardURL(tree) + '&showChrome=false';
47 CTFailure.prototype.reasonGroupName = function() {
50 if (this.step == 'webkit_tests')
51 return this.testName.substr(0, this.testName.lastIndexOf('/'));
52 return this.testName.substr(0, this.testName.lastIndexOf('.'));