@@ -461,6 +461,7 @@ void main() {
461
461
final FakeRenderEditable renderEditable = tester.renderObject (find.byType (FakeEditable ));
462
462
expect (state.showToolbarCalled, isTrue);
463
463
expect (renderEditable.selectPositionAtCalled, isTrue);
464
+ expect (renderEditable.lastCause, SelectionChangedCause .longPress);
464
465
}, variant: const TargetPlatformVariant (< TargetPlatform > { TargetPlatform .iOS, TargetPlatform .macOS }));
465
466
466
467
testWidgets ('test TextSelectionGestureDetectorBuilder long press on non-Apple Platforms' , (WidgetTester tester) async {
@@ -477,6 +478,7 @@ void main() {
477
478
final FakeRenderEditable renderEditable = tester.renderObject (find.byType (FakeEditable ));
478
479
expect (state.showToolbarCalled, isTrue);
479
480
expect (renderEditable.selectWordCalled, isTrue);
481
+ expect (renderEditable.lastCause, SelectionChangedCause .longPress);
480
482
}, variant: TargetPlatformVariant .all (excluding: < TargetPlatform > { TargetPlatform .iOS, TargetPlatform .macOS }));
481
483
482
484
testWidgets ('TextSelectionGestureDetectorBuilder right click Apple platforms' , (WidgetTester tester) async {
@@ -503,6 +505,7 @@ void main() {
503
505
await gesture.up ();
504
506
await tester.pump ();
505
507
expect (renderEditable.selectWordCalled, isTrue);
508
+ expect (renderEditable.lastCause, SelectionChangedCause .tap);
506
509
507
510
// Right clicking on a word within a selection shouldn't change the selection
508
511
renderEditable.selectWordCalled = false ;
@@ -589,13 +592,15 @@ void main() {
589
592
switch (defaultTargetPlatform) {
590
593
case TargetPlatform .iOS:
591
594
expect (renderEditable.selectWordEdgeCalled, isTrue);
595
+ expect (renderEditable.lastCause, SelectionChangedCause .tap);
592
596
break ;
593
597
case TargetPlatform .macOS:
594
598
case TargetPlatform .android:
595
599
case TargetPlatform .fuchsia:
596
600
case TargetPlatform .linux:
597
601
case TargetPlatform .windows:
598
602
expect (renderEditable.selectPositionAtCalled, isTrue);
603
+ expect (renderEditable.lastCause, SelectionChangedCause .tap);
599
604
break ;
600
605
}
601
606
}, variant: TargetPlatformVariant .all ());
@@ -628,6 +633,7 @@ void main() {
628
633
case TargetPlatform .linux:
629
634
case TargetPlatform .windows:
630
635
expect (renderEditable.selectPositionAtCalled, isTrue);
636
+ expect (renderEditable.lastCause, SelectionChangedCause .tap);
631
637
break ;
632
638
}
633
639
}, variant: TargetPlatformVariant .all ());
@@ -670,6 +676,7 @@ void main() {
670
676
final FakeRenderEditable renderEditable = tester.renderObject (find.byType (FakeEditable ));
671
677
expect (state.showToolbarCalled, isTrue);
672
678
expect (renderEditable.selectWordCalled, isTrue);
679
+ expect (renderEditable.lastCause, SelectionChangedCause .doubleTap);
673
680
});
674
681
675
682
testWidgets ('test TextSelectionGestureDetectorBuilder forcePress enabled' , (WidgetTester tester) async {
@@ -1671,18 +1678,22 @@ class FakeRenderEditable extends RenderEditable {
1671
1678
),
1672
1679
);
1673
1680
1681
+ SelectionChangedCause ? lastCause;
1682
+
1674
1683
bool selectWordsInRangeCalled = false ;
1675
1684
@override
1676
1685
void selectWordsInRange ({ required Offset from, Offset ? to, required SelectionChangedCause cause }) {
1677
1686
selectWordsInRangeCalled = true ;
1678
1687
hasFocus = true ;
1688
+ lastCause = cause;
1679
1689
}
1680
1690
1681
1691
bool selectWordEdgeCalled = false ;
1682
1692
@override
1683
1693
void selectWordEdge ({ required SelectionChangedCause cause }) {
1684
1694
selectWordEdgeCalled = true ;
1685
1695
hasFocus = true ;
1696
+ lastCause = cause;
1686
1697
}
1687
1698
1688
1699
bool selectPositionAtCalled = false ;
@@ -1694,12 +1705,14 @@ class FakeRenderEditable extends RenderEditable {
1694
1705
selectPositionAtFrom = from;
1695
1706
selectPositionAtTo = to;
1696
1707
hasFocus = true ;
1708
+ lastCause = cause;
1697
1709
}
1698
1710
1699
1711
bool selectPositionCalled = false ;
1700
1712
@override
1701
1713
void selectPosition ({ required SelectionChangedCause cause }) {
1702
1714
selectPositionCalled = true ;
1715
+ lastCause = cause;
1703
1716
return super .selectPosition (cause: cause);
1704
1717
}
1705
1718
@@ -1708,6 +1721,7 @@ class FakeRenderEditable extends RenderEditable {
1708
1721
void selectWord ({ required SelectionChangedCause cause }) {
1709
1722
selectWordCalled = true ;
1710
1723
hasFocus = true ;
1724
+ lastCause = cause;
1711
1725
}
1712
1726
1713
1727
@override
0 commit comments