mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
Fix PointerAddedEvent handling in LiveTestWidgetsFlutterBinding (#61102)
* Fix PointerAddedEvent handling in tester
This commit is contained in:
parent
cc1af3afb6
commit
61477b5949
@ -1433,8 +1433,11 @@ class LiveTestWidgetsFlutterBinding extends TestWidgetsFlutterBinding {
|
||||
switch (source) {
|
||||
case TestBindingEventSource.test:
|
||||
if (!renderView._pointers.containsKey(event.pointer)) {
|
||||
assert(event.down);
|
||||
renderView._pointers[event.pointer] = _LiveTestPointerRecord(event.pointer, event.position);
|
||||
assert(event.down || event is PointerAddedEvent);
|
||||
if (event.down) {
|
||||
renderView._pointers[event.pointer] = _LiveTestPointerRecord(
|
||||
event.pointer, event.position);
|
||||
}
|
||||
} else {
|
||||
renderView._pointers[event.pointer].position = event.position;
|
||||
if (!event.down)
|
||||
|
19
packages/flutter_test/test/live_binding_test.dart
Normal file
19
packages/flutter_test/test/live_binding_test.dart
Normal file
@ -0,0 +1,19 @@
|
||||
// Copyright 2014 The Flutter 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/material.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
// This file is for testings that require a `LiveTestWidgetsFlutterBinding`
|
||||
void main() {
|
||||
LiveTestWidgetsFlutterBinding();
|
||||
testWidgets('Input PointerAddedEvent', (WidgetTester tester) async {
|
||||
await tester.pumpWidget(const MaterialApp(home: Text('Test')));
|
||||
await tester.pump();
|
||||
final TestGesture gesture = await tester.createGesture();
|
||||
// This mimics the start of a gesture as seen on a device, where inputs
|
||||
// starts with a PointerAddedEvent.
|
||||
await gesture.addPointer();
|
||||
});
|
||||
}
|
Loading…
Reference in New Issue
Block a user