58 lines
1.5 KiB
Dart
58 lines
1.5 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:smplayer/core/infra/player_engine/player_engine.dart';
|
|
import 'package:smplayer/features/player/widgets/track_selector_button.dart';
|
|
|
|
import '../../../helpers/fake_player_engine.dart';
|
|
|
|
void main() {
|
|
testWidgets('音轨按钮由初始 tracks 决定显隐', (tester) async {
|
|
final player = FakePlayerEngine(
|
|
playing: true,
|
|
tracks: const PlayerTracks(
|
|
audio: [
|
|
AudioTrack(id: '1'),
|
|
AudioTrack(id: '2'),
|
|
],
|
|
),
|
|
);
|
|
addTearDown(player.dispose);
|
|
|
|
await tester.pumpWidget(
|
|
MaterialApp(
|
|
home: AudioTracksButton(
|
|
player: player,
|
|
isPanelOpen: false,
|
|
onTogglePanel: () {},
|
|
),
|
|
),
|
|
);
|
|
|
|
expect(find.byTooltip('音轨'), findsOneWidget);
|
|
});
|
|
|
|
testWidgets('字幕按钮响应 tracks stream 更新', (tester) async {
|
|
final player = FakePlayerEngine(playing: true);
|
|
addTearDown(player.dispose);
|
|
|
|
await tester.pumpWidget(
|
|
MaterialApp(
|
|
home: SubtitleTracksButton(
|
|
player: player,
|
|
embySubtitles: const [],
|
|
isPanelOpen: false,
|
|
onTogglePanel: () {},
|
|
),
|
|
),
|
|
);
|
|
expect(find.byTooltip('字幕'), findsNothing);
|
|
|
|
player.addTracks(
|
|
const PlayerTracks(subtitle: [SubtitleTrack(id: 'embedded')]),
|
|
);
|
|
await tester.pump();
|
|
|
|
expect(find.byTooltip('字幕'), findsOneWidget);
|
|
});
|
|
}
|