Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / trace-viewer / trace_viewer / tracing / analysis / toggle_container_test.html
1 <!DOCTYPE html>
2 <!--
3 Copyright (c) 2014 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/toggle_container.html">
9
10 <script>
11 'use strict';
12
13 tv.unittest.testSuite(function() {
14   var THIS_DOC = document._currentScript.ownerDocument;
15
16   test('instantiateVisibleProperty', function() {
17     var container = THIS_DOC.createElement('div');
18     var firstToggleContainer = new TracingAnalysisToggleContainer();
19     var secondToggleContainer = new TracingAnalysisToggleContainer();
20     var defaultSettingsToggleContainer = new TracingAnalysisToggleContainer();
21
22     var visibleChild = THIS_DOC.createElement('div');
23     var hiddenChild = THIS_DOC.createElement('div');
24     var defaultHiddenChild = THIS_DOC.createElement('div');
25
26     var button1 = THIS_DOC.createElement('button');
27     button1.textContent = '1: Toggle Visibility';
28
29     var button2 = THIS_DOC.createElement('button');
30     button2.textContent = '2: Toggle Visibility';
31
32     var button3 = THIS_DOC.createElement('button');
33     button3.textContent = '3: Toggle Visibility';
34
35     var buttonToggleAll = THIS_DOC.createElement('button');
36     buttonToggleAll.textContent = 'Toggle All';
37
38     visibleChild.textContent = '1: Should be visible';
39     hiddenChild.textContent = '2: Should not be visible';
40     defaultHiddenChild.textContent = '3: Should also not be visible';
41
42     firstToggleContainer.visible = true;
43     secondToggleContainer.visible = false;
44     // Default toggle container should have default visibility set to false.
45
46     firstToggleContainer.appendChild(visibleChild);
47     secondToggleContainer.appendChild(hiddenChild);
48     defaultSettingsToggleContainer.appendChild(defaultHiddenChild);
49
50     container.appendChild(button1);
51     container.appendChild(button2);
52     container.appendChild(button3);
53     container.appendChild(buttonToggleAll);
54     container.appendChild(firstToggleContainer);
55     container.appendChild(secondToggleContainer);
56     container.appendChild(defaultSettingsToggleContainer);
57
58     firstToggleContainer.setToggleListener(button1, 'click');
59     secondToggleContainer.setToggleListener(button2, 'click');
60     defaultSettingsToggleContainer.setToggleListener(button3, 'click');
61
62     firstToggleContainer.setToggleListener(buttonToggleAll, 'click');
63     secondToggleContainer.setToggleListener(buttonToggleAll, 'click');
64     defaultSettingsToggleContainer.setToggleListener(buttonToggleAll, 'click');
65
66     this.addHTMLOutput(container);
67   });
68
69   test('visiblePropertyReflection', function() {
70     var toggleContainer = new TracingAnalysisToggleContainer();
71
72     assertFalse(toggleContainer.hasAttribute('visible'));
73     toggleContainer.visible = true;
74     assertTrue(toggleContainer.hasAttribute('visible'));
75     toggleContainer.visible = false;
76     assertFalse(toggleContainer.hasAttribute('visible'));
77     toggleContainer.setAttribute('visible', 'true');
78     assertTrue(toggleContainer.visible);
79     toggleContainer.removeAttribute('visible');
80     assertFalse(toggleContainer.visible);
81   });
82
83   test('setAndClearToggleListener', function() {
84     var toggleContainer = new TracingAnalysisToggleContainer();
85
86     var firstTarget = THIS_DOC.createElement('div');
87     var secondTarget = THIS_DOC.createElement('div');
88     var invalidTarget = THIS_DOC.createElement('div');
89     toggleContainer.setToggleListener(firstTarget, 'click');
90     toggleContainer.setToggleListener(secondTarget, 'click');
91
92     var clickEvent = new MouseEvent('click', {
93       'view': window,
94       'bubbles': true,
95       'cancelable': true
96     });
97
98     firstTarget.dispatchEvent(clickEvent);
99     assertTrue(toggleContainer.visible);
100
101     firstTarget.dispatchEvent(clickEvent);
102     assertFalse(toggleContainer.visible);
103
104     secondTarget.dispatchEvent(clickEvent);
105     assertTrue(toggleContainer.visible);
106
107     secondTarget.dispatchEvent(clickEvent);
108     assertFalse(toggleContainer.visible);
109
110     toggleContainer.clearToggleListener(firstTarget, 'click');
111     firstTarget.dispatchEvent(clickEvent);
112     // This event should not toggle the state.
113     assertFalse(toggleContainer.visible);
114
115     secondTarget.dispatchEvent(clickEvent);
116     // This event should toggle the state.
117     assertTrue(toggleContainer.visible);
118
119     toggleContainer.clearToggleListener(invalidTarget, 'click');
120     secondTarget.dispatchEvent(clickEvent);
121     // This event should toggle the state.
122     assertFalse(toggleContainer.visible);
123
124     toggleContainer.clearToggleListener(secondTarget, 'invalidEventName');
125     secondTarget.dispatchEvent(clickEvent);
126     // This event should toggle the state.
127     assertTrue(toggleContainer.visible);
128
129     toggleContainer.clearToggleListener(secondTarget, 'click');
130     secondTarget.dispatchEvent(clickEvent);
131     // This event should not toggle the state as we've removed the listener.
132     assertTrue(toggleContainer.visible);
133   });
134 });
135 </script>