Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
110 changes: 58 additions & 52 deletions packages/video_player/example/integration_test/video_player_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart' show rootBundle;
import 'package:flutter_test/flutter_test.dart';
import 'package:flutter_tizen/flutter_tizen.dart';
import 'package:integration_test/integration_test.dart';
import 'package:path_provider/path_provider.dart';
import 'package:video_player/video_player.dart';
Expand Down Expand Up @@ -318,65 +319,70 @@ void main() {

// Audio playback is tested to prevent accidental regression,
// but could be removed in the future.
group('asset audios', () {
setUp(() {
controller = VideoPlayerController.asset('assets/Audio.mp3');
});

testWidgets('can be initialized', (WidgetTester tester) async {
await controller.initialize();
group(
'asset audios',
() {
setUp(() {
controller = VideoPlayerController.asset('assets/Audio.mp3');
});

testWidgets('can be initialized', (WidgetTester tester) async {
await controller.initialize();

expect(controller.value.isInitialized, true);
expect(controller.value.position, Duration.zero);
expect(controller.value.isPlaying, false);
// Due to the duration calculation accuracy between platforms,
// the milliseconds on Web will be a slightly different from natives.
// The audio was made with 44100 Hz, 192 Kbps CBR, and 32 bits.
expect(
controller.value.duration,
const Duration(seconds: 5, milliseconds: kIsWeb ? 42 : 41),
);
});
expect(controller.value.isInitialized, true);
expect(controller.value.position, Duration.zero);
expect(controller.value.isPlaying, false);
// Due to the duration calculation accuracy between platforms,
// the milliseconds on Web will be a slightly different from natives.
// The audio was made with 44100 Hz, 192 Kbps CBR, and 32 bits.
expect(
controller.value.duration,
const Duration(seconds: 5, milliseconds: kIsWeb ? 42 : 41),
);
});

testWidgets('can be played', (WidgetTester tester) async {
await controller.initialize();
// Mute to allow playing without DOM interaction on Web.
// See https://developers.google.com/web/updates/2017/09/autoplay-policy-changes
await controller.setVolume(0);
testWidgets('can be played', (WidgetTester tester) async {
await controller.initialize();
// Mute to allow playing without DOM interaction on Web.
// See https://developers.google.com/web/updates/2017/09/autoplay-policy-changes
await controller.setVolume(0);

await controller.play();
await tester.pumpAndSettle(_playDuration);
await controller.play();
await tester.pumpAndSettle(_playDuration);

expect(controller.value.isPlaying, true);
expect(
controller.value.position,
(Duration position) => position > Duration.zero,
);
});
expect(controller.value.isPlaying, true);
expect(
controller.value.position,
(Duration position) => position > Duration.zero,
);
});

testWidgets('can seek', (WidgetTester tester) async {
await controller.initialize();
await controller.seekTo(const Duration(seconds: 3));
testWidgets('can seek', (WidgetTester tester) async {
await controller.initialize();
await controller.seekTo(const Duration(seconds: 3));

expect(controller.value.position, const Duration(seconds: 3));
});
expect(controller.value.position, const Duration(seconds: 3));
});

testWidgets('can be paused', (WidgetTester tester) async {
await controller.initialize();
// Mute to allow playing without DOM interaction on Web.
// See https://developers.google.com/web/updates/2017/09/autoplay-policy-changes
await controller.setVolume(0);
testWidgets('can be paused', (WidgetTester tester) async {
await controller.initialize();
// Mute to allow playing without DOM interaction on Web.
// See https://developers.google.com/web/updates/2017/09/autoplay-policy-changes
await controller.setVolume(0);

// Play for a second, then pause, and then wait a second.
await controller.play();
await tester.pumpAndSettle(_playDuration);
await controller.pause();
final Duration pausedPosition = controller.value.position;
await tester.pumpAndSettle(_playDuration);
// Play for a second, then pause, and then wait a second.
await controller.play();
await tester.pumpAndSettle(_playDuration);
await controller.pause();
final Duration pausedPosition = controller.value.position;
await tester.pumpAndSettle(_playDuration);

// Verify that we stopped playing after the pause.
expect(controller.value.isPlaying, false);
expect(controller.value.position, pausedPosition);
});
});
// Verify that we stopped playing after the pause.
expect(controller.value.isPlaying, false);
expect(controller.value.position, pausedPosition);
});
},
// NOTE(seungsoo47): Unknown errors sometimes occur in RPI.
skip: isTizenProfile,
);
}
1 change: 1 addition & 0 deletions packages/video_player/example/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ dev_dependencies:
sdk: flutter
flutter_test:
sdk: flutter
flutter_tizen: ^0.2.5
integration_test:
sdk: flutter
integration_test_tizen:
Expand Down
Loading