Skip to content

Commit 3dc543e

Browse files
committed
Added controller tests for code coverage
1 parent 1b3d94c commit 3dc543e

1 file changed

Lines changed: 69 additions & 0 deletions

File tree

test/chewie_controller_test.dart

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
import 'package:chewie/chewie.dart';
2+
import 'package:chewie/src/helpers/fullscreen_controller.dart';
3+
import 'package:flutter_test/flutter_test.dart';
4+
import 'package:video_player/video_player.dart';
5+
6+
void main() {
7+
group('ChewieController', () {
8+
late VideoPlayerController videoPlayerController;
9+
10+
setUp(() {
11+
videoPlayerController = VideoPlayerController.networkUrl(
12+
Uri.parse('https://example.com/video.mp4'),
13+
);
14+
});
15+
16+
test('sets useNativeWebFullscreen to true by default', () {
17+
final controller = ChewieController(
18+
videoPlayerController: videoPlayerController,
19+
);
20+
21+
expect(controller.useNativeWebFullscreen, true);
22+
23+
controller.dispose();
24+
});
25+
26+
test('assigns unique textureId to each controller', () {
27+
final controller1 = ChewieController(
28+
videoPlayerController: videoPlayerController,
29+
);
30+
final controller2 = ChewieController(
31+
videoPlayerController: videoPlayerController,
32+
);
33+
34+
expect(controller1.textureId, isNot(controller2.textureId));
35+
36+
controller1.dispose();
37+
controller2.dispose();
38+
});
39+
40+
test('toggleFullScreen toggles isFullScreen on non-web', () {
41+
final controller = ChewieController(
42+
videoPlayerController: videoPlayerController,
43+
);
44+
45+
expect(controller.isFullScreen, false);
46+
controller.toggleFullScreen();
47+
expect(controller.isFullScreen, true);
48+
controller.toggleFullScreen();
49+
expect(controller.isFullScreen, false);
50+
51+
controller.dispose();
52+
});
53+
54+
test('copyWith preserves useNativeWebFullscreen', () {
55+
final controller = ChewieController(
56+
videoPlayerController: videoPlayerController,
57+
useNativeWebFullscreen: false,
58+
);
59+
60+
expect(controller.useNativeWebFullscreen, false);
61+
62+
final copied = controller.copyWith(useNativeWebFullscreen: true);
63+
expect(copied.useNativeWebFullscreen, true);
64+
65+
controller.dispose();
66+
copied.dispose();
67+
});
68+
});
69+
}

0 commit comments

Comments
 (0)