// Author: fruit.com.cn import 'package:flutter/services.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:fruitshorts/core/data/models/drama.dart'; import 'package:fruitshorts/core/data/models/play_ticket.dart'; import 'package:fruitshorts/core/data/repositories/playback_repository.dart'; import 'package:fruitshorts/core/data/services/android_picture_in_picture.dart'; import 'package:fruitshorts/pages/player/player_logic.dart'; import '../support/fake_watch_history.dart'; void main() { test('should_expose_ticket_qualities_when_ticket_is_loaded', () async { final logic = PlayerLogic( history: FakeWatchHistory(), playback: FakePlaybackRepository( ticket: const PlayTicket( episodeId: '12', accessible: true, accessType: PlayTicket.free, playUrl: '/files/episode/12.m3u8?e=1&s=abc', qualities: ['AUTO', '720P', '1080P'], ), ), pictureInPicture: AndroidPictureInPicture( channel: const MethodChannel('test/player_quality/pip'), ), ); logic.sessionEpisodes = [ Episode(id: '12', number: 1, title: 'Episode 1', isFree: true), ]; final ready = await logic.ensureTicket(0); expect(ready, isTrue); expect(logic.qualities, ['AUTO', '720P', '1080P']); }); }