gesture_tester.dart 885 Bytes
Newer Older
Ian Hickson's avatar
Ian Hickson committed
1
// Copyright 2014 The Flutter Authors. All rights reserved.
2 3 4
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

5
import 'package:fake_async/fake_async.dart';
6
import 'package:flutter/gestures.dart';
7
import 'package:flutter_test/flutter_test.dart';
8
import 'package:meta/meta.dart';
9

10 11 12 13 14 15
class GestureTester {
  GestureTester._(this.async);

  final FakeAsync async;

  void closeArena(int pointer) {
16
    GestureBinding.instance.gestureArena.close(pointer);
17 18 19
  }

  void route(PointerEvent event) {
20
    GestureBinding.instance.pointerRouter.route(event);
21 22 23 24
    async.flushMicrotasks();
  }
}

25
typedef GestureTest = void Function(GestureTester tester);
26

27
@isTest
28 29
void testGesture(String description, GestureTest callback) {
  test(description, () {
30 31
    FakeAsync().run((FakeAsync async) {
      callback(GestureTester._(async));
32 33 34
    });
  });
}