| OLD | NEW |
| 1 @TestOn('browser') | 1 @TestOn('browser') |
| 2 library polymer_elements.test.iron_overlay_behavior_test; | 2 library polymer_elements.test.iron_overlay_behavior_test; |
| 3 | 3 |
| 4 import 'dart:async'; | 4 import 'dart:async'; |
| 5 import 'dart:convert'; | 5 import 'dart:convert'; |
| 6 import 'dart:html'; | 6 import 'dart:html'; |
| 7 import 'dart:js'; | 7 import 'dart:js'; |
| 8 import 'package:polymer_interop/polymer_interop.dart'; | 8 import 'package:polymer_interop/polymer_interop.dart'; |
| 9 import 'package:polymer/polymer.dart'; | 9 import 'package:polymer/polymer.dart'; |
| 10 import 'package:test/test.dart'; | 10 import 'package:test/test.dart'; |
| 11 import 'package:web_components/web_components.dart'; | 11 import 'package:web_components/web_components.dart'; |
| 12 import 'common.dart'; | 12 import 'common.dart'; |
| 13 import 'fixtures/test_overlay.dart'; | 13 import 'fixtures/test_overlay.dart'; |
| 14 | 14 |
| 15 runAfterOpen(overlay, cb) { | 15 runAfterOpen(overlay, cb) { |
| 16 overlay.on['iron-overlay-opened'].take(1).listen((_) { | 16 overlay.on['iron-overlay-opened'].take(1).listen((_) async { |
| 17 await wait(1); |
| 17 cb(); | 18 cb(); |
| 18 }); | 19 }); |
| 19 overlay.open(); | 20 overlay.open(); |
| 20 } | 21 } |
| 21 | 22 |
| 22 main() async { | 23 main() async { |
| 23 await initPolymer(); | 24 await initPolymer(); |
| 24 | 25 |
| 25 group('basic overlay tests', () { | 26 group('basic overlay tests', () { |
| 26 TestOverlay overlay; | 27 TestOverlay overlay; |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 120 document.activeElement, | 121 document.activeElement, |
| 121 reason: '<button autofocus> is focused'); | 122 reason: '<button autofocus> is focused'); |
| 122 done.complete(); | 123 done.complete(); |
| 123 }); | 124 }); |
| 124 return done.future; | 125 return done.future; |
| 125 }); | 126 }); |
| 126 | 127 |
| 127 test('cancel an overlay by clicking outside', () { | 128 test('cancel an overlay by clicking outside', () { |
| 128 var done = new Completer(); | 129 var done = new Completer(); |
| 129 runAfterOpen(overlay, () { | 130 runAfterOpen(overlay, () { |
| 130 overlay.on['iron-overlay-closed'].take(1).listen((event) { | 131 overlay.on['iron-overlay-canceled'].first.then((_) { |
| 132 done.complete(); |
| 133 }); |
| 134 fireEvent('click', null, document); |
| 135 }); |
| 136 return done.future; |
| 137 }); |
| 138 |
| 139 test('close an overlay by clicking outside', () { |
| 140 var done = new Completer(); |
| 141 runAfterOpen(overlay, () { |
| 142 overlay.on['iron-overlay-closed'].first.then((event) { |
| 131 expect(event.detail['canceled'], isTrue, | 143 expect(event.detail['canceled'], isTrue, |
| 132 reason: 'overlay is canceled'); | 144 reason: 'overlay is canceled'); |
| 133 done.complete(); | 145 done.complete(); |
| 134 }); | 146 }); |
| 135 fireEvent('click', null, document); | 147 fireEvent('click', null, document); |
| 136 }); | 148 }); |
| 137 return done.future; | 149 return done.future; |
| 138 }); | 150 }); |
| 139 | 151 |
| 152 test('cancel event can be prevented', () { |
| 153 var done = new Completer(); |
| 154 runAfterOpen(overlay, () { |
| 155 overlay.on['iron-overlay-canceled'].first.then((event) { |
| 156 event.preventDefault(); |
| 157 }); |
| 158 var listener = |
| 159 overlay.on['iron-overlay-closed'].listen((event) { |
| 160 throw 'iron-overlay-closed should not fire'; |
| 161 }); |
| 162 fireEvent('click', null, document); |
| 163 wait(10).then((_) { |
| 164 listener.cancel(); |
| 165 done.complete(); |
| 166 }); |
| 167 }); |
| 168 return done.future; |
| 169 }); |
| 170 |
| 140 test('cancel an overlay with esc key', () { | 171 test('cancel an overlay with esc key', () { |
| 141 var done = new Completer(); | 172 var done = new Completer(); |
| 142 runAfterOpen(overlay, () { | 173 runAfterOpen(overlay, () { |
| 174 overlay.on['iron-overlay-canceled'].first.then((event) { |
| 175 done.complete(); |
| 176 }); |
| 177 fireEvent('keydown', { |
| 178 'keyCode': 27 |
| 179 }, document); |
| 180 }); |
| 181 }); |
| 182 |
| 183 test('close an overlay with esc key', () { |
| 184 var done = new Completer(); |
| 185 runAfterOpen(overlay, () { |
| 143 overlay.on['iron-overlay-closed'].take(1).listen((event) { | 186 overlay.on['iron-overlay-closed'].take(1).listen((event) { |
| 144 expect(event.detail['canceled'], isTrue, | 187 expect(event.detail['canceled'], isTrue, |
| 145 reason: 'overlay is canceled'); | 188 reason: 'overlay is canceled'); |
| 146 done.complete(); | 189 done.complete(); |
| 147 }); | 190 }); |
| 148 fireEvent('keydown', {'keyCode': 27}, document); | 191 fireEvent('keydown', {'keyCode': 27}, document); |
| 149 }); | 192 }); |
| 150 return done.future; | 193 return done.future; |
| 151 }); | 194 }); |
| 152 | 195 |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 298 expect(overlay.getAttribute('aria-hidden'), isNull, | 341 expect(overlay.getAttribute('aria-hidden'), isNull, |
| 299 reason: 'overlay does not have aria-hidden attribute'); | 342 reason: 'overlay does not have aria-hidden attribute'); |
| 300 return wait(1).then((_) { | 343 return wait(1).then((_) { |
| 301 overlay.close(); | 344 overlay.close(); |
| 302 expect(overlay.getAttribute('aria-hidden'), 'true', | 345 expect(overlay.getAttribute('aria-hidden'), 'true', |
| 303 reason: 'overlay has aria-hidden="true"'); | 346 reason: 'overlay has aria-hidden="true"'); |
| 304 }); | 347 }); |
| 305 }); | 348 }); |
| 306 }); | 349 }); |
| 307 } | 350 } |
| OLD | NEW |