diff --git a/packages/fleather/test/widgets/editor_test.dart b/packages/fleather/test/widgets/editor_test.dart index 692145b6..d681d93b 100644 --- a/packages/fleather/test/widgets/editor_test.dart +++ b/packages/fleather/test/widgets/editor_test.dart @@ -299,6 +299,35 @@ void main() { expect(sentData?.delta, Delta()..insert('t T')); }); + testWidgets( + 'Copy sends correct data to clipboard manager when selection extents are inverted', + (tester) async { + prepareClipboard(); + FleatherClipboardData? sentData; + final editor = EditorSandBox( + tester: tester, + document: ParchmentDocument.fromJson([ + {'insert': 'Test Text\n'} + ]), + autofocus: true, + clipboardManager: FleatherCustomClipboardManager( + getData: () => throw UnimplementedError(), + setData: (data) async => sentData = data, + ), + ); + await editor.pump(); + final RawEditorState state = + tester.state(find.byType(RawEditor)); + await editor.updateSelection(base: 6, extent: 3); + state.showToolbar(createIfNull: true); + await tester.pump(); + final finder = find.text('Copy'); + await tester.tap(finder); + await tester.pumpAndSettle(throttleDuration); + expect(sentData?.plainText, 't T'); + expect(sentData?.delta, Delta()..insert('t T')); + }); + testWidgets('Cut intent sends data to clipboard manager', (tester) async { prepareClipboard(); FleatherClipboardData? sentData;