66 lines
3.6 KiB
Dart
66 lines
3.6 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:jj_mkvmaker/core/sync_preview.dart';
|
|
import 'package:jj_mkvmaker/ui/sync_preview_view.dart';
|
|
|
|
/// 211: 미리 보기에서 덮어쓰는 것 (내용이 다른 같은 이름) 을 눈에 띄게
|
|
void main() {
|
|
testWidgets('211: 덮어쓸 것이 있으면 "덮어씀 n" · 주황 경고 줄 · 목록에 (덮어씀)', (tester) async {
|
|
await tester.pumpWidget(MaterialApp(
|
|
home: Scaffold(
|
|
body: SyncPreviewView(
|
|
compute: () async => const [
|
|
PreviewItem('new.txt', PreviewAction.add, toRight: true, size: 3),
|
|
PreviewItem('diff.txt', PreviewAction.update, toRight: true, size: 5),
|
|
],
|
|
),
|
|
),
|
|
));
|
|
await tester.pumpAndSettle();
|
|
expect(find.text('→ 새로 1 · 덮어씀 1'), findsOneWidget);
|
|
expect(find.text('받는 쪽에서 1개를 덮어씁니다 (내용이 다른 같은 이름 - 원래 것은 없어짐)'), findsOneWidget);
|
|
expect(find.textContaining('~ diff.txt'), findsOneWidget);
|
|
expect(find.textContaining('(덮어씀)'), findsOneWidget);
|
|
});
|
|
|
|
testWidgets('211: 덮어쓸 것이 없으면 경고 줄 없음', (tester) async {
|
|
await tester.pumpWidget(MaterialApp(
|
|
home: Scaffold(
|
|
body: SyncPreviewView(compute: () async => const [PreviewItem('new.txt', PreviewAction.add, toRight: true, size: 3)]),
|
|
),
|
|
));
|
|
await tester.pumpAndSettle();
|
|
expect(find.textContaining('덮어씁니다'), findsNothing);
|
|
});
|
|
|
|
testWidgets('229: 받는 쪽이 더 새것 - 건너뛰면 "(건너뜀)", 덮어쓰게 되면 따로 굵게 경고', (tester) async {
|
|
await tester.pumpWidget(MaterialApp(
|
|
home: Scaffold(
|
|
body: SyncPreviewView(
|
|
compute: () async => const [
|
|
PreviewItem('skip.txt', PreviewAction.skipNewer, toRight: true, size: 3),
|
|
PreviewItem('older.txt', PreviewAction.update, toRight: true, size: 13, newer: true),
|
|
],
|
|
),
|
|
),
|
|
));
|
|
await tester.pumpAndSettle();
|
|
expect(find.textContaining('받는 쪽이 더 새것 1 (건너뜀)'), findsOneWidget);
|
|
expect(find.text('그중 1개는 받는 쪽이 더 새것입니다 - 더 새 파일을 예전 것으로 덮어씁니다'), findsOneWidget);
|
|
expect(find.textContaining('(더 새 파일을 덮어씀)'), findsOneWidget);
|
|
expect(find.textContaining('(받는 쪽이 더 새것 - 건너뜀)'), findsOneWidget);
|
|
});
|
|
|
|
test('28 확인 (10/20): keepOptionsTogether - 글 안의 옵션 덩어리만 묶고 (괄호째 · 따로 쓴 것) 나머지는 그대로', () {
|
|
const wj = '\u2060', nb = '\u00A0';
|
|
expect(keepOptionsTogether('원본 파일 지우기 (--remove-source-files)'), '원본 파일 지우기 (-$wj-${wj}remove-${wj}source-${wj}files)');
|
|
expect(keepOptionsTogether('Delete source files (--remove-source-files)'), 'Delete source files (-$wj-${wj}remove-${wj}source-${wj}files)',
|
|
reason: '앞 글의 빈칸은 그대로 (거기서는 줄을 바꿀 수 있음)');
|
|
expect(keepOptionsTogether('지워집니다 (--delete, 되돌릴 수 없음)'), '지워집니다 (-$wj-${wj}delete,$nb되돌릴$nb수$nb없음)');
|
|
expect(keepOptionsTogether('rsync --delete · robocopy /PURGE. 끄면'), 'rsync -$wj-${wj}delete · robocopy /${wj}PURGE. 끄면');
|
|
expect(keepOptionsTogether('(rsync 의 -u, robocopy 의 /XO 와 같음)'), '(rsync 의 -${wj}u, robocopy 의 /${wj}XO 와 같음)');
|
|
// 낱말 가운데의 - · / 는 그대로 (real-time · a/b)
|
|
expect(keepOptionsTogether('real-time 동기화 · a/b · WebDAV'), 'real-time 동기화 · a/b · WebDAV');
|
|
});
|
|
}
|