Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / trace-viewer / trace_viewer / tracing / analysis / analyze_samples_test.html
1 <!DOCTYPE html>
2 <!--
3 Copyright (c) 2013 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.
6 -->
7
8 <link rel="import" href="/tracing/analysis/analysis_view.html">
9 <link rel="import" href="/tracing/analysis/stub_analysis_results.html">
10 <link rel="import" href="/tracing/test_utils.html">
11 <link rel="import" href="/tracing/selection.html">
12 <link rel="import" href="/tracing/trace_model.html">
13
14 <script>
15 'use strict';
16
17 tv.unittest.testSuite(function() {
18   var Model = tracing.TraceModel;
19   var Selection = tracing.Selection;
20   var AnalysisView = TracingAnalysisView;
21   var StubAnalysisResults = tracing.analysis.StubAnalysisResults;
22   var newSampleNamed = tracing.test_utils.newSampleNamed;
23
24   var createSelectionWithSingleSample = function() {
25     var model = new Model();
26     var t53;
27     model.importTraces([], false, false, function() {
28       t53 = model.getOrCreateProcess(52).getOrCreateThread(53);
29       model.samples.push(newSampleNamed(t53, 'X', 'my-category',
30                                         ['a', 'b', 'c'], 0.184));
31     });
32
33     var t53track = {};
34     t53track.thread = t53;
35
36     var selection = new Selection();
37
38     assertEquals(0, selection.length);
39     selection.push(t53.samples[0]);
40     assertEquals(1, selection.length);
41
42     return selection;
43   };
44
45   var createSelectionWithMultipleSamples = function() {
46     var model = new Model();
47     var t53;
48     model.importTraces([], false, false, function() {
49       t53 = model.getOrCreateProcess(52).getOrCreateThread(53);
50       model.samples.push(newSampleNamed(t53, 'X', 'cat', ['BBB'], 0));
51       model.samples.push(newSampleNamed(t53, 'X', 'cat', ['AAA'], 0.02));
52       model.samples.push(newSampleNamed(t53, 'X', 'cat', ['AAA'], 0.04));
53       model.samples.push(newSampleNamed(t53, 'X', 'cat', ['Sleeping'], 0.06));
54       model.samples.push(newSampleNamed(t53, 'X', 'cat', ['BBB'], 0.08));
55       model.samples.push(newSampleNamed(t53, 'X', 'cat', ['AAA'], 0.10));
56       model.samples.push(newSampleNamed(t53, 'X', 'cat', ['CCC'], 0.12));
57       model.samples.push(newSampleNamed(t53, 'X', 'cat', ['Sleeping'], 0.14));
58     });
59
60     var t53track = {};
61     t53track.thread = t53;
62
63     var selection = new Selection();
64     for (var i = 0; i < t53.samples.length; i++)
65       selection.push(t53.samples[i]);
66     return selection;
67   };
68
69   test('instantiate_withSingleSample', function() {
70     var selection = createSelectionWithSingleSample();
71
72     var analysisEl = new AnalysisView();
73     analysisEl.selection = selection;
74     this.addHTMLOutput(analysisEl);
75   });
76
77   test('instantiate_withMultipleSamples', function() {
78     var selection = createSelectionWithMultipleSamples();
79
80     var analysisEl = new AnalysisView();
81     this.addHTMLOutput(analysisEl);
82     analysisEl.selection = selection;
83   });
84
85   test('analyzeSelectionWithSingleSample', function() {
86     var selection = createSelectionWithSingleSample();
87
88     var view = new SingleSampleAnalysisSubView();
89     var results = new StubAnalysisResults();
90     view.analyzeSingleSampleEvent_(results, selection[0], 'Sample Event');
91     assertEquals(1, results.tables.length);
92     var table = results.tables[0];
93     var header = results.headers[0];
94     assertEquals('Selected Sample Event:', header.label);
95     assertEquals(3, table.rows.length);
96
97     assertEquals('X', table.rows[0].text);
98     assertEquals(0.184, table.rows[1].time);
99     assertEquals('my-category: a', table.rows[2].text[0]);
100     assertEquals('my-category: b', table.rows[2].text[1]);
101     assertEquals('my-category: c', table.rows[2].text[2]);
102   });
103 });
104 </script>