OLD | NEW |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 import 'dart:html'; | 5 import 'dart:html'; |
6 import 'dart:async'; | 6 import 'dart:async'; |
7 import 'package:unittest/unittest.dart'; | 7 import 'package:unittest/unittest.dart'; |
8 import 'package:observatory/models.dart' as M; | 8 import 'package:observatory/models.dart' as M; |
9 import 'package:observatory/src/elements/sample_buffer_control.dart'; | 9 import 'package:observatory/src/elements/sample_buffer_control.dart'; |
10 import '../mocks.dart'; | 10 import '../mocks.dart'; |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
59 progress = new SampleProfileLoadingProgressMock(); | 59 progress = new SampleProfileLoadingProgressMock(); |
60 events = new StreamController<SampleProfileLoadingProgressEventMock>(); | 60 events = new StreamController<SampleProfileLoadingProgressEventMock>(); |
61 }); | 61 }); |
62 test('created after attachment', () async { | 62 test('created after attachment', () async { |
63 final e = new SampleBufferControlElement(progress, events.stream); | 63 final e = new SampleBufferControlElement(progress, events.stream); |
64 document.body.append(e); | 64 document.body.append(e); |
65 await e.onRendered.first; | 65 await e.onRendered.first; |
66 expect(e.children.length, isNonZero, reason: 'has elements'); | 66 expect(e.children.length, isNonZero, reason: 'has elements'); |
67 e.remove(); | 67 e.remove(); |
68 await e.onRendered.first; | 68 await e.onRendered.first; |
69 expect(e.children.length, isZero, reason: 'is empty'); | 69 expect(e.children.length, isZero, |
| 70 reason: 'is empty'); |
70 }); | 71 }); |
71 test('listen for status changes', () async { | 72 test('listen for status changes', () async { |
72 final e = new SampleBufferControlElement(progress, events.stream); | 73 final e = new SampleBufferControlElement(progress, events.stream); |
73 expect(events.hasListener, isFalse); | 74 expect(events.hasListener, isFalse); |
74 document.body.append(e); | 75 document.body.append(e); |
75 await e.onRendered.first; | 76 await e.onRendered.first; |
76 expect(events.hasListener, isTrue); | 77 expect(events.hasListener, isTrue); |
77 events.add(new SampleProfileLoadingProgressEventMock(progress: progress)); | 78 events.add(new SampleProfileLoadingProgressEventMock(progress: progress)); |
78 events.close(); | 79 events.close(); |
79 await e.onRendered.first; | 80 await e.onRendered.first; |
80 e.remove(); | 81 e.remove(); |
81 await e.onRendered.first; | 82 await e.onRendered.first; |
82 }); | 83 }); |
83 test('follow updates changes', () async { | 84 test('follow updates changes', () async { |
84 final e = new SampleBufferControlElement(progress, events.stream); | 85 final e = new SampleBufferControlElement(progress, events.stream); |
85 document.body.append(e); | 86 document.body.append(e); |
86 await e.onRendered.first; | 87 await e.onRendered.first; |
87 expect(e.querySelector('select'), isNull); | 88 expect(e.querySelector('select'), isNull); |
88 events.add(new SampleProfileLoadingProgressEventMock( | 89 events.add(new SampleProfileLoadingProgressEventMock( |
89 progress: new SampleProfileLoadingProgressMock( | 90 progress: new SampleProfileLoadingProgressMock( |
90 status: M.SampleProfileLoadingStatus.fetching))); | 91 status: M.SampleProfileLoadingStatus.fetching |
| 92 ))); |
91 await e.onRendered.first; | 93 await e.onRendered.first; |
92 expect(e.querySelector('select'), isNull); | 94 expect(e.querySelector('select'), isNull); |
93 events.add(new SampleProfileLoadingProgressEventMock( | 95 events.add(new SampleProfileLoadingProgressEventMock( |
94 progress: new SampleProfileLoadingProgressMock( | 96 progress: new SampleProfileLoadingProgressMock( |
95 status: M.SampleProfileLoadingStatus.loading))); | 97 status: M.SampleProfileLoadingStatus.loading |
| 98 ))); |
96 await e.onRendered.first; | 99 await e.onRendered.first; |
97 expect(e.querySelector('select'), isNull); | 100 expect(e.querySelector('select'), isNull); |
98 events.add(new SampleProfileLoadingProgressEventMock( | 101 events.add(new SampleProfileLoadingProgressEventMock( |
99 progress: new SampleProfileLoadingProgressMock( | 102 progress: new SampleProfileLoadingProgressMock( |
100 status: M.SampleProfileLoadingStatus.loaded, | 103 status: M.SampleProfileLoadingStatus.loaded, |
101 profile: new SampleProfileMock()))); | 104 profile: new SampleProfileMock() |
| 105 ))); |
102 events.close(); | 106 events.close(); |
103 await e.onRendered.first; | 107 await e.onRendered.first; |
104 expect(e.querySelector('select'), isNotNull); | 108 expect(e.querySelector('select'), isNotNull); |
105 e.remove(); | 109 e.remove(); |
106 await e.onRendered.first; | 110 await e.onRendered.first; |
107 }); | 111 }); |
108 test('follow updates changes (no tag)', () async { | 112 test('follow updates changes (no tag)', () async { |
109 final e = new SampleBufferControlElement(progress, events.stream, | 113 final e = new SampleBufferControlElement(progress, events.stream, |
110 showTag: false); | 114 showTag: false); |
111 document.body.append(e); | 115 document.body.append(e); |
112 await e.onRendered.first; | 116 await e.onRendered.first; |
113 expect(e.querySelector('select'), isNull); | 117 expect(e.querySelector('select'), isNull); |
114 events.add(new SampleProfileLoadingProgressEventMock( | 118 events.add(new SampleProfileLoadingProgressEventMock( |
115 progress: new SampleProfileLoadingProgressMock( | 119 progress: new SampleProfileLoadingProgressMock( |
116 status: M.SampleProfileLoadingStatus.fetching))); | 120 status: M.SampleProfileLoadingStatus.fetching |
| 121 ))); |
117 await e.onRendered.first; | 122 await e.onRendered.first; |
118 expect(e.querySelector('select'), isNull); | 123 expect(e.querySelector('select'), isNull); |
119 events.add(new SampleProfileLoadingProgressEventMock( | 124 events.add(new SampleProfileLoadingProgressEventMock( |
120 progress: new SampleProfileLoadingProgressMock( | 125 progress: new SampleProfileLoadingProgressMock( |
121 status: M.SampleProfileLoadingStatus.loading))); | 126 status: M.SampleProfileLoadingStatus.loading |
| 127 ))); |
122 await e.onRendered.first; | 128 await e.onRendered.first; |
123 expect(e.querySelector('select'), isNull); | 129 expect(e.querySelector('select'), isNull); |
124 events.add(new SampleProfileLoadingProgressEventMock( | 130 events.add(new SampleProfileLoadingProgressEventMock( |
125 progress: new SampleProfileLoadingProgressMock( | 131 progress: new SampleProfileLoadingProgressMock( |
126 status: M.SampleProfileLoadingStatus.loaded, | 132 status: M.SampleProfileLoadingStatus.loaded, |
127 profile: new SampleProfileMock()))); | 133 profile: new SampleProfileMock() |
| 134 ))); |
128 await e.onRendered.first; | 135 await e.onRendered.first; |
129 expect(e.querySelector('select'), isNull); | 136 expect(e.querySelector('select'), isNull); |
130 e.remove(); | 137 e.remove(); |
131 await e.onRendered.first; | 138 await e.onRendered.first; |
132 }); | 139 }); |
133 }); | 140 }); |
134 group('events', () { | 141 group('events', () { |
135 SampleProfileLoadingProgressMock progress; | 142 SampleProfileLoadingProgressMock progress; |
136 StreamController<SampleProfileLoadingProgressEventMock> events; | 143 StreamController<SampleProfileLoadingProgressEventMock> events; |
137 setUp(() { | 144 setUp(() { |
138 progress = new SampleProfileLoadingProgressMock(); | 145 progress = new SampleProfileLoadingProgressMock(); |
139 events = new StreamController<SampleProfileLoadingProgressEventMock>(); | 146 events = new StreamController<SampleProfileLoadingProgressEventMock>(); |
140 }); | 147 }); |
141 test('onModeChange', () async { | 148 test('onModeChange', () async { |
142 final e = new SampleBufferControlElement(progress, events.stream); | 149 final e = new SampleBufferControlElement(progress, events.stream); |
143 document.body.append(e); | 150 document.body.append(e); |
144 await e.onRendered.first; | 151 await e.onRendered.first; |
145 events.add(new SampleProfileLoadingProgressEventMock( | 152 events.add(new SampleProfileLoadingProgressEventMock( |
146 progress: new SampleProfileLoadingProgressMock( | 153 progress: new SampleProfileLoadingProgressMock( |
147 status: M.SampleProfileLoadingStatus.loaded, | 154 status: M.SampleProfileLoadingStatus.loaded, |
148 profile: new SampleProfileMock()))); | 155 profile: new SampleProfileMock() |
| 156 ))); |
149 await e.onRendered.first; | 157 await e.onRendered.first; |
150 expect(e.selectedTag, equals(M.SampleProfileTag.none)); | 158 expect(e.selectedTag, equals(M.SampleProfileTag.none)); |
151 e.onTagChange.listen(expectAsync((_) { | 159 e.onTagChange.listen(expectAsync((_) { |
152 expect(e.selectedTag, equals(M.SampleProfileTag.userOnly)); | 160 expect(e.selectedTag, equals(M.SampleProfileTag.userOnly)); |
153 }, count: 1)); | 161 }, count: 1)); |
154 final select = (e.querySelector('.tag-select') as SelectElement); | 162 final select = (e.querySelector('.tag-select') as SelectElement); |
155 select.selectedIndex = select.options.indexOf((select.options.toSet() | 163 select.selectedIndex = select.options.indexOf( |
156 ..removeAll(select.selectedOptions)) | 164 (select.options.toSet() |
157 .toList() | 165 ..removeAll(select.selectedOptions)).toList().first |
158 .first); | 166 ); |
159 select.dispatchEvent(new Event("change")); | 167 select.dispatchEvent(new Event("change")); |
160 e.remove(); | 168 e.remove(); |
161 await e.onRendered.first; | 169 await e.onRendered.first; |
162 }); | 170 }); |
163 }); | 171 }); |
164 } | 172 } |
OLD | NEW |