import 'package:flutter_test/flutter_test.dart'; import 'package:fruitshorts/core/config/app_config.dart'; import 'package:fruitshorts/core/data/models/drama.dart'; import 'package:fruitshorts/core/data/services/video_player_port.dart'; Episode _episode(String videoUrl) => Episode( id: '1', number: 1, title: '第 1 集', isFree: true, videoUrl: videoUrl, ); void main() { test('should_prefix_service_base_when_play_url_is_relative', () { final uri = VideoPlayerPort.resolveUri( _episode('/files/episode/202610/clip.mp4'), ); expect(uri.isAbsolute, isTrue); // Uri.parse().toString() 会把 host 规范成小写,而开发地址可能带大写 // (Bonjour 名字),比较时统一小写,否则会依赖运行平台。 expect( uri.toString().toLowerCase(), '${AppConfig.apiBaseUrl}/files/episode/202610/clip.mp4'.toLowerCase(), ); }); test('should_keep_url_untouched_when_play_url_is_absolute', () { final uri = VideoPlayerPort.resolveUri( _episode('https://cdn.example.test/clip.mp4'), ); expect(uri.toString(), 'https://cdn.example.test/clip.mp4'); }); }