// bookmark_manager_page.dart 약속 시험: 실제 BookmarksController (시험 폴더의 파일) 로 입력 · 출력 · 없어진 폴더를 본다. import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:jj_mkvmaker/app/bookmarks_controller.dart'; import 'package:jj_mkvmaker/core/bookmarks.dart'; import 'package:jj_mkvmaker/ui/bookmark_manager_page.dart'; import 'package:path/path.dart' as p; import 'support/temp_dirs.dart'; void main() { deleteTempDirsAtEnd(); testWidgets('처음 폴더 · 주소 누르면 onOpen · 고른 폴더가 없어지면 즐겨찾기 표시줄로', (tester) async { tester.view.physicalSize = const Size(1400, 900); tester.view.devicePixelRatio = 1; addTearDown(tester.view.reset); final bm = BookmarksController(p.join(tempDirUntilEnd('jj_bmm_').path, 'bookmarks.json')); final box = bm.addFolder('보관함', parentId: BookmarkTree.otherId); bm.addLink('예제', 'https://ex.example', parentId: box.id); final opened = []; await tester.pumpWidget(MaterialApp(home: BookmarkManagerPage(bm: bm, onOpen: opened.add, initialFolderId: box.id))); expect(find.widgetWithText(ListTile, '예제'), findsOneWidget); await tester.tap(find.widgetWithText(ListTile, '예제')); await tester.pumpAndSettle(); expect(opened, ['https://ex.example']); bm.remove(box.id); await tester.pumpAndSettle(); expect(find.widgetWithText(ListTile, '예제'), findsNothing); expect(find.widgetWithText(ListTile, 'YouTube'), findsOneWidget); // 즐겨찾기 표시줄의 기본 내용 }); }