| <!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> |