// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. library wheel_event_test; import 'dart:async'; import 'dart:html'; import 'package:expect/minitest.dart'; Future testWheelEvent() async { final done = new Completer(); var element = new DivElement(); var eventType = Element.mouseWheelEvent.getEventType(element); element.onMouseWheel.listen((e) { try { expect(e.screen.x, 100); expect(e.deltaX, 0); expect(e.deltaY.toDouble(), 240.0); expect(e.deltaMode, WheelEvent.DOM_DELTA_PAGE); done.complete(); } catch (e) { done.completeError(e); } }); var event = new WheelEvent(eventType, deltaX: 0, deltaY: 240, deltaMode: WheelEvent.DOM_DELTA_PAGE, screenX: 100); element.dispatchEvent(event); await done.future; } Future testWheelEventWithDeltaZ() async { final done = new Completer(); var element = new DivElement(); var eventType = Element.mouseWheelEvent.getEventType(element); element.onMouseWheel.listen((e) { try { expect(e.deltaX, 0); expect(e.deltaY, 0); expect(e.screen.x, 0); expect(e.deltaZ.toDouble(), 1.0); done.complete(); } catch (e) { done.completeError(e); } }); var event = new WheelEvent(eventType, deltaZ: 1.0); element.dispatchEvent(event); await done.future; } Future testWheelEventStream() async { final done = new Completer(); var element = new DivElement(); var eventType = Element.mouseWheelEvent.getEventType(element); element.onMouseWheel.listen((e) { try { expect(e.screen.x, 100); expect(e.deltaX.toDouble(), 240.0); expect(e.deltaY, 0); done.complete(); } catch (e) { done.completeError(e); } }); var event = new WheelEvent(eventType, deltaX: 240, deltaY: 0, screenX: 100); element.dispatchEvent(event); await done.future; } main() async { await testWheelEvent(); await testWheelEventWithDeltaZ(); await testWheelEventStream(); }