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