@@ -414,6 +414,30 @@ class _TestWidgetInspectorService extends TestWidgetInspectorService {
414
414
);
415
415
}
416
416
417
+ Future <void > panAndVerifyWidgetSelection ({
418
+ required Finder startAt,
419
+ required Finder endAt,
420
+ required bool isSelected,
421
+ required GlobalKey widgetKey,
422
+ }) async {
423
+ // Pan to the widget.
424
+ final ui.Offset start = tester.getCenter (startAt);
425
+ final ui.Offset end = tester.getCenter (endAt);
426
+ await tester.dragFrom (
427
+ tester.getCenter (startAt),
428
+ Offset (end.dx - start.dx, end.dy - start.dy),
429
+ );
430
+ await tester.pump ();
431
+
432
+ // Verify the pan end was intercepted by the Widget Inspector.
433
+ final RenderObject renderObject =
434
+ find.byKey (widgetKey).evaluate ().first.renderObject! ;
435
+ expect (
436
+ WidgetInspectorService .instance.selection.candidates,
437
+ contains (renderObject),
438
+ );
439
+ }
440
+
417
441
await tester.pumpWidget (
418
442
Directionality (
419
443
textDirection: TextDirection .ltr,
@@ -475,6 +499,37 @@ class _TestWidgetInspectorService extends TestWidgetInspectorService {
475
499
);
476
500
expect (log, equals (< String > []));
477
501
502
+
503
+ // Now pan to the top button and verify it's selected in the Inspector.
504
+ await panAndVerifyWidgetSelection (
505
+ startAt: find.text ('BOTTOM' ),
506
+ endAt: find.text ('TOP' ),
507
+ isSelected: true ,
508
+ widgetKey: topButtonKey,
509
+ );
510
+ expect (
511
+ paragraphText (
512
+ WidgetInspectorService .instance.selection.current! as RenderParagraph ,
513
+ ),
514
+ equals ('TOP' ),
515
+ );
516
+ expect (log, equals (< String > []));
517
+
518
+ // Now pan to the bottom button and verify it's selected in the Inspector.
519
+ await panAndVerifyWidgetSelection (
520
+ startAt: find.text ('TOP' ),
521
+ endAt: find.text ('BOTTOM' ),
522
+ isSelected: true ,
523
+ widgetKey: bottomButtonKey,
524
+ );
525
+ expect (
526
+ paragraphText (
527
+ WidgetInspectorService .instance.selection.current! as RenderParagraph ,
528
+ ),
529
+ equals ('BOTTOM' ),
530
+ );
531
+ expect (log, equals (< String > []));
532
+
478
533
// Now exit selection mode by tapping the Exit Selection Mode button.
479
534
await tester.tap (find.byKey (exitWidgetSelectionButtonKey));
480
535
await tester.pump ();
0 commit comments