34 lines
1.6 KiB
Dart
34 lines
1.6 KiB
Dart
// 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 = <String>[];
|
|
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); // 즐겨찾기 표시줄의 기본 내용
|
|
});
|
|
}
|