48 lines
2.3 KiB
Dart
48 lines
2.3 KiB
Dart
import 'dart:io';
|
|
|
|
import 'package:archive/archive.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:jj_mkvmaker/app/app_controller.dart';
|
|
import 'package:jj_mkvmaker/core/reader_sources.dart';
|
|
import 'package:jj_mkvmaker/platform/windows/desktop_storage_service.dart';
|
|
import 'package:jj_mkvmaker/platform/windows/process_media_tool.dart';
|
|
import 'package:jj_mkvmaker/services/platform_services.dart';
|
|
import 'package:jj_mkvmaker/ui/ai_upscale/upscale_prep.dart';
|
|
import 'package:path/path.dart' as p;
|
|
|
|
void main() {
|
|
AppController controller() => AppController(PlatformServices(mediaTool: ProcessMediaTool('x', 'y'), storage: DesktopStorageService()));
|
|
|
|
test('약속 upscaleOptionsOf: 환경 설정 > AI 그림의 해상도 올리기 값을 그대로, 저장 폴더는 준 것이 먼저', () {
|
|
final c = controller();
|
|
c.settings.aiImage
|
|
..upScale = 2
|
|
..upFormat = 'jpg'
|
|
..upJpgQuality = 80
|
|
..upDir = r'D:\up';
|
|
final o = upscaleOptionsOf(c);
|
|
expect([o.model, o.scale, o.format, o.jpgQuality, o.outDir], [c.settings.aiImage.upModel, 2, 'jpg', 80, r'D:\up']);
|
|
expect(upscaleOptionsOf(c, outDir: r'E:\here').outDir, r'E:\here');
|
|
});
|
|
|
|
test('약속 readerPageFile: 이 기기의 그림은 그대로, ZIP 안의 그림은 꺼내 "ZIP이름_AI" 폴더 기준 (원본은 그대로)', () async {
|
|
final dir = await Directory.systemTemp.createTemp('jj_up_');
|
|
addTearDown(() => dir.delete(recursive: true));
|
|
final c = controller()..settings.aiImage.upDir = '';
|
|
final a = p.join(dir.path, 'a.png');
|
|
File(a).writeAsBytesSync([1, 2, 3]);
|
|
final files = ImageFilesSource([a], tempDir: dir.path, title: 't');
|
|
expect(await readerPageFile(c, files, 0), (a, a, ''));
|
|
|
|
final zip = p.join(dir.path, 'book.zip');
|
|
File(zip).writeAsBytesSync(ZipEncoder().encode(Archive()..addFile(ArchiveFile('p1.png', 3, [4, 5, 6]))));
|
|
final src = await ZipImagesSource.open(zip, tempDir: dir.path, imageExts: const ['png']);
|
|
final r = (await readerPageFile(c, src, 0))!;
|
|
expect(File(r.$1).readAsBytesSync(), [4, 5, 6], reason: '꺼낸 임시 파일');
|
|
expect([r.$2, r.$3], [p.join(dir.path, 'book_AI', 'p1.png'), p.join(dir.path, 'book_AI')]);
|
|
expect(File(zip).existsSync(), isTrue);
|
|
await src.dispose();
|
|
await Directory(p.dirname(r.$1)).delete(recursive: true);
|
|
});
|
|
}
|