• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!DOCTYPE HTML>
2<html>
3<!--
4Copyright (c) 2012 The Chromium Authors. All rights reserved.
5Use of this source code is governed by a BSD-style license that can be
6found in the LICENSE file.
7-->
8<head>
9<title>Selection Analysis Tests</title>
10<script src="../base.js"></script>
11</head>
12<body>
13  <script>
14    base.require('unittest');
15    base.require('test_utils');
16    base.require('timeline_track_view');
17    base.require('analysis.selection_analysis');
18    base.require('analysis.test.analysis_test_support');
19    base.requireStylesheet('analysis.test.analysis_test_support');
20  </script>
21  <script>
22    'use strict';
23
24    function testSelectionAnalysisWithSingleSlice() {
25      var data = tracing.analysis.test.createReferenceData(true);
26
27      var selection = new tracing.Selection();
28      data.t1track.selectByTitle('f', selection);
29
30      var analysis = new tracing.analysis.SelectionAnalysis();
31      analysis.selection = selection;
32
33      var selectionEl = analysis;
34      var sliceSelectionEl = selectionEl.children[0];
35      var singleSliceEl = sliceSelectionEl.children[0];
36
37      assertEquals(true,
38          analysis instanceof tracing.analysis.SelectionAnalysis);
39      assertEquals(true, sliceSelectionEl instanceof
40          tracing.analysis.SliceSelectionAnalysis);
41      assertEquals(1, sliceSelectionEl.children.length);
42      assertEquals(4, singleSliceEl.children.length);
43
44      this.addHTMLOutput(undefined, analysis);
45    }
46
47    function testSelectionAnalysisWithSingleSliceArgsAndCategory() {
48      var data = tracing.analysis.test.createReferenceData(true);
49
50      var selection = new tracing.Selection();
51      data.t1track.selectByTitle('D', selection);
52
53      var analysis = new tracing.analysis.SelectionAnalysis();
54      analysis.selection = selection;
55
56      var selectionEl = analysis;
57      var sliceSelectionEl = selectionEl.children[0];
58      var singleSliceEl = sliceSelectionEl.children[0];
59      var categoryEl = singleSliceEl.children[1];
60      var argEl1 = singleSliceEl.children[5];
61      var argEl2 = singleSliceEl.children[6];
62
63      assertEquals(true,
64          analysis instanceof tracing.analysis.SelectionAnalysis);
65      assertEquals(true, sliceSelectionEl instanceof
66          tracing.analysis.SliceSelectionAnalysis);
67      assertEquals(true, singleSliceEl instanceof
68          tracing.analysis.SingleSliceSelectionAnalysis);
69      assertEquals(1, sliceSelectionEl.children.length);
70      assertEquals(7, singleSliceEl.children.length);
71
72      this.addHTMLOutput(undefined, analysis);
73    }
74
75    function testSelectionAnalysisWithSlicesAndCounters() {
76
77      var data = tracing.analysis.test.createReferenceData(true);
78
79      var selection = new tracing.Selection();
80      data.t1track.selectByTitle('b', selection);
81      selection.addCounterSample(data.ctr1track, data.ctr1track.counter, 0);
82
83      var analysis = new tracing.analysis.SelectionAnalysis();
84      analysis.selection = selection;
85
86      var selectionEl = analysis;
87      var sliceSelectionEl = selectionEl.children[0];
88      var counterSelectionEl = selectionEl.children[1];
89
90      assertEquals(true, sliceSelectionEl instanceof
91          tracing.analysis.SliceSelectionAnalysis);
92      assertEquals(true, counterSelectionEl instanceof
93          tracing.analysis.CounterSelectionAnalysis);
94      assertEquals(2, selectionEl.children.length);
95      assertEquals(3, sliceSelectionEl.children.length);
96      assertEquals(2, counterSelectionEl.children.length);
97
98      this.addHTMLOutput(undefined, analysis);
99
100    }
101
102    function testSelectionAnalysisWithSingleCounter() {
103      var data = tracing.analysis.test.createReferenceData(true);
104
105      var selection = new tracing.Selection();
106      selection.addCounterSample(data.ctr1track, data.ctr1track.counter, 0);
107
108      var analysis = new tracing.analysis.SelectionAnalysis();
109      analysis.selection = selection;
110
111      var selectionEl = analysis;
112      var counterSelectionEl = selectionEl.children[0];
113      var singleCounterEl = counterSelectionEl.children[1];
114
115      assertEquals(true,
116          analysis instanceof tracing.analysis.SelectionAnalysis);
117      assertEquals(true, counterSelectionEl instanceof
118          tracing.analysis.CounterSelectionAnalysis);
119      assertEquals(true, singleCounterEl instanceof
120          tracing.analysis.SingleCounterSelectionAnalysis);
121      assertEquals(2, counterSelectionEl.children.length);
122      assertEquals(1, singleCounterEl.children.length);
123
124      this.addHTMLOutput(undefined, analysis);
125    }
126
127    function testSelectionAnalysisWithMultipleCounters() {
128      var data = tracing.analysis.test.createReferenceData(true);
129
130      var selection = new tracing.Selection();
131      selection.addCounterSample(data.ctr1track, data.ctr1track.counter, 0);
132      selection.addCounterSample(data.ctr2track, data.ctr2track.counter, 3);
133
134      var analysis = new tracing.analysis.SelectionAnalysis();
135      analysis.selection = selection;
136
137      var selectionEl = analysis;
138      var counterSelectionEl = selectionEl.children[0];
139      var singleCounterEl = counterSelectionEl.children[1];
140      var singleCounterEl2 = counterSelectionEl.children[2];
141
142      assertEquals(true,
143          analysis instanceof tracing.analysis.SelectionAnalysis);
144      assertEquals(true, counterSelectionEl instanceof
145          tracing.analysis.CounterSelectionAnalysis);
146      assertEquals(true, singleCounterEl instanceof
147          tracing.analysis.SingleCounterSelectionAnalysis);
148      assertEquals(true, singleCounterEl2 instanceof
149          tracing.analysis.SingleCounterSelectionAnalysis);
150      assertEquals(3, counterSelectionEl.children.length);
151      assertEquals(1, singleCounterEl.children.length);
152      assertEquals(1, singleCounterEl2.children.length);
153
154      this.addHTMLOutput(undefined, analysis);
155    }
156
157  </script>
158</body>
159</html>
160