33// found in the LICENSE file.
44
55import 'dart:async' ;
6+ import 'dart:js_interop' ;
7+ import 'dart:js_interop_unsafe' ;
68
79import 'package:flutter_test/flutter_test.dart' ;
810import 'package:integration_test/integration_test.dart' ;
@@ -27,6 +29,18 @@ void main() {
2729 ..playsInline = false ;
2830 });
2931
32+ testWidgets ('initialize() calls load' , (WidgetTester _) async {
33+ bool loadCalled = false ;
34+
35+ video['load' ] = () {
36+ loadCalled = true ;
37+ }.toJS;
38+
39+ VideoPlayer (videoElement: video).initialize ();
40+
41+ expect (loadCalled, isTrue);
42+ });
43+
3044 testWidgets ('fixes critical video element config' , (WidgetTester _) async {
3145 VideoPlayer (videoElement: video).initialize ();
3246
@@ -130,6 +144,11 @@ void main() {
130144 );
131145 });
132146
147+ tearDown (() {
148+ streamController.close ();
149+ player.dispose ();
150+ });
151+
133152 testWidgets ('buffering dispatches only when it changes' ,
134153 (WidgetTester tester) async {
135154 // Take all the "buffering" events that we see during the next few seconds
@@ -222,8 +241,7 @@ void main() {
222241 expect (events[0 ].eventType, VideoEventType .initialized);
223242 });
224243
225- // Issue: https://github.com/flutter/flutter/issues/137023
226- testWidgets ('loadedmetadata dispatches initialized' ,
244+ testWidgets ('loadedmetadata does not dispatch initialized' ,
227245 (WidgetTester tester) async {
228246 video.dispatchEvent (web.Event ('loadedmetadata' ));
229247 video.dispatchEvent (web.Event ('loadedmetadata' ));
@@ -235,8 +253,22 @@ void main() {
235253
236254 final List <VideoEvent > events = await stream;
237255
238- expect (events, hasLength (1 ));
239- expect (events[0 ].eventType, VideoEventType .initialized);
256+ expect (events, isEmpty);
257+ });
258+
259+ testWidgets ('loadeddata does not dispatch initialized' ,
260+ (WidgetTester tester) async {
261+ video.dispatchEvent (web.Event ('loadeddata' ));
262+ video.dispatchEvent (web.Event ('loadeddata' ));
263+
264+ final Future <List <VideoEvent >> stream = timedStream
265+ .where ((VideoEvent event) =>
266+ event.eventType == VideoEventType .initialized)
267+ .toList ();
268+
269+ final List <VideoEvent > events = await stream;
270+
271+ expect (events, isEmpty);
240272 });
241273
242274 // Issue: https://github.com/flutter/flutter/issues/105649
0 commit comments