@@ -478,6 +478,60 @@ void main() {
478478 });
479479 });
480480
481+ group ('scrubbing' , () {
482+ testWidgets ('restarts on release if already playing' ,
483+ (WidgetTester tester) async {
484+ final VideoPlayerController controller = VideoPlayerController .network (
485+ 'https://127.0.0.1' ,
486+ );
487+ await controller.initialize ();
488+ final progressWidget =
489+ VideoProgressIndicator (controller, allowScrubbing: true );
490+
491+ await tester.pumpWidget (Directionality (
492+ textDirection: TextDirection .ltr,
493+ child: progressWidget,
494+ ));
495+
496+ await controller.play ();
497+ expect (controller.value.isPlaying, isTrue);
498+
499+ final Rect progressRect = tester.getRect (find.byWidget (progressWidget));
500+ await tester.dragFrom (progressRect.center, Offset (1.0 , 0.0 ));
501+ await tester.pumpAndSettle ();
502+
503+ expect (controller.value.position, lessThan (controller.value.duration));
504+ expect (controller.value.isPlaying, isTrue);
505+
506+ await controller.pause ();
507+ });
508+
509+ testWidgets ('does not restart when dragging to end' ,
510+ (WidgetTester tester) async {
511+ final VideoPlayerController controller = VideoPlayerController .network (
512+ 'https://127.0.0.1' ,
513+ );
514+ await controller.initialize ();
515+ final progressWidget =
516+ VideoProgressIndicator (controller, allowScrubbing: true );
517+
518+ await tester.pumpWidget (Directionality (
519+ textDirection: TextDirection .ltr,
520+ child: progressWidget,
521+ ));
522+
523+ await controller.play ();
524+ expect (controller.value.isPlaying, isTrue);
525+
526+ final Rect progressRect = tester.getRect (find.byWidget (progressWidget));
527+ await tester.dragFrom (progressRect.center, progressRect.centerRight);
528+ await tester.pumpAndSettle ();
529+
530+ expect (controller.value.position, controller.value.duration);
531+ expect (controller.value.isPlaying, isFalse);
532+ });
533+ });
534+
481535 group ('caption' , () {
482536 test ('works when seeking' , () async {
483537 final VideoPlayerController controller = VideoPlayerController .network (
0 commit comments