Files
sm-emby-share/test/features/player/widgets/track_selector_button_test.dart
2026-07-14 11:11:36 +08:00

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);
});
}