TF-2528 Add integration test for search email with sort by sender nam…e ascending

This commit is contained in:
dab246
2024-11-13 15:51:25 +07:00
committed by Dat H. Pham
parent cf2a0b08e5
commit 51a4a1b9b7
27 changed files with 591 additions and 59 deletions
@@ -9,8 +9,15 @@ import 'package:tmail_ui_user/main/routes/route_navigation.dart';
mixin PopupContextMenuActionMixin {
void openContextMenuAction(BuildContext context, List<Widget> actionTiles, {Widget? cancelButton}) async {
await (CupertinoActionSheetBuilder(context)
void openContextMenuAction(
BuildContext context,
List<Widget> actionTiles,
{
Widget? cancelButton,
Key? key,
}
) async {
await (CupertinoActionSheetBuilder(context, key: key)
..addTiles(actionTiles)
..addCancelButton(cancelButton ?? buildCancelButton(context)))
.show();
@@ -955,12 +955,15 @@ class ComposerController extends BaseController
}
Future<String> _getContentInEditor() async {
final htmlTextEditor = PlatformInfo.isWeb
? _textEditorWeb
: await htmlEditorApi?.getText();
if (htmlTextEditor?.isNotEmpty == true) {
return htmlTextEditor!.removeEditorStartTag();
} else {
try {
final htmlTextEditor = PlatformInfo.isWeb
? _textEditorWeb
: await htmlEditorApi?.getText();
return htmlTextEditor?.isNotEmpty == true
? htmlTextEditor!.removeEditorStartTag()
: '';
} catch (e) {
logError('ComposerController::_getContentInEditor:Exception = $e');
return '';
}
}
@@ -15,21 +15,25 @@ enum EmailSortOrderType {
subjectDescending;
String getTitle(BuildContext context) {
return getTitleByAppLocalizations(AppLocalizations.of(context));
}
String getTitleByAppLocalizations(AppLocalizations appLocalizations) {
switch (this) {
case EmailSortOrderType.mostRecent:
return AppLocalizations.of(context).mostRecent;
return appLocalizations.mostRecent;
case EmailSortOrderType.oldest:
return AppLocalizations.of(context).oldest;
return appLocalizations.oldest;
case EmailSortOrderType.relevance:
return AppLocalizations.of(context).relevance;
return appLocalizations.relevance;
case EmailSortOrderType.senderAscending:
return AppLocalizations.of(context).senderAscending;
return appLocalizations.senderAscending;
case EmailSortOrderType.senderDescending:
return AppLocalizations.of(context).senderDescending;
return appLocalizations.senderDescending;
case EmailSortOrderType.subjectAscending:
return AppLocalizations.of(context).subjectAscending;
return appLocalizations.subjectAscending;
case EmailSortOrderType.subjectDescending:
return AppLocalizations.of(context).subjectDescending;
return appLocalizations.subjectDescending;
}
}
@@ -137,6 +137,7 @@ class SearchEmailView extends GetWidget<SearchEmailController>
onTap: () => controller.closeSearchView(context: context)
),
Expanded(child: TextFieldBuilder(
key: const Key('search_email_text_field'),
onTextChange: controller.onTextSearchChange,
textInputAction: TextInputAction.search,
controller: controller.textInputSearchController,
@@ -190,6 +191,7 @@ class SearchEmailView extends GetWidget<SearchEmailController>
),
scrollController: controller.listSearchFilterScrollController,
child: ListView(
key: const Key('search_filter_list_view'),
scrollDirection: Axis.horizontal,
shrinkWrap: true,
controller: controller.listSearchFilterScrollController,
@@ -375,7 +377,8 @@ class SearchEmailView extends GetWidget<SearchEmailController>
context,
controller.emailSortOrderType.value,
controller.selectSortOrderQuickSearchFilter
)
),
key: const Key('sort_filter_context_menu')
);
}
@@ -562,6 +565,7 @@ class SearchEmailView extends GetWidget<SearchEmailController>
List<PresentationEmail> listSuggestionSearch
) {
return ListView.builder(
key: const Key('suggestion_search_list_view'),
shrinkWrap: true,
primary: false,
itemCount: listSuggestionSearch.length,
@@ -618,6 +622,7 @@ class SearchEmailView extends GetWidget<SearchEmailController>
Widget _buildListEmailBody(BuildContext context, List<PresentationEmail> listPresentationEmail) {
return NotificationListener<ScrollNotification>(
key: const Key('search_email_list_notification_listener'),
onNotification: (ScrollNotification scrollInfo) {
if (scrollInfo is ScrollEndNotification
&& controller.searchMoreState != SearchMoreState.waiting