| Index: tests/html/event_zone_task_test.dart
|
| diff --git a/tests/html/event_zone_task_test.dart b/tests/html/event_zone_task_test.dart
|
| deleted file mode 100644
|
| index a0e85c8a749a0535eb97cd181adecbe164932614..0000000000000000000000000000000000000000
|
| --- a/tests/html/event_zone_task_test.dart
|
| +++ /dev/null
|
| @@ -1,239 +0,0 @@
|
| -// Copyright (c) 2016, 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 EventTaskZoneTest;
|
| -
|
| -import 'package:unittest/unittest.dart';
|
| -import 'package:unittest/html_config.dart';
|
| -import 'dart:async';
|
| -import 'dart:html';
|
| -
|
| -// Tests zone tasks with DOM events.
|
| -
|
| -class AbortedEventStreamSubscription implements StreamSubscription<Event> {
|
| - final Zone zone;
|
| -
|
| - AbortedEventStreamSubscription(this.zone);
|
| -
|
| - @override
|
| - Future asFuture([futureValue]) {
|
| - throw new UnsupportedError("asFuture");
|
| - }
|
| -
|
| - @override
|
| - Future cancel() {
|
| - return null;
|
| - }
|
| -
|
| - @override
|
| - bool get isPaused => throw new UnsupportedError("pause");
|
| -
|
| - @override
|
| - void onData(void handleData(Event data)) {
|
| - throw new UnsupportedError("cancel");
|
| - }
|
| -
|
| - @override
|
| - void onDone(void handleDone()) {
|
| - throw new UnsupportedError("onDone");
|
| - }
|
| -
|
| - @override
|
| - void onError(Function handleError) {
|
| - throw new UnsupportedError("onError");
|
| - }
|
| -
|
| - @override
|
| - void pause([Future resumeSignal]) {
|
| - throw new UnsupportedError("pause");
|
| - }
|
| -
|
| - @override
|
| - void resume() {
|
| - throw new UnsupportedError("resume");
|
| - }
|
| -
|
| - static AbortedEventStreamSubscription _create(
|
| - EventSubscriptionSpecification spec, Zone zone) {
|
| - return new AbortedEventStreamSubscription(zone);
|
| - }
|
| -}
|
| -
|
| -eventTest(String name, Event eventFn(), void validate(Event event),
|
| - void validateSpec(EventSubscriptionSpecification spec),
|
| - {String type: 'foo',
|
| - bool abortCreation: false,
|
| - EventSubscriptionSpecification modifySpec(
|
| - EventSubscriptionSpecification spec),
|
| - bool abortEvent: false,
|
| - Event modifyEvent(Event event)}) {
|
| - test(name, () {
|
| - var lastSpec;
|
| - var lastTask;
|
| - var lastEvent;
|
| -
|
| - Object createTaskHandler(Zone self, ZoneDelegate parent, Zone zone,
|
| - TaskCreate create, TaskSpecification specification) {
|
| - if (specification is EventSubscriptionSpecification) {
|
| - if (abortCreation) {
|
| - create = AbortedEventStreamSubscription._create;
|
| - }
|
| - if (modifySpec != null) {
|
| - specification = modifySpec(specification);
|
| - }
|
| - lastSpec = specification;
|
| - return lastTask = parent.createTask(zone, create, specification);
|
| - }
|
| - return parent.createTask(zone, create, specification);
|
| - }
|
| -
|
| - void runTaskHandler(Zone self, ZoneDelegate parent, Zone zone, TaskRun run,
|
| - Object task, Object arg) {
|
| - if (identical(task, lastTask)) {
|
| - if (abortEvent) return;
|
| - if (modifyEvent != null) {
|
| - arg = modifyEvent(arg);
|
| - }
|
| - parent.runTask(zone, run, task, arg);
|
| - return;
|
| - }
|
| - parent.runTask(zone, run, task, arg);
|
| - }
|
| -
|
| - runZoned(() {
|
| - final el = new Element.tag('div');
|
| - var fired = false;
|
| - var sub = el.on[type].listen((ev) {
|
| - lastEvent = ev;
|
| - fired = true;
|
| - });
|
| - el.dispatchEvent(eventFn());
|
| -
|
| - validateSpec(lastSpec);
|
| - validate(lastEvent);
|
| -
|
| - if (abortEvent || abortCreation) {
|
| - expect(fired, isFalse, reason: 'Expected event to be intercepted.');
|
| - } else {
|
| - expect(fired, isTrue, reason: 'Expected event to be dispatched.');
|
| - }
|
| -
|
| - sub.cancel();
|
| - },
|
| - zoneSpecification: new ZoneSpecification(
|
| - createTask: createTaskHandler,
|
| - runTask: runTaskHandler));
|
| - });
|
| -}
|
| -
|
| -Function checkSpec(
|
| - [String expectedType = 'foo', bool expectedUseCapture = false]) {
|
| - return (EventSubscriptionSpecification spec) {
|
| - expect(spec.eventType, expectedType);
|
| - expect(spec.useCapture, expectedUseCapture);
|
| - };
|
| -}
|
| -
|
| -main() {
|
| - useHtmlConfiguration();
|
| -
|
| - eventTest('Event', () => new Event('foo'), (ev) {
|
| - expect(ev.type, equals('foo'));
|
| - }, checkSpec('foo'));
|
| -
|
| - eventTest(
|
| - 'WheelEvent',
|
| - () => new WheelEvent("mousewheel",
|
| - deltaX: 1,
|
| - deltaY: 0,
|
| - detail: 4,
|
| - screenX: 3,
|
| - screenY: 4,
|
| - clientX: 5,
|
| - clientY: 6,
|
| - ctrlKey: true,
|
| - altKey: true,
|
| - shiftKey: true,
|
| - metaKey: true), (ev) {
|
| - expect(ev.deltaX, 1);
|
| - expect(ev.deltaY, 0);
|
| - expect(ev.screen.x, 3);
|
| - expect(ev.screen.y, 4);
|
| - expect(ev.client.x, 5);
|
| - expect(ev.client.y, 6);
|
| - expect(ev.ctrlKey, isTrue);
|
| - expect(ev.altKey, isTrue);
|
| - expect(ev.shiftKey, isTrue);
|
| - expect(ev.metaKey, isTrue);
|
| - }, checkSpec('mousewheel'), type: 'mousewheel');
|
| -
|
| - eventTest('Event - no-create', () => new Event('foo'), (ev) {
|
| - expect(ev, isNull);
|
| - }, checkSpec('foo'), abortCreation: true);
|
| -
|
| - eventTest(
|
| - 'WheelEvent - no-create',
|
| - () => new WheelEvent("mousewheel",
|
| - deltaX: 1,
|
| - deltaY: 0,
|
| - detail: 4,
|
| - screenX: 3,
|
| - screenY: 4,
|
| - clientX: 5,
|
| - clientY: 6,
|
| - ctrlKey: true,
|
| - altKey: true,
|
| - shiftKey: true,
|
| - metaKey: true), (ev) {
|
| - expect(ev, isNull);
|
| - }, checkSpec('mousewheel'), type: 'mousewheel', abortCreation: true);
|
| -
|
| - eventTest('Event - no-run', () => new Event('foo'), (ev) {
|
| - expect(ev, isNull);
|
| - }, checkSpec('foo'), abortEvent: true);
|
| -
|
| - eventTest(
|
| - 'WheelEvent - no-run',
|
| - () => new WheelEvent("mousewheel",
|
| - deltaX: 1,
|
| - deltaY: 0,
|
| - detail: 4,
|
| - screenX: 3,
|
| - screenY: 4,
|
| - clientX: 5,
|
| - clientY: 6,
|
| - ctrlKey: true,
|
| - altKey: true,
|
| - shiftKey: true,
|
| - metaKey: true), (ev) {
|
| - expect(ev, isNull);
|
| - }, checkSpec('mousewheel'), type: 'mousewheel', abortEvent: true);
|
| -
|
| - // Register for 'foo', but receive a 'bar' event, because the specification
|
| - // is rewritten.
|
| - eventTest(
|
| - 'Event - replace eventType',
|
| - () => new Event('bar'),
|
| - (ev) {
|
| - expect(ev.type, equals('bar'));
|
| - },
|
| - checkSpec('bar'),
|
| - type: 'foo',
|
| - modifySpec: (EventSubscriptionSpecification spec) {
|
| - return spec.replace(eventType: 'bar');
|
| - });
|
| -
|
| - // Intercept the 'foo' event and replace it with a 'bar' event.
|
| - eventTest(
|
| - 'Event - intercept result',
|
| - () => new Event('foo'),
|
| - (ev) {
|
| - expect(ev.type, equals('bar'));
|
| - },
|
| - checkSpec('foo'),
|
| - type: 'foo',
|
| - modifyEvent: (Event event) {
|
| - return new Event('bar');
|
| - });
|
| -}
|
|
|