40 lines
1.3 KiB
Dart
40 lines
1.3 KiB
Dart
// 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']);
|
|
});
|
|
}
|