OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 library transition_event_test; | 5 library transition_event_test; |
6 import '../../pkg/unittest/lib/unittest.dart'; | 6 import '../../pkg/unittest/lib/unittest.dart'; |
7 import '../../pkg/unittest/lib/html_individual_config.dart'; | 7 import '../../pkg/unittest/lib/html_individual_config.dart'; |
8 import 'dart:html'; | 8 import 'dart:html'; |
| 9 import 'dart:async'; |
9 | 10 |
10 main() { | 11 main() { |
11 useHtmlIndividualConfiguration(); | 12 useHtmlIndividualConfiguration(); |
12 | 13 |
13 group('supported', () { | 14 group('supported', () { |
14 test('supported', () { | 15 test('supported', () { |
15 expect(CssStyleDeclaration.supportsTransitions, true); | 16 expect(CssStyleDeclaration.supportsTransitions, true); |
16 }); | 17 }); |
17 }); | 18 }); |
18 | 19 |
19 group('functional', () { | 20 group('functional', () { |
20 test('transitionEnd', () { | 21 test('transitionEnd', () { |
21 if (CssStyleDeclaration.supportsTransitions) { | 22 if (CssStyleDeclaration.supportsTransitions) { |
22 var element = new DivElement(); | 23 var element = new DivElement(); |
23 document.body.append(element); | 24 document.body.append(element); |
24 | 25 |
25 element.style.opacity = '0'; | 26 element.style.opacity = '0'; |
26 element.style.width = '100px'; | 27 element.style.width = '100px'; |
27 element.style.height = '100px'; | 28 element.style.height = '100px'; |
28 element.style.background = 'red'; | 29 element.style.background = 'red'; |
29 element.style.transition = 'opacity .1s'; | 30 element.style.transition = 'opacity .1s'; |
30 | 31 |
31 window.setTimeout(expectAsync0(() { | 32 new Timer(const Duration(milliseconds: 100), expectAsync0(() { |
32 element.onTransitionEnd.first.then(expectAsync1((e) { | 33 element.onTransitionEnd.first.then(expectAsync1((e) { |
33 expect(e is TransitionEvent, isTrue); | 34 expect(e is TransitionEvent, isTrue); |
34 expect(e.propertyName, 'opacity'); | 35 expect(e.propertyName, 'opacity'); |
35 })); | 36 })); |
36 | 37 |
37 element.style.opacity = '1'; | 38 element.style.opacity = '1'; |
38 }), 100); | 39 })); |
39 } | 40 } |
40 }); | 41 }); |
41 }); | 42 }); |
42 } | 43 } |
OLD | NEW |