blob: f14f98bd6bd39a61f39dd8452a4bcc4e9fb5b9e1 [file] [log] [blame]
<!DOCTYPE html>
<!--
Copyright 2016 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="/tracing/extras/chrome/chrome_user_friendly_category_driver.html">
<link rel="import" href="/tracing/model/event_set.html">
<link rel="import" href="/tracing/value/diagnostics/composition.html">
<link rel="import" href="/tracing/value/numeric.html">
<link rel="import" href="/tracing/value/value.html">
<link rel="import" href="/tracing/value/value_set.html">
<script>
'use strict';
tr.b.unittest.testSuite(function() {
var TEST_NUMERIC_BUILDER = tr.v.NumericBuilder.createLinear(
tr.v.Unit.byName.timeDurationInMs, tr.b.Range.fromExplicitRange(0, 10),
10);
test('build', function() {
var values = new tr.v.ValueSet();
var events = new tr.model.EventSet([
{
guid: 9,
title: 'V8.Execute',
cpuSelfTime: 1,
stableId: '11.11'
},
{
guid: 10,
title: 'V8.Execute',
cpuSelfTime: 2,
stableId: '22.22'
},
{
guid: 11,
title: 'UpdateLayoutTree',
cpuSelfTime: 3,
stableId: '33.33'
},
{
guid: 12,
title: 'UpdateLayoutTree',
cpuSelfTime: undefined,
stableId: '44.44'
}
]);
var composition = tr.v.d.Composition.buildFromEvents(
values, 'foo-', events, TEST_NUMERIC_BUILDER,
tr.e.chrome.ChromeUserFriendlyCategoryDriver.fromEvent);
assert.lengthOf(composition.values, 2);
var scriptValue = values.getValuesWithName('foo-script')[0];
assert.instanceOf(scriptValue, tr.v.NumericValue);
assert.strictEqual(scriptValue, composition.get('script_execute'));
assert.lengthOf(scriptValue.numeric.centralBins[1].diagnosticMaps, 1);
assert.lengthOf(
scriptValue.numeric.centralBins[1].diagnosticMaps[0]
.get('relatedEvents').events, 1);
assert.strictEqual(events[0],
scriptValue.numeric.centralBins[1].diagnosticMaps[0]
.get('relatedEvents').events[0]);
assert.lengthOf(scriptValue.numeric.centralBins[2].diagnosticMaps, 1);
assert.lengthOf(
scriptValue.numeric.centralBins[2].diagnosticMaps[0]
.get('relatedEvents').events, 1);
assert.strictEqual(
events[1],
scriptValue.numeric.centralBins[2].diagnosticMaps[0]
.get('relatedEvents').events[0]);
var styleValue = values.getValuesWithName('foo-style')[0];
assert.instanceOf(styleValue, tr.v.NumericValue);
assert.strictEqual(styleValue, composition.get('style'));
assert.lengthOf(styleValue.numeric.centralBins[3].diagnosticMaps, 1);
assert.lengthOf(
styleValue.numeric.centralBins[3].diagnosticMaps[0]
.get('relatedEvents').events, 1);
assert.strictEqual(events[2],
styleValue.numeric.centralBins[3].diagnosticMaps[0]
.get('relatedEvents').events[0]);
});
});
</script>