dragCaretByDistanceInSuperTextField method

Future<TestGesture> dragCaretByDistanceInSuperTextField(
  1. Offset delta, [
  2. Finder? superTextFieldFinder
])

Implementation

Future<TestGesture> dragCaretByDistanceInSuperTextField(Offset delta, [Finder? superTextFieldFinder]) async {
  final caretLayerFinder = find.descendant(
    of: superTextFieldFinder ?? find.byType(SuperTextField),
    matching: find.byType(TextLayoutCaret),
  );
  expect(caretLayerFinder, findsOne);

  final caretLayerElement = caretLayerFinder.evaluate().first as StatefulElement;
  final caretLayerState = caretLayerElement.state as TextLayoutCaretState;
  final caretGeometry = caretLayerState.globalCaretGeometry!;

  final gesture = await startGesture(caretGeometry.center);
  await pump(kTapMinTime);

  for (int i = 0; i < 50; i += 1) {
    await gesture.moveBy(delta / 50);
    await pump(const Duration(milliseconds: 50));
  }

  return gesture;
}