// Copyright 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import 'package:flutter_test/flutter_test.dart'; import 'package:flutter/gestures.dart'; import 'gesture_tester.dart'; void main() { setUp(ensureGestureBinding); testGesture('toString control tests', (GestureTester tester) { expect(const PointerDownEvent(), hasOneLineDescription); expect(const PointerDownEvent().toStringFull(), hasOneLineDescription); }); testGesture('nthMouseButton control tests', (GestureTester tester) { expect(nthMouseButton(2), kSecondaryMouseButton); expect(nthStylusButton(2), kSecondaryStylusButton); }); group('fromMouseEvent', () { const PointerEvent hover = PointerHoverEvent( timeStamp: Duration(days: 1), kind: PointerDeviceKind.unknown, device: 10, position: Offset(101.0, 202.0), buttons: 7, obscured: true, pressureMax: 2.1, pressureMin: 1.1, distance: 11, distanceMax: 110, size: 11, radiusMajor: 11, radiusMinor: 9, radiusMin: 1.1, radiusMax: 22, orientation: 1.1, tilt: 1.1, synthesized: true, ); test('PointerEnterEvent.fromMouseEvent', () { final PointerEnterEvent event = PointerEnterEvent.fromMouseEvent(hover); const PointerEnterEvent empty = PointerEnterEvent(); expect(event.timeStamp, hover.timeStamp); expect(event.pointer, empty.pointer); expect(event.kind, hover.kind); expect(event.device, hover.device); expect(event.position, hover.position); expect(event.buttons, hover.buttons); expect(event.down, empty.down); expect(event.obscured, hover.obscured); expect(event.pressure, empty.pressure); expect(event.pressureMin, hover.pressureMin); expect(event.pressureMax, hover.pressureMax); expect(event.distance, hover.distance); expect(event.distanceMax, hover.distanceMax); expect(event.distanceMax, hover.distanceMax); expect(event.size, hover.size); expect(event.radiusMajor, hover.radiusMajor); expect(event.radiusMinor, hover.radiusMinor); expect(event.radiusMin, hover.radiusMin); expect(event.radiusMax, hover.radiusMax); expect(event.orientation, hover.orientation); expect(event.tilt, hover.tilt); expect(event.synthesized, hover.synthesized); }); test('PointerExitEvent.fromMouseEvent', () { final PointerExitEvent event = PointerExitEvent.fromMouseEvent(hover); const PointerExitEvent empty = PointerExitEvent(); expect(event.timeStamp, hover.timeStamp); expect(event.pointer, empty.pointer); expect(event.kind, hover.kind); expect(event.device, hover.device); expect(event.position, hover.position); expect(event.buttons, hover.buttons); expect(event.down, empty.down); expect(event.obscured, hover.obscured); expect(event.pressure, empty.pressure); expect(event.pressureMin, hover.pressureMin); expect(event.pressureMax, hover.pressureMax); expect(event.distance, hover.distance); expect(event.distanceMax, hover.distanceMax); expect(event.distanceMax, hover.distanceMax); expect(event.size, hover.size); expect(event.radiusMajor, hover.radiusMajor); expect(event.radiusMinor, hover.radiusMinor); expect(event.radiusMin, hover.radiusMin); expect(event.radiusMax, hover.radiusMax); expect(event.orientation, hover.orientation); expect(event.tilt, hover.tilt); expect(event.synthesized, hover.synthesized); }); }); group('Default values of PointerEvents:', () { // Some parameters are intentionally set to a non-trivial value. test('PointerDownEvent', () { const PointerDownEvent event = PointerDownEvent(); expect(event.buttons, kPrimaryButton); }); test('PointerMoveEvent', () { const PointerMoveEvent event = PointerMoveEvent(); expect(event.buttons, kPrimaryButton); }); }); }