Migrate v0.11.3-patch4-dev to master branch

This commit is contained in:
dab246
2024-06-05 16:19:03 +07:00
committed by Dat H. Pham
parent 1e180f0022
commit 2a862e5a05
28 changed files with 161 additions and 76 deletions
+2 -2
View File
@@ -571,8 +571,8 @@ packages:
dependency: "direct main"
description:
path: "."
ref: master
resolved-ref: "21d15bc1a6a75e048ee1e3cd751dd0815492ce20"
ref: migrate_cnb_to_master_5Jun
resolved-ref: "49305a382ca77211a0668fd9fe196a3c057cdc8e"
url: "https://github.com/linagora/jmap-dart-client.git"
source: git
version: "0.0.1"
+3 -1
View File
@@ -15,10 +15,12 @@ dependencies:
path: ../model
### Dependencies from git ###
# TODO: We will change it when the PR in upstream repository will be merged
# https://github.com/linagora/jmap-dart-client/pull/87
jmap_dart_client:
git:
url: https://github.com/linagora/jmap-dart-client.git
ref: master
ref: migrate_cnb_to_master_5Jun
### Dependencies from pub.dev ###
equatable: 2.0.5
+2 -2
View File
@@ -295,8 +295,8 @@ packages:
dependency: "direct main"
description:
path: "."
ref: master
resolved-ref: "21d15bc1a6a75e048ee1e3cd751dd0815492ce20"
ref: migrate_cnb_to_master_5Jun
resolved-ref: "49305a382ca77211a0668fd9fe196a3c057cdc8e"
url: "https://github.com/linagora/jmap-dart-client.git"
source: git
version: "0.0.1"
+3 -1
View File
@@ -12,10 +12,12 @@ dependencies:
sdk: flutter
### Dependencies from git ###
# TODO: We will change it when the PR in upstream repository will be merged
# https://github.com/linagora/jmap-dart-client/pull/87
jmap_dart_client:
git:
url: https://github.com/linagora/jmap-dart-client.git
ref: master
ref: migrate_cnb_to_master_5Jun
### Dependencies from pub.dev ###
equatable: 2.0.5
+2 -2
View File
@@ -295,8 +295,8 @@ packages:
dependency: "direct main"
description:
path: "."
ref: master
resolved-ref: "21d15bc1a6a75e048ee1e3cd751dd0815492ce20"
ref: migrate_cnb_to_master_5Jun
resolved-ref: "49305a382ca77211a0668fd9fe196a3c057cdc8e"
url: "https://github.com/linagora/jmap-dart-client.git"
source: git
version: "0.0.1"
+3 -1
View File
@@ -12,10 +12,12 @@ dependencies:
sdk: flutter
### Dependencies from git ###
# TODO: We will change it when the PR in upstream repository will be merged
# https://github.com/linagora/jmap-dart-client/pull/87
jmap_dart_client:
git:
url: https://github.com/linagora/jmap-dart-client.git
ref: master
ref: migrate_cnb_to_master_5Jun
### Dependencies from pub.dev ###
equatable: 2.0.5
+2 -2
View File
@@ -295,8 +295,8 @@ packages:
dependency: "direct main"
description:
path: "."
ref: master
resolved-ref: "21d15bc1a6a75e048ee1e3cd751dd0815492ce20"
ref: migrate_cnb_to_master_5Jun
resolved-ref: "49305a382ca77211a0668fd9fe196a3c057cdc8e"
url: "https://github.com/linagora/jmap-dart-client.git"
source: git
version: "0.0.1"
+3 -1
View File
@@ -12,10 +12,12 @@ dependencies:
sdk: flutter
### Dependencies from git ###
# TODO: We will change it when the PR in upstream repository will be merged
# https://github.com/linagora/jmap-dart-client/pull/87
jmap_dart_client:
git:
url: https://github.com/linagora/jmap-dart-client.git
ref: master
ref: migrate_cnb_to_master_5Jun
### Dependencies from pub.dev ###
equatable: 2.0.5
@@ -1,6 +1,6 @@
import 'dart:async' as async;
import 'package:async/async.dart';
import 'package:core/domain/extensions/media_type_extension.dart';
import 'package:core/data/constants/constant.dart';
import 'package:desktop_drop/desktop_drop.dart';
import 'package:flutter/material.dart';
import 'package:future_loading_dialog/future_loading_dialog.dart';
@@ -43,7 +43,7 @@ mixin DragDropFileMixin {
fileName: details.files[i].name,
type: details.files[i].mimeType,
fileSize: bytesList.result![i].length,
isInline: details.files[i].mimeType?.startsWith(MediaTypeExtension.imageType) == true
isInline: details.files[i].mimeType?.startsWith(Constant.imageType) == true
),
);
}
@@ -44,6 +44,8 @@ enum EventActionType {
KeyWordIdentifierExtension.tentativelyAcceptedEventAttendance.generatePath(): null,
KeyWordIdentifierExtension.rejectedEventAttendance.generatePath(): true,
});
case EventActionType.mailToAttendees:
return PatchObject({});
}
}
@@ -55,6 +57,8 @@ enum EventActionType {
return AppLocalizations.of(context).youMayAttendThisMeeting;
case EventActionType.no:
return AppLocalizations.of(context).youWillNotAttendThisMeeting;
case EventActionType.mailToAttendees:
return '';
}
}
}
@@ -74,8 +74,8 @@ import 'package:tmail_ui_user/features/email/domain/usecases/store_opened_email_
import 'package:tmail_ui_user/features/email/presentation/action/email_ui_action.dart';
import 'package:tmail_ui_user/features/email/presentation/bindings/calendar_event_interactor_bindings.dart';
import 'package:tmail_ui_user/features/email/presentation/controller/email_supervisor_controller.dart';
import 'package:tmail_ui_user/features/email/presentation/model/blob_calendar_event.dart';
import 'package:tmail_ui_user/features/email/presentation/extensions/attachment_extension.dart';
import 'package:tmail_ui_user/features/email/presentation/model/blob_calendar_event.dart';
import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart';
import 'package:tmail_ui_user/features/email/presentation/model/email_loaded.dart';
import 'package:tmail_ui_user/features/email/presentation/model/email_unsubscribe.dart';
@@ -1800,7 +1800,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
void handleViewAttachmentAction(BuildContext context, Attachment attachment) {
if (PlatformInfo.isWeb) {
if (PlatformInfo.isCanvasKit && attachment.isDisplayedPDFIcon) {
if (PlatformInfo.isCanvasKit && attachment.validatePDFIcon()) {
previewPDFFileAction(context, attachment);
} else {
downloadAttachmentForWeb(attachment);
@@ -1839,4 +1839,24 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
},
);
}
void handleMailToAttendees(CalendarOrganizer? organizer, List<CalendarAttendee>? attendees) {
final listEmailAddressAttendees = attendees
?.map((attendee) => EmailAddress(attendee.name?.name, attendee.mailto?.mailAddress.value))
.toList() ?? [];
if (organizer != null) {
listEmailAddressAttendees.add(EmailAddress(organizer.name, organizer.mailto?.value));
}
final listEmailAddressMailTo = listEmailAddressAttendees
.where((emailAddress) => emailAddress.emailAddress.isNotEmpty && emailAddress.emailAddress != mailboxDashBoardController.sessionCurrent?.username.value)
.toSet()
.toList();
log('SingleEmailController::handleMailToAttendees: listEmailAddressMailTo = $listEmailAddressMailTo');
mailboxDashBoardController.goToComposer(
ComposerArguments.fromMailtoUri(listEmailAddress: listEmailAddressMailTo)
);
}
}
+31 -36
View File
@@ -16,7 +16,6 @@ import 'package:model/extensions/presentation_mailbox_extension.dart';
import 'package:model/mailbox/presentation_mailbox.dart';
import 'package:pointer_interceptor/pointer_interceptor.dart';
import 'package:tmail_ui_user/features/base/widget/popup_item_widget.dart';
import 'package:tmail_ui_user/features/base/widget/scrollbar_list_view.dart';
import 'package:tmail_ui_user/features/composer/presentation/extensions/email_action_type_extension.dart';
import 'package:tmail_ui_user/features/email/presentation/controller/single_email_controller.dart';
import 'package:tmail_ui_user/features/email/presentation/extensions/calendar_event_extension.dart';
@@ -148,33 +147,30 @@ class EmailView extends GetWidget<SingleEmailController> {
child: Obx(() => _buildEmailMessage(
context: context,
presentationEmail: currentEmail,
calendarEvent: controller.calendarEvent.value,
calendarEvent: controller.calendarEvent,
maxBodyHeight: constraints.maxHeight
))
)
);
} else {
return Obx(() {
final calendarEvent = controller.calendarEvent.value;
final calendarEvent = controller.calendarEvent;
if (currentEmail.hasCalendarEvent && calendarEvent != null) {
return Padding(
padding: const EdgeInsetsDirectional.symmetric(horizontal: 4),
child: ScrollbarListView(
scrollController: controller.emailContentScrollController,
child: SingleChildScrollView(
physics : const ClampingScrollPhysics(),
child: Container(
width: double.infinity,
alignment: Alignment.center,
color: Colors.white,
child: _buildEmailMessage(
context: context,
presentationEmail: currentEmail,
calendarEvent: calendarEvent,
emailAddressSender: currentEmail.listEmailAddressSender.getListAddress(),
)
child: SingleChildScrollView(
physics : const ClampingScrollPhysics(),
child: Container(
width: double.infinity,
alignment: Alignment.center,
color: Colors.white,
child: _buildEmailMessage(
context: context,
presentationEmail: currentEmail,
calendarEvent: calendarEvent,
emailAddressSender: currentEmail.listEmailAddressSender.getListAddress(),
)
),
)
),
);
} else {
@@ -199,34 +195,31 @@ class EmailView extends GetWidget<SingleEmailController> {
child: Obx(() => _buildEmailMessage(
context: context,
presentationEmail: currentEmail,
calendarEvent: controller.calendarEvent.value,
calendarEvent: controller.calendarEvent,
maxBodyHeight: constraints.maxHeight
))
)
);
} else {
return Obx(() {
final calendarEvent = controller.calendarEvent.value;
final calendarEvent = controller.calendarEvent;
if (currentEmail.hasCalendarEvent && calendarEvent != null) {
return Padding(
padding: const EdgeInsetsDirectional.symmetric(horizontal: 4),
child: ScrollbarListView(
scrollController: controller.emailContentScrollController,
child: SingleChildScrollView(
physics : const ClampingScrollPhysics(),
child: Container(
width: double.infinity,
alignment: Alignment.center,
color: Colors.white,
child: _buildEmailMessage(
context: context,
presentationEmail: currentEmail,
calendarEvent: calendarEvent,
emailAddressSender: currentEmail.listEmailAddressSender.getListAddress(),
maxBodyHeight: constraints.maxHeight
)
child: SingleChildScrollView(
physics : const ClampingScrollPhysics(),
child: Container(
width: double.infinity,
alignment: Alignment.center,
color: Colors.white,
child: _buildEmailMessage(
context: context,
presentationEmail: currentEmail,
calendarEvent: calendarEvent,
emailAddressSender: currentEmail.listEmailAddressSender.getListAddress(),
maxBodyHeight: constraints.maxHeight
)
),
)
),
);
} else {
@@ -367,6 +360,7 @@ class EmailView extends GetWidget<SingleEmailController> {
controller.onCalendarEventReplyAction(eventActionType, presentationEmail.id!),
calendarEventReplying: controller.calendarEventProcessing,
presentationEmail: controller.currentEmail,
onMailtoAttendeesAction: controller.handleMailToAttendees,
)),
if (calendarEvent.getTitleEventAction(context, emailAddressSender ?? []).isNotEmpty)
CalendarEventActionBannerWidget(
@@ -384,6 +378,7 @@ class EmailView extends GetWidget<SingleEmailController> {
controller.onCalendarEventReplyAction(eventActionType, presentationEmail.id!),
calendarEventReplying: controller.calendarEventProcessing,
presentationEmail: controller.currentEmail,
onMailtoAttendeesAction: controller.handleMailToAttendees,
)),
],
)
@@ -4,4 +4,6 @@ import 'package:tmail_ui_user/features/upload/domain/extensions/media_type_exten
extension AttachmentExtension on Attachment {
String getIcon(ImagePaths imagePaths) => type?.getIcon(imagePaths, fileName: name) ?? imagePaths.icFileEPup;
bool validatePDFIcon() => type?.validatePDFIcon(fileName: name) ?? false;
}
@@ -97,6 +97,8 @@ class CalendarEventActionButtonWidget extends StatelessWidget {
return CalendarEventActionButtonWidgetStyles.loadingBackgroundColor;
}
return CalendarEventActionButtonWidgetStyles.backgroundColor;
case EventActionType.mailToAttendees:
return CalendarEventActionButtonWidgetStyles.backgroundColor;
}
}
@@ -120,6 +122,8 @@ class CalendarEventActionButtonWidget extends StatelessWidget {
return CalendarEventActionButtonWidgetStyles.selectedTextColor;
}
return CalendarEventActionButtonWidgetStyles.textColor;
case EventActionType.mailToAttendees:
return CalendarEventActionButtonWidgetStyles.textColor;
}
}
@@ -143,6 +147,8 @@ class CalendarEventActionButtonWidget extends StatelessWidget {
return CalendarEventActionButtonWidgetStyles.selectedBackgroundColor;
}
return CalendarEventActionButtonWidgetStyles.textColor;
case EventActionType.mailToAttendees:
return CalendarEventActionButtonWidgetStyles.textColor;
}
}
@@ -164,6 +170,8 @@ class CalendarEventActionButtonWidget extends StatelessWidget {
return null;
}
return () => onCalendarEventReplyActionClick(eventActionType);
case EventActionType.mailToAttendees:
return onMailToAttendeesAction;
}
}
}
@@ -1,6 +1,8 @@
import 'package:core/presentation/views/html_viewer/html_content_viewer_widget.dart';
import 'package:flutter/material.dart';
import 'package:jmap_dart_client/jmap/mail/calendar/calendar_event.dart';
import 'package:jmap_dart_client/jmap/mail/calendar/properties/attendee/calendar_attendee.dart';
import 'package:jmap_dart_client/jmap/mail/calendar/properties/calendar_organizer.dart';
import 'package:model/email/presentation_email.dart';
import 'package:tmail_ui_user/features/email/presentation/extensions/calendar_event_extension.dart';
import 'package:tmail_ui_user/features/email/presentation/styles/calendar_event_detail_widget_styles.dart';
@@ -13,6 +15,8 @@ import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event
import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event/event_title_widget.dart';
import 'package:tmail_ui_user/main/utils/app_utils.dart';
typedef OnMailtoAttendeesAction = Function(CalendarOrganizer? organizer, List<CalendarAttendee>? participants);
class CalendarEventDetailWidget extends StatelessWidget {
final CalendarEvent calendarEvent;
@@ -24,6 +28,7 @@ class CalendarEventDetailWidget extends StatelessWidget {
final OnCalendarEventReplyActionClick onCalendarEventReplyActionClick;
final bool calendarEventReplying;
final PresentationEmail? presentationEmail;
final OnMailtoAttendeesAction? onMailtoAttendeesAction;
const CalendarEventDetailWidget({
super.key,
@@ -36,6 +41,7 @@ class CalendarEventDetailWidget extends StatelessWidget {
this.onOpenComposerAction,
this.onMailtoDelegateAction,
this.presentationEmail,
this.onMailtoAttendeesAction,
});
@override
@@ -99,6 +105,10 @@ class CalendarEventDetailWidget extends StatelessWidget {
onCalendarEventReplyActionClick: onCalendarEventReplyActionClick,
calendarEventReplying: calendarEventReplying,
presentationEmail: presentationEmail,
onMailToAttendeesAction: () => onMailtoAttendeesAction?.call(
calendarEvent.organizer,
calendarEvent.participants,
),
),
],
),
@@ -25,6 +25,7 @@ class CalendarEventInformationWidget extends StatelessWidget {
final OnCalendarEventReplyActionClick onCalendarEventReplyActionClick;
final bool calendarEventReplying;
final PresentationEmail? presentationEmail;
final OnMailtoAttendeesAction? onMailtoAttendeesAction;
final _responsiveUtils = Get.find<ResponsiveUtils>();
@@ -36,6 +37,7 @@ class CalendarEventInformationWidget extends StatelessWidget {
this.onOpenNewTabAction,
this.onOpenComposerAction,
this.presentationEmail,
this.onMailtoAttendeesAction,
});
@override
@@ -123,6 +125,10 @@ class CalendarEventInformationWidget extends StatelessWidget {
onCalendarEventReplyActionClick: onCalendarEventReplyActionClick,
calendarEventReplying: calendarEventReplying,
presentationEmail: presentationEmail,
onMailToAttendeesAction: () => onMailtoAttendeesAction?.call(
calendarEvent.organizer,
calendarEvent.participants,
),
),
],
),
@@ -194,6 +200,10 @@ class CalendarEventInformationWidget extends StatelessWidget {
onCalendarEventReplyActionClick: onCalendarEventReplyActionClick,
calendarEventReplying: calendarEventReplying,
presentationEmail: presentationEmail,
onMailToAttendeesAction: () => onMailtoAttendeesAction?.call(
calendarEvent.organizer,
calendarEvent.participants,
),
),
],
),
@@ -4,8 +4,6 @@ import 'package:core/presentation/views/image/avatar_builder.dart';
import 'package:core/presentation/views/text/text_overflow_builder.dart';
import 'package:core/utils/platform_info.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
import 'package:jmap_dart_client/jmap/core/user_name.dart';
import 'package:model/extensions/username_extension.dart';
import 'package:tmail_ui_user/features/base/widget/material_text_button.dart';
+2 -2
View File
@@ -563,8 +563,8 @@ packages:
dependency: "direct main"
description:
path: "."
ref: master
resolved-ref: "21d15bc1a6a75e048ee1e3cd751dd0815492ce20"
ref: migrate_cnb_to_master_5Jun
resolved-ref: "49305a382ca77211a0668fd9fe196a3c057cdc8e"
url: "https://github.com/linagora/jmap-dart-client.git"
source: git
version: "0.0.1"
+3 -1
View File
@@ -30,10 +30,12 @@ dependencies:
path: ../core
### Dependencies from git ###
# TODO: We will change it when the PR in upstream repository will be merged
# https://github.com/linagora/jmap-dart-client/pull/87
jmap_dart_client:
git:
url: https://github.com/linagora/jmap-dart-client.git
ref: master
ref: migrate_cnb_to_master_5Jun
### Dependencies from pub.dev ###
cupertino_icons: 1.0.6
+5 -5
View File
@@ -521,7 +521,7 @@ packages:
source: hosted
version: "6.1.4"
file_picker:
dependency: "direct overridden"
dependency: "direct main"
description:
path: "."
ref: "email_supported_5.3.1"
@@ -1058,8 +1058,8 @@ packages:
dependency: "direct main"
description:
path: "."
ref: "bugfix/composer-reply-memory-leak"
resolved-ref: "7a20f8e924e403eb54f4a6177c3c8ecb0c7b3687"
ref: cnb_supported
resolved-ref: "978886d768e6540fc7dbe016dd83733c56ffb220"
url: "https://github.com/linagora/html-editor-enhanced.git"
source: git
version: "2.5.1"
@@ -1147,8 +1147,8 @@ packages:
dependency: "direct main"
description:
path: "."
ref: master
resolved-ref: "21d15bc1a6a75e048ee1e3cd751dd0815492ce20"
ref: migrate_cnb_to_master_5Jun
resolved-ref: "49305a382ca77211a0668fd9fe196a3c057cdc8e"
url: "https://github.com/linagora/jmap-dart-client.git"
source: git
version: "0.0.1"
+7 -3
View File
@@ -55,17 +55,19 @@ dependencies:
rich_text_composer:
git:
url: https://github.com/linagora/rich-text-composer.git
ref: master
ref: cnb_supported
html_editor_enhanced:
git:
url: https://github.com/linagora/html-editor-enhanced.git
ref: bugfix/composer-reply-memory-leak
ref: cnb_supported
# TODO: We will change it when the PR in upstream repository will be merged
# https://github.com/linagora/jmap-dart-client/pull/87
jmap_dart_client:
git:
url: https://github.com/linagora/jmap-dart-client.git
ref: master
ref: migrate_cnb_to_master_5Jun
contacts_service:
git:
@@ -240,6 +242,8 @@ dependencies:
future_loading_dialog: 0.3.0
file_picker: 5.3.1
dev_dependencies:
flutter_test:
sdk: flutter
+2 -2
View File
@@ -295,8 +295,8 @@ packages:
dependency: "direct main"
description:
path: "."
ref: master
resolved-ref: "21d15bc1a6a75e048ee1e3cd751dd0815492ce20"
ref: migrate_cnb_to_master_5Jun
resolved-ref: "49305a382ca77211a0668fd9fe196a3c057cdc8e"
url: "https://github.com/linagora/jmap-dart-client.git"
source: git
version: "0.0.1"
+3 -1
View File
@@ -12,10 +12,12 @@ dependencies:
sdk: flutter
### Dependencies from git ###
# TODO: We will change it when the PR in upstream repository will be merged
# https://github.com/linagora/jmap-dart-client/pull/87
jmap_dart_client:
git:
url: https://github.com/linagora/jmap-dart-client.git
ref: master
ref: migrate_cnb_to_master_5Jun
### Dependencies from pub.dev ###
equatable: 2.0.5
+3 -1
View File
@@ -11,10 +11,12 @@ dependencies:
sdk: flutter
### Dependencies from git ###
# TODO: We will change it when the PR in upstream repository will be merged
# https://github.com/linagora/jmap-dart-client/pull/87
jmap_dart_client:
git:
url: https://github.com/linagora/jmap-dart-client.git
ref: master
ref: migrate_cnb_to_master_5Jun
### Dependencies from pub.dev ###
equatable: 2.0.5
@@ -3,6 +3,7 @@ import 'dart:ui';
import 'package:core/core.dart';
import 'package:core/utils/application_manager.dart';
import 'package:dartz/dartz.dart' hide State;
import 'package:flutter/foundation.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:get/get.dart';
import 'package:jmap_dart_client/jmap/account_id.dart';
@@ -185,6 +186,7 @@ void main() {
setUp(() {
Get.locale = locale;
debugDefaultTargetPlatformOverride = TargetPlatform.macOS;
});
group('accept test:', () {
@@ -270,9 +272,18 @@ void main() {
verify(rejectCalendarEventInteractor.execute(testAccountId, {blobId}, emailId, locale.languageCode)).called(1);
});
});
tearDown(() {
debugDefaultTargetPlatformOverride = null;
});
});
group('StoreEventAttendanceStatusInteractor test', () {
setUp(() {
debugDefaultTargetPlatformOverride = TargetPlatform.macOS;
});
group('calendarEventSuccess method test', () {
test(
'SHOULD call execute on StoreEventAttendanceStatusInteractor\n'
@@ -343,5 +354,9 @@ void main() {
)).called(1);
});
});
tearDown(() {
debugDefaultTargetPlatformOverride = null;
});
});
}
@@ -4,6 +4,7 @@ import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
import 'package:core/presentation/utils/app_toast.dart';
import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/utils/application_manager.dart';
import 'package:dartz/dartz.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:get/get.dart';
@@ -51,6 +52,7 @@ import 'home_controller_test.mocks.dart';
MockSpec<UpdateAuthenticationAccountInteractor>(),
MockSpec<CachingManager>(),
MockSpec<LanguageCacheManager>(),
MockSpec<ApplicationManager>(),
])
void main() {
TestWidgetsFlutterBinding.ensureInitialized();
@@ -77,6 +79,7 @@ void main() {
late MockImagePaths mockImagePaths;
late MockResponsiveUtils mockResponsiveUtils;
late MockUuid mockUuid;
late MockApplicationManager mockApplicationManager;
setUpAll(() {
cleanupEmailCacheInteractor = MockCleanupEmailCacheInteractor();
@@ -102,6 +105,7 @@ void main() {
mockImagePaths = MockImagePaths();
mockResponsiveUtils = MockResponsiveUtils();
mockUuid = MockUuid();
mockApplicationManager = MockApplicationManager();
Get.put<GetSessionInteractor>(mockGetSessionInteractor);
Get.put<GetAuthenticatedAccountInteractor>(mockGetAuthenticatedAccountInteractor);
@@ -122,6 +126,7 @@ void main() {
Get.put<ImagePaths>(mockImagePaths);
Get.put<ResponsiveUtils>(mockResponsiveUtils);
Get.put<Uuid>(mockUuid);
Get.put<ApplicationManager>(mockApplicationManager);
Get.testMode = true;
homeController = HomeController(
@@ -3,6 +3,7 @@ import 'package:core/data/network/config/dynamic_url_interceptors.dart';
import 'package:core/presentation/resources/image_paths.dart';
import 'package:core/presentation/utils/app_toast.dart';
import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/utils/application_manager.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:get/get.dart';
import 'package:mockito/annotations.dart';
@@ -65,6 +66,7 @@ import 'login_controller_test.mocks.dart';
MockSpec<UpdateAuthenticationAccountInteractor>(),
MockSpec<CachingManager>(),
MockSpec<LanguageCacheManager>(),
MockSpec<ApplicationManager>(),
])
void main() {
late MockAuthenticationInteractor mockAuthenticationInteractor;
@@ -94,6 +96,7 @@ void main() {
late MockImagePaths mockImagePaths;
late MockResponsiveUtils mockResponsiveUtils;
late MockUuid mockUuid;
late MockApplicationManager mockApplicationManager;
late LoginController loginController;
@@ -130,6 +133,7 @@ void main() {
mockImagePaths = MockImagePaths();
mockResponsiveUtils = MockResponsiveUtils();
mockUuid = MockUuid();
mockApplicationManager = MockApplicationManager();
Get.put<GetSessionInteractor>(mockGetSessionInteractor);
Get.put<GetAuthenticatedAccountInteractor>(mockGetAuthenticatedAccountInteractor);
@@ -149,6 +153,7 @@ void main() {
Get.put<ImagePaths>(mockImagePaths);
Get.put<ResponsiveUtils>(mockResponsiveUtils);
Get.put<Uuid>(mockUuid);
Get.put<ApplicationManager>(mockApplicationManager);
Get.testMode = true;
loginController = LoginController(
@@ -17,7 +17,6 @@ import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
import 'package:mockito/annotations.dart';
import 'package:mockito/mockito.dart';
import 'package:model/mailbox/presentation_mailbox.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:rxdart/subjects.dart';
import 'package:tmail_ui_user/features/caching/caching_manager.dart';
import 'package:tmail_ui_user/features/composer/domain/usecases/send_email_interactor.dart';
@@ -168,6 +167,8 @@ const fallbackGenerators = {
MockSpec<CachingManager>(),
MockSpec<LanguageCacheManager>(),
MockSpec<RemoveComposerCacheOnWebInteractor>(),
MockSpec<ApplicationManager>(),
MockSpec<GetAllIdentitiesInteractor>(),
])
void main() {
// mock mailbox dashboard controller direct dependencies
@@ -303,12 +304,6 @@ void main() {
Get.put<RemoveComposerCacheOnWebInteractor>(removeComposerCacheOnWebInteractor);
Get.testMode = true;
PackageInfo.setMockInitialValues(
appName: '',
packageName: '',
version: '',
buildNumber: '',
buildSignature: '');
when(emailReceiveManager.pendingEmailAddressInfo).thenAnswer((_) => BehaviorSubject.seeded(null));
when(emailReceiveManager.pendingEmailContentInfo).thenAnswer((_) => BehaviorSubject.seeded(null));