Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / third_party / trace-viewer / src / tracing / trace_model_settings_test.js
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 'use strict';
6
7 tvcm.require('tracing.trace_model');
8 tvcm.require('tracing.trace_model_settings');
9
10 tvcm.unittest.testSuite('tracing.trace_model_settings_test', function() {
11
12   test('process_name_uniqueness_0', function() {
13     var model = new tracing.TraceModel();
14     var p1 = model.getOrCreateProcess(1);
15     var settings = new tracing.TraceModelSettings(model);
16     assertFalse(settings.hasUniqueSettingKey(p1));
17   });
18
19   test('process_name_uniqueness_1', function() {
20     var model = new tracing.TraceModel();
21     var p1 = model.getOrCreateProcess(1);
22     p1.name = 'Browser';
23     var settings = new tracing.TraceModelSettings(model);
24     assertTrue(settings.hasUniqueSettingKey(p1));
25   });
26
27   test('process_name_uniqueness_2', function() {
28     var model = new tracing.TraceModel();
29     var p1 = model.getOrCreateProcess(1);
30     var p2 = model.getOrCreateProcess(2);
31     p1.name = 'Renderer';
32     p2.name = 'Renderer';
33     var settings = new tracing.TraceModelSettings(model);
34     assertFalse(settings.hasUniqueSettingKey(p1));
35     assertFalse(settings.hasUniqueSettingKey(p2));
36   });
37
38   test('process_name_uniqueness_3', function() {
39     var model = new tracing.TraceModel();
40     var p1 = model.getOrCreateProcess(1);
41     var p2 = model.getOrCreateProcess(2);
42     p1.name = 'Renderer';
43     p1.labels.push('Google Search');
44     p2.name = 'Renderer';
45     var settings = new tracing.TraceModelSettings(model);
46     assertTrue(settings.hasUniqueSettingKey(p1));
47     assertTrue(settings.hasUniqueSettingKey(p2));
48   });
49
50   test('thread_name_uniqueness_0', function() {
51     var model = new tracing.TraceModel();
52     var p1 = model.getOrCreateProcess(1);
53     var p2 = model.getOrCreateProcess(2);
54     var t1 = p1.getOrCreateThread(1);
55     var t2 = p2.getOrCreateThread(2);
56     p1.name = 'Browser';
57     p2.name = 'Renderer';
58     t1.name = 'Main';
59     t2.name = 'Main';
60     var settings = new tracing.TraceModelSettings(model);
61     assertTrue(settings.hasUniqueSettingKey(t1));
62     assertTrue(settings.hasUniqueSettingKey(t2));
63   });
64
65   test('thread_name_uniqueness_1', function() {
66     var model = new tracing.TraceModel();
67     var p1 = model.getOrCreateProcess(1);
68     var p2 = model.getOrCreateProcess(2);
69     var t1 = p1.getOrCreateThread(1);
70     var t2 = p2.getOrCreateThread(2);
71     p1.name = 'Renderer';
72     p2.name = 'Renderer';
73     t1.name = 'Main';
74     t2.name = 'Main';
75     var settings = new tracing.TraceModelSettings(model);
76     assertFalse(settings.hasUniqueSettingKey(t1));
77     assertFalse(settings.hasUniqueSettingKey(t2));
78   });
79
80   test('process_persistence_when_not_unique', function() {
81     var model = new tracing.TraceModel();
82     var p1 = model.getOrCreateProcess(1);
83     var settings = new tracing.TraceModelSettings(model);
84     assertTrue(settings.getSettingFor(p1, 'true_by_default', true));
85
86     settings.setSettingFor(p1, 'true_by_default', false);
87     assertFalse(settings.getSettingFor(p1, 'true_by_default', true));
88
89     // Now, clobber the model, and verify that it didn't persist.
90     model = new tracing.TraceModel();
91     p1 = model.getOrCreateProcess(1);
92     settings = new tracing.TraceModelSettings(model);
93     assertTrue(settings.getSettingFor(p1, 'true_by_default', true));
94   });
95
96   test('process_persistence_when_not_unique_with_name', function() {
97     var model = new tracing.TraceModel();
98     var p1 = model.getOrCreateProcess(1);
99     p1.name = 'Browser';
100     var settings = new tracing.TraceModelSettings(model);
101     assertTrue(settings.getSettingFor(p1, 'true_by_default', true));
102
103     settings.setSettingFor(p1, 'true_by_default', false);
104     assertFalse(settings.getSettingFor(p1, 'true_by_default', true));
105
106     // Now, clobber the model, and verify that it persisted.
107     model = new tracing.TraceModel();
108     p1 = model.getOrCreateProcess(1);
109     p1.name = 'Browser';
110     settings = new tracing.TraceModelSettings(model);
111     assertFalse(settings.getSettingFor(p1, 'true_by_default', true));
112   });
113
114   test('thread_persistence_when_not_unique', function() {
115     var model = new tracing.TraceModel();
116     var p1 = model.getOrCreateProcess(1);
117     var p2 = model.getOrCreateProcess(2);
118     var t1 = p1.getOrCreateThread(1);
119     var t2 = p2.getOrCreateThread(2);
120     p1.name = 'Renderer';
121     p2.name = 'Renderer';
122     t1.name = 'Main';
123     t2.name = 'Main';
124     var settings = new tracing.TraceModelSettings(model);
125     assertTrue(settings.getSettingFor(t1, 'true_by_default', true));
126
127     settings.setSettingFor(t1, 'true_by_default', false);
128     assertFalse(settings.getSettingFor(t1, 'true_by_default', true));
129
130     // Now, clobber the model, and verify that it persisted.
131     model = new tracing.TraceModel();
132     p1 = model.getOrCreateProcess(1);
133     p2 = model.getOrCreateProcess(2);
134     t1 = p1.getOrCreateThread(1);
135     t2 = p2.getOrCreateThread(2);
136     p1.name = 'Renderer';
137     p2.name = 'Renderer';
138     t1.name = 'Main';
139     t2.name = 'Main';
140     settings = new tracing.TraceModelSettings(model);
141     assertTrue(settings.getSettingFor(t1, 'true_by_default', true));
142   });
143
144   test('thread_persistence_when_unique', function() {
145     var model = new tracing.TraceModel();
146     var p1 = model.getOrCreateProcess(1);
147     var p2 = model.getOrCreateProcess(2);
148     var t1 = p1.getOrCreateThread(1);
149     var t2 = p2.getOrCreateThread(2);
150     p1.name = 'Browser';
151     p2.name = 'Renderer';
152     t1.name = 'Main';
153     t2.name = 'Main';
154     var settings = new tracing.TraceModelSettings(model);
155     assertTrue(settings.getSettingFor(t1, 'true_by_default', true));
156
157     settings.setSettingFor(t1, 'true_by_default', false);
158     assertFalse(settings.getSettingFor(t1, 'true_by_default', true));
159
160     // Now, clobber the model, and verify that it persisted.
161     model = new tracing.TraceModel();
162     p1 = model.getOrCreateProcess(1);
163     p2 = model.getOrCreateProcess(2);
164     t1 = p1.getOrCreateThread(1);
165     t2 = p2.getOrCreateThread(2);
166     p1.name = 'Browser';
167     p2.name = 'Renderer';
168     t1.name = 'Main';
169     t2.name = 'Main';
170     settings = new tracing.TraceModelSettings(model);
171     assertFalse(settings.getSettingFor(t1, 'true_by_default', true));
172   });
173
174 });