mirror of
https://github.com/zarzet/SpotiFLAC-Mobile.git
synced 2026-10-21 23:11:45 +02:00
78 lines
2.4 KiB
Dart
78 lines
2.4 KiB
Dart
import 'dart:io';
|
|
import 'dart:typed_data';
|
|
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:spotiflac_android/services/metadata_cover_resources.dart';
|
|
|
|
void main() {
|
|
test(
|
|
'closing an editor preserves artwork until its save lease finishes',
|
|
() async {
|
|
final resources = MetadataCoverResources();
|
|
final preview = await resources.copyPicked(
|
|
extension: 'png',
|
|
bytes: Uint8List.fromList([1, 2, 3]),
|
|
);
|
|
final release = resources.retain();
|
|
await resources.dispose();
|
|
expect(await File(preview.path).readAsBytes(), [1, 2, 3]);
|
|
await release();
|
|
expect(await Directory(preview.tempDir).exists(), isFalse);
|
|
await release();
|
|
},
|
|
);
|
|
|
|
test(
|
|
'disposal during a file creation cleans the completed resource',
|
|
() async {
|
|
final resources = MetadataCoverResources();
|
|
final pending = resources.copyPicked(
|
|
extension: 'jpg',
|
|
bytes: Uint8List.fromList([1, 2, 3]),
|
|
);
|
|
await resources.dispose();
|
|
final preview = await pending;
|
|
expect(await Directory(preview.tempDir).exists(), isFalse);
|
|
},
|
|
);
|
|
|
|
test(
|
|
'replacing artwork defers release until every save lease finishes',
|
|
() async {
|
|
final resources = MetadataCoverResources();
|
|
addTearDown(resources.dispose);
|
|
final preview = await resources.copyPicked(
|
|
extension: 'png',
|
|
bytes: Uint8List.fromList([1, 2, 3]),
|
|
);
|
|
final firstSave = resources.retain();
|
|
final secondSave = resources.retain();
|
|
await resources.release(preview.tempDir);
|
|
expect(await File(preview.path).readAsBytes(), [1, 2, 3]);
|
|
await firstSave();
|
|
expect(await File(preview.path).exists(), isTrue);
|
|
await secondSave();
|
|
expect(await Directory(preview.tempDir).exists(), isFalse);
|
|
},
|
|
);
|
|
|
|
test(
|
|
'releasing a selected image leaves other editor resources intact',
|
|
() async {
|
|
final resources = MetadataCoverResources();
|
|
addTearDown(resources.dispose);
|
|
final first = await resources.copyPicked(
|
|
extension: 'png',
|
|
bytes: Uint8List.fromList([1]),
|
|
);
|
|
final second = await resources.copyPicked(
|
|
extension: 'jpg',
|
|
bytes: Uint8List.fromList([2]),
|
|
);
|
|
await resources.release(first.tempDir);
|
|
expect(await Directory(first.tempDir).exists(), isFalse);
|
|
expect(await File(second.path).exists(), isTrue);
|
|
},
|
|
);
|
|
}
|