blob: 090d8e07ac875670d752dd11fc6287b93773f14f [file] [log] [blame]
<!doctype html>
<!--
Copyright 2015 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<script src="/jquery/jquery-2.1.4.min.js"></script>
<script src="/flot/jquery.flot.min.js"></script>
<script src="/flot/jquery.flot.crosshair.min.js"></script>
<script src="/flot/jquery.flot.fillbetween.min.js"></script>
<script src="/flot/jquery.flot.selection.min.js"></script>
<link rel="import" href="/tracing/core/test_utils.html">
<link rel="import" href="/dashboard/elements/chart-container.html">
<link rel="import" href="/dashboard/static/graph.html">
<link rel="import" href="/dashboard/static/testing_common.html">
<link rel="import" href="/dashboard/static/uri.html">
<script>
'use strict';
tr.b.unittest.testSuite(function() {
var GRAPH_JSON = {
'data': {
'0': {
'color': 0,
'data': [[348164, 24290], [348167, 22206], [348182, 24170],
[348198, 22847], [348224, 25224]],
'id': 'line_0'
}
},
'error_bars': {
'0': [
{
'fillBetween': 'line_0',
'clickable': false,
'hoverable': false,
'data': [[348164, 24290], [348167, 22206], [348182, 24170],
[348198, 22847], [348224, 25224]],
'color': 0,
'id': 'bottom_0',
'lines': {
'fill': 0.2,
'lineWidth': 0,
'show': true
}
},
{
'fillBetween': 'line_0',
'clickable': false,
'hoverable': false,
'data': [[348164, 24290], [348167, 22206], [348182, 24170],
[348198, 22847], [348224, 25224]],
'color': 0,
'id': 'top_0',
'lines': {
'fill': 0.2,
'lineWidth': 0,
'show': true
}
}
]
},
'annotations': {
'0': {
'0': {
'a_trace_rerun_options': null,
'error': 0,
'r_webkit_rev': '202058',
'a_stdio_uri': '[Buildbot stdio](//dromaeo/stdio)',
'r_commit_pos': '348164',
'timestamp': (new Date).getTime(),
'r_chromium': '0c554b0e1233639e7428facc13ff674741368fb2'
}
},
'series': {
'0': {
'name': 'dom',
'description': null,
'better': 'Higher',
'units': 'runs/s',
'path': 'ChromiumPerf/win/dromaeo/dom'
}
}
}
};
var GRAPH_REVISION_JSON = [
[348164, 24290, 1445661677000],
[348167, 22206, 1445674668000],
[348182, 24170, 1445685601000],
[348198, 22847, 1445696455000],
[348224, 25224, 1445707715000]
];
var testOptions = {
tearDown: function() {
testing_common.clearXhrMock();
testing_common.clearFixture();
}
};
function createBasicChart() {
var params = {
'test_path_dict': {
'ChromiumPerf/win/dromaeo': []
},
'is_selected': true
};
var graphQuery = ('/graph_json?graphs=' +
encodeURIComponent(JSON.stringify(params)));
testing_common.addXhrMock(graphQuery, JSON.stringify(GRAPH_JSON));
var revisionQuery = ('/graph_revisions?test_path=' +
encodeURIComponent('ChromiumPerf/win/dromaeo/dom'));
testing_common.addXhrMock(revisionQuery,
JSON.stringify(GRAPH_REVISION_JSON));
var chart = document.createElement('chart-container');
return chart;
};
test('instantiate_ basic', function() {
var chart = createBasicChart();
chart.addSeriesGroup([['ChromiumPerf/win/dromaeo', ['important']]]);
this.addHTMLOutput(chart);
}, testOptions);
test('data is loaded when a series group is added', function() {
var chart = createBasicChart();
testing_common.addToFixture(chart);
chart.addSeriesGroup([['ChromiumPerf/win/dromaeo', ['important']]]);
assert.equal(chart.getDataForFlot().length, 3);
}, testOptions);
test('warning added for stale series', function() {
var params = {
'test_path_dict': {
'ChromiumPerf/win/dromaeo': []
},
'is_selected': true
};
var graphJson = testing_common.deepCopy(GRAPH_JSON);
graphJson['annotations']['0']['0']['timestamp'] -= 8 * 86400000;
var graphQuery = ('/graph_json?graphs=' +
encodeURIComponent(JSON.stringify(params)));
testing_common.addXhrMock(graphQuery, JSON.stringify(graphJson));
var chart = document.createElement('chart-container');
testing_common.addToFixture(chart);
chart.addSeriesGroup([['ChromiumPerf/win/dromaeo', ['important']]]);
return new Promise(function(resolve) {
function check() {
assert.notEqual(-1, chart.warnings[0].indexOf('Graph out of date!'));
resolve();
}
setTimeout(check, 10);
});
}, testOptions);
});
</script>