3 Copyright (c) 2014 The Chromium Authors. All rights reserved.
4 Use of this source code is governed by a BSD-style license that can be
5 found in the LICENSE file.
8 <link rel="import" href="/tracing/side_panel/timeline_view.html">
9 <link rel="import" href="/tracing/trace_model.html">
14 tv.unittest.testSuite(function() {
15 var TimelineViewSidePanel = tracing.TimelineViewSidePanel;
16 var TimelineViewSidePanelContainer = tracing.TimelineViewSidePanelContainer;
21 var Panel1 = tv.ui.define('panel-1', TimelineViewSidePanel);
22 Panel1.textLabel = 'Panel 1';
23 Panel1.supportsModel = function(m) {
31 __proto__: TimelineViewSidePanel.prototype,
33 decorate: function() {
34 this.textContent = 'I am panel 1';
41 var Panel2 = tv.ui.define('panel-2', TimelineViewSidePanel);
42 Panel2.textLabel = 'Panel 2';
43 Panel2.supportsModel = function(m) {
50 __proto__: TimelineViewSidePanel.prototype,
52 decorate: function() {
53 this.textContent = 'I am panel 1';
54 this.style.height = '300px';
59 function testBasic(name, fn) {
60 test(name, function() {
61 var registeredPanelConstructors =
62 TimelineViewSidePanel.getPanelConstructors();
63 var oldConstructors = registeredPanelConstructors.splice(
64 0, registeredPanelConstructors.length);
65 TimelineViewSidePanel.registerPanelSubtype(Panel1);
66 TimelineViewSidePanel.registerPanelSubtype(Panel2);
70 TimelineViewSidePanel.unregisterPanelSubtype(Panel1);
71 TimelineViewSidePanel.unregisterPanelSubtype(Panel2);
72 registeredPanelConstructors.push.apply(registeredPanelConstructors,
78 function createModel() {
79 var m = new tracing.TraceModel();
80 m.importTraces([], false, false, function() {
81 var browserProcess = m.getOrCreateProcess(1);
82 var browserMain = browserProcess.getOrCreateThread(2);
83 browserMain.sliceGroup.beginSlice('cat', 'Task', 0);
84 browserMain.sliceGroup.endSlice(10);
85 browserMain.sliceGroup.beginSlice('cat', 'Task', 20);
86 browserMain.sliceGroup.endSlice(30);
91 testBasic('instantiateCollapsed', function() {
92 var container = new TimelineViewSidePanelContainer();
93 container.model = createModel();
94 this.addHTMLOutput(container);
97 testBasic('instantiateExpanded', function() {
98 var container = new TimelineViewSidePanelContainer();
99 container.model = createModel();
100 container.activePanelConstructor = Panel2;
101 container.activePanelConstructor = undefined;
102 container.activePanelConstructor = Panel2;
103 this.addHTMLOutput(container);