blob: 3263196b081110f75984478169edaac249cec8fe [file] [log] [blame]
<!DOCTYPE html>
<!--
Copyright (c) 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.
-->
<link rel="import" href="/base/units/time.html">
<link rel="import" href="/ui/units/time_duration_span.html">
<script>
'use strict';
tr.b.unittest.testSuite(function() {
var THIS_DOC = document._currentScript.ownerDocument;
test('createTimeDurationSpan', function() {
// Default owner document.
var timeStamp = tr.ui.units.createTimeDurationSpan(3.14);
assert.strictEqual(timeStamp.tagName, 'TR-UI-U-TIME-DURATION-SPAN');
assert.strictEqual(timeStamp.duration, 3.14);
assert.strictEqual(timeStamp.ownerDocument, document);
// Custom owner document.
var config = {ownerDocument: THIS_DOC};
var timeStamp = tr.ui.units.createTimeDurationSpan(-273.15, config);
assert.strictEqual(timeStamp.tagName, 'TR-UI-U-TIME-DURATION-SPAN');
assert.strictEqual(timeStamp.duration, -273.15);
assert.strictEqual(timeStamp.ownerDocument, THIS_DOC);
});
test('instantiate', function() {
var timeSpan = document.createElement('tr-ui-u-time-duration-span');
timeSpan.duration = 73;
this.addHTMLOutput(timeSpan);
});
test('instantiateWithObject', function() {
var timeSpan = document.createElement('tr-ui-u-time-duration-span');
timeSpan.duration = new tr.b.units.TimeDuration(73);
this.addHTMLOutput(timeSpan);
assert.equal(timeSpan.duration, 73);
});
test('instantiateWithWarning', function() {
var timeSpan = document.createElement('tr-ui-u-time-duration-span');
timeSpan.duration = 400;
timeSpan.warning = 'there is a problem with this time';
this.addHTMLOutput(timeSpan);
});
test('instantiateWithPercentage', function() {
var timeSpan = document.createElement('tr-ui-u-time-duration-span');
timeSpan.percentage = 0.5;
timeSpan.duration = 40;
this.addHTMLOutput(timeSpan);
});
test('warningAndNonWarningHaveSimilarHeights', function() {
var spanA = document.createElement('tr-ui-u-time-duration-span');
spanA.duration = 400;
var spanB = document.createElement('tr-ui-u-time-duration-span');
spanB.duration = 400;
spanB.warning = 'there is a problem with this time';
var overall = document.createElement('div');
overall.style.display = 'flex';
overall.appendChild(spanA);
spanB.style.marginLeft = '4px';
overall.appendChild(spanB);
this.addHTMLOutput(overall);
});
test('respectCurrentDisplayUnit', function() {
try {
var Time = tr.b.units.Time;
Time.currentDisplayUnit = Time.supportedUnits.ns;
var timeSpan = document.createElement('tr-ui-u-time-duration-span');
timeSpan.duration = 73;
this.addHTMLOutput(timeSpan);
assert.isTrue(timeSpan.$.content.textContent.indexOf('ns') > 0);
Time.currentDisplayUnit = Time.supportedUnits.ms;
assert.isTrue(timeSpan.$.content.textContent.indexOf('ms') > 0);
} finally {
Time.reset();
}
});
test('displaySparkline', function() {
var div = document.createElement('div');
div.style.width = '100px';
var timeSpan = document.createElement('tr-ui-u-time-duration-span');
timeSpan.duration = 40;
div.appendChild(timeSpan);
this.addHTMLOutput(div);
function checkSparkline(expectedDisplay, expectedWidth) {
var computedStyle = getComputedStyle(timeSpan.$.sparkline);
assert.equal(computedStyle.display, expectedDisplay);
assert.equal(parseInt(computedStyle.width), expectedWidth);
}
// No percentage set.
checkSparkline('none', 0);
// Zero percentage set.
timeSpan.percentage = 0;
checkSparkline('block', 1);
// Undefined percentage set.
timeSpan.percentage = undefined;
checkSparkline('none', 0);
// Undefined percentage set.
timeSpan.percentage = 0.5;
checkSparkline('block', 50);
});
});
</script>