mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2025-07-30 12:31:08 +00:00

* feat: support editing name when creating a new page on mobile * chore: add defaultName in layout extension * test: add cover title test on mobile * fix: cover title test on mobile * feat: add integration runner 4 * chore: update translations * chore: disable subpage feature
77 lines
3.5 KiB
Dart
77 lines
3.5 KiB
Dart
// ignore_for_file: unused_import
|
|
|
|
import 'dart:io';
|
|
|
|
import 'package:appflowy/env/cloud_env.dart';
|
|
import 'package:appflowy/generated/flowy_svgs.g.dart';
|
|
import 'package:appflowy/generated/locale_keys.g.dart';
|
|
import 'package:appflowy/mobile/application/page_style/document_page_style_bloc.dart';
|
|
import 'package:appflowy/mobile/presentation/base/app_bar/app_bar_actions.dart';
|
|
import 'package:appflowy/mobile/presentation/base/view_page/app_bar_buttons.dart';
|
|
import 'package:appflowy/mobile/presentation/bottom_sheet/bottom_sheet_buttons.dart';
|
|
import 'package:appflowy/mobile/presentation/home/home.dart';
|
|
import 'package:appflowy/mobile/presentation/home/section_folder/mobile_home_section_folder_header.dart';
|
|
import 'package:appflowy/mobile/presentation/presentation.dart';
|
|
import 'package:appflowy/plugins/document/presentation/editor_page.dart';
|
|
import 'package:appflowy/plugins/document/presentation/editor_plugins/cover/document_immersive_cover.dart';
|
|
import 'package:appflowy/plugins/document/presentation/editor_plugins/cover/document_immersive_cover_bloc.dart';
|
|
import 'package:appflowy/plugins/document/presentation/editor_plugins/page_style/_page_style_layout.dart';
|
|
import 'package:appflowy/startup/startup.dart';
|
|
import 'package:appflowy/user/application/auth/af_cloud_mock_auth_service.dart';
|
|
import 'package:appflowy/user/application/auth/auth_service.dart';
|
|
import 'package:appflowy/user/presentation/screens/sign_in_screen/widgets/widgets.dart';
|
|
import 'package:appflowy/workspace/application/settings/prelude.dart';
|
|
import 'package:appflowy/workspace/application/view/view_ext.dart';
|
|
import 'package:appflowy/workspace/presentation/settings/widgets/setting_appflowy_cloud.dart';
|
|
import 'package:appflowy_backend/protobuf/flowy-folder/view.pb.dart';
|
|
import 'package:appflowy_editor/appflowy_editor.dart';
|
|
import 'package:easy_localization/easy_localization.dart';
|
|
import 'package:flowy_infra/uuid.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:integration_test/integration_test.dart';
|
|
import 'package:path/path.dart' as p;
|
|
|
|
import '../../shared/dir.dart';
|
|
import '../../shared/mock/mock_file_picker.dart';
|
|
import '../../shared/util.dart';
|
|
|
|
void main() {
|
|
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
|
|
|
|
group('document title:', () {
|
|
testWidgets('create a new page, the title should be empty', (tester) async {
|
|
await tester.launchInAnonymousMode();
|
|
|
|
final createPageButton = find.byKey(
|
|
BottomNavigationBarItemType.add.valueKey,
|
|
);
|
|
await tester.tapButton(createPageButton);
|
|
expect(find.byType(MobileDocumentScreen), findsOneWidget);
|
|
|
|
final title = tester.editor.findDocumentTitle('');
|
|
expect(title, findsOneWidget);
|
|
final textField = tester.widget<TextField>(title);
|
|
expect(textField.focusNode!.hasFocus, isTrue);
|
|
|
|
// input new name and press done button
|
|
const name = 'test document';
|
|
await tester.enterText(title, name);
|
|
await tester.testTextInput.receiveAction(TextInputAction.done);
|
|
await tester.pumpAndSettle();
|
|
final newTitle = tester.editor.findDocumentTitle(name);
|
|
expect(newTitle, findsOneWidget);
|
|
expect(textField.controller!.text, name);
|
|
|
|
// the document should get focus
|
|
final editor = tester.widget<AppFlowyEditorPage>(
|
|
find.byType(AppFlowyEditorPage),
|
|
);
|
|
expect(
|
|
editor.editorState.selection,
|
|
Selection.collapsed(Position(path: [0])),
|
|
);
|
|
});
|
|
});
|
|
}
|