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.
7 tvcm.require('tracing.trace_model');
8 tvcm.require('tracing.trace_model_settings');
10 tvcm.unittest.testSuite('tracing.trace_model_settings_test', function() {
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));
19 test('process_name_uniqueness_1', function() {
20 var model = new tracing.TraceModel();
21 var p1 = model.getOrCreateProcess(1);
23 var settings = new tracing.TraceModelSettings(model);
24 assertTrue(settings.hasUniqueSettingKey(p1));
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);
33 var settings = new tracing.TraceModelSettings(model);
34 assertFalse(settings.hasUniqueSettingKey(p1));
35 assertFalse(settings.hasUniqueSettingKey(p2));
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);
43 p1.labels.push('Google Search');
45 var settings = new tracing.TraceModelSettings(model);
46 assertTrue(settings.hasUniqueSettingKey(p1));
47 assertTrue(settings.hasUniqueSettingKey(p2));
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);
60 var settings = new tracing.TraceModelSettings(model);
61 assertTrue(settings.hasUniqueSettingKey(t1));
62 assertTrue(settings.hasUniqueSettingKey(t2));
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);
75 var settings = new tracing.TraceModelSettings(model);
76 assertFalse(settings.hasUniqueSettingKey(t1));
77 assertFalse(settings.hasUniqueSettingKey(t2));
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));
86 settings.setSettingFor(p1, 'true_by_default', false);
87 assertFalse(settings.getSettingFor(p1, 'true_by_default', true));
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));
96 test('process_persistence_when_not_unique_with_name', function() {
97 var model = new tracing.TraceModel();
98 var p1 = model.getOrCreateProcess(1);
100 var settings = new tracing.TraceModelSettings(model);
101 assertTrue(settings.getSettingFor(p1, 'true_by_default', true));
103 settings.setSettingFor(p1, 'true_by_default', false);
104 assertFalse(settings.getSettingFor(p1, 'true_by_default', true));
106 // Now, clobber the model, and verify that it persisted.
107 model = new tracing.TraceModel();
108 p1 = model.getOrCreateProcess(1);
110 settings = new tracing.TraceModelSettings(model);
111 assertFalse(settings.getSettingFor(p1, 'true_by_default', true));
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';
124 var settings = new tracing.TraceModelSettings(model);
125 assertTrue(settings.getSettingFor(t1, 'true_by_default', true));
127 settings.setSettingFor(t1, 'true_by_default', false);
128 assertFalse(settings.getSettingFor(t1, 'true_by_default', true));
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';
140 settings = new tracing.TraceModelSettings(model);
141 assertTrue(settings.getSettingFor(t1, 'true_by_default', true));
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);
151 p2.name = 'Renderer';
154 var settings = new tracing.TraceModelSettings(model);
155 assertTrue(settings.getSettingFor(t1, 'true_by_default', true));
157 settings.setSettingFor(t1, 'true_by_default', false);
158 assertFalse(settings.getSettingFor(t1, 'true_by_default', true));
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);
167 p2.name = 'Renderer';
170 settings = new tracing.TraceModelSettings(model);
171 assertFalse(settings.getSettingFor(t1, 'true_by_default', true));