Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / third_party / trace-viewer / src / tracing / record_selection_dialog_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('tvcm.settings');
8 tvcm.require('tracing.test_utils');
9 tvcm.require('tracing.record_selection_dialog');
10
11 tvcm.unittest.testSuite('tracing.record_selection_dialog_test', function() {
12   test('instantitate', function() {
13     var categories = [];
14     for (var i = 0; i < 30; i++)
15       categories.push('cat-' + i);
16     for (var i = 0; i < 20; i++)
17       categories.push('disabled-by-default-cat-' + i);
18     categories.push('really-really-really-really-really-really-very-loong-cat');
19
20     var dlg = new tracing.RecordSelectionDialog();
21     dlg.categories = categories;
22     dlg.settings_key = 'key';
23
24     var showButton = document.createElement('button');
25     showButton.textContent = 'Show record selection dialog';
26     showButton.addEventListener('click', function(e) {
27       dlg.visible = true;
28       e.stopPropagation();
29     });
30     this.addHTMLOutput(showButton);
31   });
32
33   test('recordSelectionDialog_UpdateForm_NoSettings', function() {
34     var dlg = new tracing.RecordSelectionDialog();
35     dlg.categories = ['disabled-by-default-one', 'two', 'three'];
36     dlg.settings_key = 'key';
37     dlg.updateForm_();
38
39     var checkboxes = dlg.getElementsByTagName('input');
40     assertEquals(3, checkboxes.length);
41     assertEquals('three', checkboxes[0].id);
42     assertEquals('three', checkboxes[0].value);
43     assertEquals(true, checkboxes[0].checked);
44     assertEquals('two', checkboxes[1].id);
45     assertEquals('two', checkboxes[1].value);
46     assertEquals(true, checkboxes[1].checked);
47     assertEquals('disabled-by-default-one', checkboxes[2].id);
48     assertEquals('disabled-by-default-one', checkboxes[2].value);
49     assertEquals(false, checkboxes[2].checked);
50
51     assertEquals('', dlg.categoryFilter());
52
53     var labels = dlg.getElementsByTagName('label');
54     assertEquals(3, labels.length);
55     assertEquals('three', labels[0].textContent);
56     assertEquals('two', labels[1].textContent);
57     assertEquals('one', labels[2].textContent);
58   });
59
60   test('recordSelectionDialog_UpdateForm_Settings', function() {
61     tvcm.Settings.set('two', true, 'categories');
62     tvcm.Settings.set('three', false, 'categories');
63
64     var dlg = new tracing.RecordSelectionDialog();
65     dlg.categories = ['disabled-by-default-one'];
66     dlg.settings_key = 'categories';
67     dlg.updateForm_();
68
69     var checkboxes = dlg.getElementsByTagName('input');
70     assertEquals(3, checkboxes.length);
71     assertEquals('three', checkboxes[0].id);
72     assertEquals('three', checkboxes[0].value);
73     assertEquals(false, checkboxes[0].checked);
74     assertEquals('two', checkboxes[1].id);
75     assertEquals('two', checkboxes[1].value);
76     assertEquals(true, checkboxes[1].checked);
77     assertEquals('disabled-by-default-one', checkboxes[2].id);
78     assertEquals('disabled-by-default-one', checkboxes[2].value);
79     assertEquals(false, checkboxes[2].checked);
80
81     assertEquals('-three', dlg.categoryFilter());
82
83     var labels = dlg.getElementsByTagName('label');
84     assertEquals(3, labels.length);
85     assertEquals('three', labels[0].textContent);
86     assertEquals('two', labels[1].textContent);
87     assertEquals('one', labels[2].textContent);
88   });
89
90   test('recordSelectionDialog_UpdateForm_DisabledByDefault', function() {
91     var dlg = new tracing.RecordSelectionDialog();
92     dlg.categories = ['disabled-by-default-bar', 'baz'];
93     dlg.settings_key = 'categories';
94     dlg.updateForm_();
95
96     assertEquals('', dlg.categoryFilter());
97
98     var inputs =
99         dlg.querySelector('input#disabled-by-default-bar').click();
100
101     assertEquals('disabled-by-default-bar', dlg.categoryFilter());
102
103     assertEquals(false,
104         tvcm.Settings.get('disabled-by-default-foo', false, 'categories'));
105   });
106
107   test('selectAll', function() {
108     tvcm.Settings.set('two', true, 'categories');
109     tvcm.Settings.set('three', false, 'categories');
110
111     var dlg = new tracing.RecordSelectionDialog();
112     dlg.categories = ['disabled-by-default-one'];
113     dlg.settings_key = 'categories';
114     dlg.updateForm_();
115   });
116
117   test('selectNone', function() {
118     tvcm.Settings.set('two', true, 'categories');
119     tvcm.Settings.set('three', false, 'categories');
120
121     var dlg = new tracing.RecordSelectionDialog();
122     dlg.categories = ['disabled-by-default-one'];
123     dlg.settings_key = 'categories';
124     dlg.updateForm_();
125
126     // Enables the three option, two already enabled.
127     dlg.querySelector('.default-enabled-categories .all-btn').click();
128     assertEquals('', dlg.categoryFilter());
129     assertEquals(true, tvcm.Settings.get('three', false, 'categories'));
130
131     // Disables three and two.
132     dlg.querySelector('.default-enabled-categories .none-btn').click();
133     assertEquals('-three,-two', dlg.categoryFilter());
134     assertEquals(false, tvcm.Settings.get('two', false, 'categories'));
135     assertEquals(false, tvcm.Settings.get('three', false, 'categories'));
136
137     // Turn categories back on so they can be ignored.
138     dlg.querySelector('.default-enabled-categories .all-btn').click();
139
140     // Enables disabled category.
141     dlg.querySelector('.default-disabled-categories .all-btn').click();
142     assertEquals('disabled-by-default-one', dlg.categoryFilter());
143     assertEquals(true,
144         tvcm.Settings.get('disabled-by-default-one', false, 'categories'));
145
146     // Turn disabled by default back off.
147     dlg.querySelector('.default-disabled-categories .none-btn').click();
148     assertEquals('', dlg.categoryFilter());
149     assertEquals(false,
150         tvcm.Settings.get('disabled-by-default-one', false, 'categories'));
151   });
152 });