import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_inappwebview/flutter_inappwebview.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:integration_test/integration_test.dart'; import 'package:jj_mkvmaker/app/app_controller.dart'; import 'package:jj_mkvmaker/app/bookmarks_controller.dart'; import 'package:jj_mkvmaker/app/download_manager.dart'; import 'package:jj_mkvmaker/core/download_detect.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/platform/windows/ytdlp_backend.dart'; import 'package:jj_mkvmaker/services/platform_services.dart'; import 'package:jj_mkvmaker/ui/browser_page.dart'; import 'package:path/path.dart' as p; /// 실제 Edge(WebView2): 페이지 열기 · 동영상 감지 · 쿠키 저장 → yt-dlp 가 같은 쿠키를 읽는지 void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); testWidgets('앱 안 브라우저 → 쿠키 → yt-dlp', (tester) async { final server = await HttpServer.bind(InternetAddress.loopbackIPv4, 0); server.listen((req) async { req.response ..headers.contentType = ContentType.html ..headers.add('Set-Cookie', 'jjserver=ok; Max-Age=3600; Path=/') ..write('JJ 테스트' '' ''); await req.response.close(); }); final url = 'http://127.0.0.1:${server.port}/'; final dataDir = Directory.systemTemp.createTempSync('jj_webview_').path; final c = AppController(PlatformServices(mediaTool: ProcessMediaTool('x', 'y'), storage: DesktopStorageService())); c.settings.webViewDataDir = dataDir; final bm = BookmarksController(p.join(dataDir, 'bm.json')); final d = DownloadManager(backends: const [], settings: () => c.settings, readClipboard: () async => null); await tester.pumpWidget(MaterialApp(home: BrowserPage(c: c, bookmarks: bm, downloads: d, initialUrl: url))); // 페이지가 열리고