31 lines
1.4 KiB
Dart
31 lines
1.4 KiB
Dart
import 'dart:io';
|
|
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:jj_mkvmaker/ui/file_tools.dart';
|
|
import 'package:path/path.dart' as p;
|
|
|
|
/// X-plore 비교 P3: 해시 · 16진 보기 · 폴더 속성
|
|
void main() {
|
|
late Directory tmp;
|
|
setUp(() => tmp = Directory.systemTemp.createTempSync('jj_ftools_'));
|
|
tearDown(() => tmp.deleteSync(recursive: true));
|
|
|
|
test('P3 해시: 알려진 값 (MD5 · SHA-256 "abc") · 취소면 null', () async {
|
|
final f = File(p.join(tmp.path, 'abc.txt'))..writeAsStringSync('abc');
|
|
final h = await fileHashes(f.path);
|
|
expect(h!.md5, '900150983cd24fb0d6963f7d28e17f72');
|
|
expect(h.sha256, 'ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad');
|
|
expect(await fileHashes(f.path, cancelled: () => true), isNull);
|
|
});
|
|
|
|
test('P3 16진 보기 한 줄 · 폴더 속성 (파일 · 폴더 수 · 크기)', () async {
|
|
expect(HexViewerPage.line(16, 'AB\n'.codeUnits), startsWith('00000010 41 42 0a'));
|
|
expect(HexViewerPage.line(16, 'AB\n'.codeUnits), endsWith(' AB.'));
|
|
Directory(p.join(tmp.path, 'd', 'e')).createSync(recursive: true);
|
|
File(p.join(tmp.path, 'd', 'a.bin')).writeAsBytesSync(List.filled(10, 1));
|
|
File(p.join(tmp.path, 'd', 'e', 'b.bin')).writeAsBytesSync(List.filled(5, 1));
|
|
final s = await folderStats(p.join(tmp.path, 'd'));
|
|
expect((s.files, s.folders, s.bytes), (2, 1, 15));
|
|
});
|
|
}
|