// test/song_key_test.dart import 'package:flutter_test/flutter_test.dart'; import 'package:qingting_player/utils/song_key.dart'; void main() { group('songKeyFor', () { test('同一 URL 多次计算结果一致(跨进程稳定)', () { const url = 'https://example.com/dav/music/a.flac'; expect(songKeyFor(url), songKeyFor(url)); }); test('与探测大小无关:不同阶段的头部请求得到同一个键', () { // 键只依赖 URL,因此 128KB / 512KB 两次探测不会产生两个缓存键 const url = 'https://example.com/dav/music/b.flac'; final key = songKeyFor(url); expect(key, songKeyForUrl(url)); expect(key.length, 32); // md5 十六进制 }); test('不同 URL 得到不同键', () { expect(songKeyFor('https://x/a.flac'), isNot(songKeyFor('https://x/b.flac'))); }); }); }