42 lines
2.1 KiB
Dart
42 lines
2.1 KiB
Dart
import 'package:flutter/material.dart';
|
||
import 'package:flutter_test/flutter_test.dart';
|
||
import 'package:jj_mkvmaker/app/app_controller.dart';
|
||
import 'package:jj_mkvmaker/app/settings.dart';
|
||
import 'package:jj_mkvmaker/core/models.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/services/platform_services.dart';
|
||
import 'package:jj_mkvmaker/ui/home_page.dart';
|
||
|
||
/// 261: 폰 세로 (노트 10+ 412×869) 의 MKV 세부 정보 - "감지한 언어" 줄이 생겨도 [AI 자막 만들기] 가 밀려 가려지지 않는다
|
||
void main() {
|
||
for (final detected in [false, true]) {
|
||
testWidgets('261: 폰 세로 · 작업 기록 켬 · 감지한 언어 ${detected ? '있음' : '없음'} - [AI 자막 만들기] 가 스크롤 없이 보인다', (tester) async {
|
||
tester.view.physicalSize = const Size(412, 869);
|
||
tester.view.devicePixelRatio = 1;
|
||
addTearDown(tester.view.reset);
|
||
final c = AppController(PlatformServices(
|
||
mediaTool: ProcessMediaTool('x', 'y'),
|
||
storage: DesktopStorageService(),
|
||
createRecognizer: () => throw UnimplementedError(),
|
||
createTranslator: () => throw UnimplementedError(),
|
||
));
|
||
c.settings.showLog = true;
|
||
c.settings.moveTargets = [MoveTarget('보관', r'D:\보관')];
|
||
for (var i = 1; i <= 4; i++) {
|
||
c.videos.add(VideoItem('D:/v/아주 긴 이름의 동영상 파일 $i.mp4'));
|
||
}
|
||
c.selected = c.videos.first..aiDetected = detected ? 'en' : null;
|
||
await tester.pumpWidget(MaterialApp(home: HomePage(c: c)));
|
||
await tester.pump();
|
||
expect(tester.takeException(), isNull);
|
||
final ai = find.text('AI 자막 만들기');
|
||
// 화면 밖이면 ListView 가 아예 만들지 않는다
|
||
expect(ai, findsOneWidget, reason: '세부 정보 칸 아래로 밀림');
|
||
final view = tester.getRect(find.ancestor(of: ai, matching: find.byType(Scrollable)).first);
|
||
final button = tester.getRect(ai);
|
||
expect(button.bottom, lessThanOrEqualTo(view.bottom), reason: '버튼 $button · 세부 정보 칸 $view');
|
||
});
|
||
}
|
||
}
|