fix(player): 保持推荐页返回时播放状态
This commit is contained in:
1 parent
2a32dec183
commit
ab4c246675
2 files changed
+48
-1
No files matched your search
@@ -21,6 +21,7 @@ import 'package:fruitshorts/core/theme/app_colors.dart';
|
||||
import 'package:fruitshorts/pages/auth/auth_view.dart';
|
||||
import 'package:fruitshorts/pages/player/player_view.dart';
|
||||
import 'package:fruitshorts/pages/player/widgets/player_center_toggle.dart';
|
||||
import 'package:fruitshorts/pages/player/widgets/player_render_stack.dart';
|
||||
import 'package:fruitshorts/pages/player/widgets/seek_progress_bar.dart';
|
||||
|
||||
import '../support/fake_catalog.dart';
|
||||
@@ -82,6 +83,47 @@ void main() {
|
||||
_expectPlayerNavigationBar(tester);
|
||||
});
|
||||
|
||||
testWidgets('should_preserve_recommend_feed_when_full_player_pops', (
|
||||
tester,
|
||||
) async {
|
||||
await _pumpApp(tester);
|
||||
await tester.tap(find.byKey(const Key('tab-recommend')));
|
||||
await tester.pumpAndSettle();
|
||||
|
||||
final recommendPlayer = find.byKey(
|
||||
const Key('recommend-feed-player'),
|
||||
);
|
||||
final renderStack = find.descendant(
|
||||
of: recommendPlayer,
|
||||
matching: find.byType(PlayerRenderStack),
|
||||
);
|
||||
expect(recommendPlayer, findsOneWidget);
|
||||
expect(renderStack, findsOneWidget);
|
||||
final playerState = tester.state(recommendPlayer);
|
||||
final renderState = tester.state(renderStack);
|
||||
|
||||
await tester.tap(find.byKey(const Key('home-feed-full-series')));
|
||||
await tester.pumpAndSettle();
|
||||
expect(
|
||||
tester.widget<PlayerPage>(find.byType(PlayerPage).last).homeMode,
|
||||
isFalse,
|
||||
);
|
||||
|
||||
tester.state<NavigatorState>(find.byType(Navigator).first).pop();
|
||||
await tester.pump();
|
||||
|
||||
expect(find.byKey(const Key('recommend-page')), findsOneWidget);
|
||||
expect(recommendPlayer, findsOneWidget);
|
||||
expect(renderStack, findsOneWidget);
|
||||
expect(tester.state(recommendPlayer), same(playerState));
|
||||
expect(tester.state(renderStack), same(renderState));
|
||||
expect(find.byKey(const Key('recommend-feed-skeleton')), findsNothing);
|
||||
|
||||
await tester.pumpAndSettle();
|
||||
expect(tester.state(recommendPlayer), same(playerState));
|
||||
expect(tester.state(renderStack), same(renderState));
|
||||
});
|
||||
|
||||
testWidgets('should_render_player_loading_indicators_at_compact_size', (
|
||||
tester,
|
||||
) async {
|
||||
|
||||
Reference in new issue
Block a user