From cd50edd666acda72b8bbc8dcbe03e10a30709ddb Mon Sep 17 00:00:00 2001 From: RyuJongJin <266630912+RyuJongJin@users.noreply.github.com> Date: Sat, 17 Oct 2026 18:00:19 +0900 Subject: [PATCH] =?UTF-8?q?WIP=20Windows=20=ED=86=B5=ED=95=A9=20=EC=8B=9C?= =?UTF-8?q?=ED=97=98=20=ED=9A=8C=EA=B7=80=20(=EC=A7=80=EC=8B=9C=2010):=20?= =?UTF-8?q?=EB=B0=94=EB=80=90=20=EB=8F=99=EC=9E=91=20=C2=B7=20=EB=B0=94?= =?UTF-8?q?=EA=B9=A5=20=EC=A3=BC=EC=86=8C=EC=97=90=20=EB=A7=9E=EA=B2=8C=20?= =?UTF-8?q?=EC=8B=9C=ED=97=98=203=EA=B3=B3=20=EA=B3=A0=EC=B9=A8=20(?= =?UTF-8?q?=EA=B2=80=ED=86=A0=20=EB=8C=80=EA=B8=B0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ab4d935 에서 integration_test 전부를 하나씩 -d windows 로 돌려 찾은 것 (앱 동작은 바꾸지 않음): - browser_real: 137 뒤 [다운로드] 는 동영상을 찾은 페이지만 꽉 찬 버튼 (못 찾으면 테두리만) - 시험이 꽉 찬 버튼만 찾다 실패. - tor_dns_real: 파일 링크 시험 주소 (dist.torproject.org 15.0.24 .asc) 가 404 (예전 판을 지움) → 오래 남는 archive 의 같은 파일. - windows_check_shot 37: 서버만 (\NAS) · 없는 폴더는 창을 닫지 않고 칸 아래 알림 (146 · 37-2) - 시험이 창을 닫지 않아 다음 입력 · 다음 크기에서 남은 창이 가렸다 → [취소] 로 닫고 다음으로. (그 밖의 실패 6개는 회귀를 돌린 내 스크립트가 캡처 폴더를 미리 만들지 않은 탓 - 만든 뒤 모두 통과) Co-Authored-By: Claude Opus 5.5 --- integration_test/browser_real_test.dart | 6 +++--- integration_test/tor_dns_real_test.dart | 3 ++- integration_test/windows_check_shot_test.dart | 6 ++++++ 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/integration_test/browser_real_test.dart b/integration_test/browser_real_test.dart index 69e25ca..3e8a1bd 100644 --- a/integration_test/browser_real_test.dart +++ b/integration_test/browser_real_test.dart @@ -45,9 +45,9 @@ void main() { for (var i = 0; i < 300 && !videoSeen; i++) { await tester.runAsync(() => Future.delayed(const Duration(milliseconds: 100))); await tester.pump(); - final btn = tester.widget(find.ancestor( - of: find.text('다운로드'), matching: find.byWidgetPredicate((w) => w is FilledButton))); - videoSeen = btn.onPressed != null; + // 137: 동영상을 찾은 페이지만 [다운로드] 가 꽉 찬 버튼 (못 찾으면 테두리만 있는 버튼) + final filled = find.ancestor(of: find.text('다운로드'), matching: find.byWidgetPredicate((w) => w is FilledButton)); + videoSeen = filled.evaluate().isNotEmpty && tester.widget(filled.first).onPressed != null; } // ignore: avoid_print print('RESULT 동영상 감지(다운로드 버튼 켜짐): $videoSeen'); diff --git a/integration_test/tor_dns_real_test.dart b/integration_test/tor_dns_real_test.dart index 2c137ac..acadafb 100644 --- a/integration_test/tor_dns_real_test.dart +++ b/integration_test/tor_dns_real_test.dart @@ -146,7 +146,8 @@ void main() { expect(rtc, 'undefined'); // 5. 파일 링크: 받지 않고 안내 (Windows 는 packages/flutter_inappwebview_windows/JJ_PATCH.md 의 DownloadStarting) - const fileUrl = 'https://dist.torproject.org/torbrowser/15.0.24/tor-expert-bundle-windows-x86_64-15.0.24.tar.gz.asc'; + // dist.torproject.org 는 예전 판을 지운다 (10/17 15.0.24 가 404) - 오래 남는 archive 의 같은 파일 (833B, application/pgp-keys) + const fileUrl = 'https://archive.torproject.org/tor-package-archive/torbrowser/15.0.24/tor-expert-bundle-windows-x86_64-15.0.24.tar.gz.asc'; await tester.runAsync(() async => TorPage.debugNav?.load(fileUrl)); var told = false; for (var i = 0; i < 120 && !told; i++) { diff --git a/integration_test/windows_check_shot_test.dart b/integration_test/windows_check_shot_test.dart index d9cfb70..fc82b1a 100644 --- a/integration_test/windows_check_shot_test.dart +++ b/integration_test/windows_check_shot_test.dart @@ -203,10 +203,16 @@ void main() { await t.tap(find.widgetWithText(FilledButton, '확인')); await settle(t, 6); await shot(t, '37_unc_server_only_$tag'); + // 서버만 넣으면 창이 닫히지 않고 그 자리에서 "공유 폴더 이름까지" 를 알린다 - 닫고 다음으로 + await t.tap(find.widgetWithText(TextButton, '취소')); + await settle(t, 4); await enter(p.join(tmp.path, '없는 폴더')); await t.tap(find.widgetWithText(FilledButton, '확인')); await settle(t, 6); await shot(t, '37_missing_path_$tag'); + // 146 · 37-2: 없는 폴더도 창을 닫지 않고 칸 아래에 알린다 - 닫는다 (다음 크기에서 창이 남아 가리지 않게) + await t.tap(find.widgetWithText(TextButton, '취소')); + await settle(t, 4); } } finally { await t.pumpWidget(const SizedBox());