From 2e62184c35b1090d68f25b7c6bada2e1bd132939 Mon Sep 17 00:00:00 2001 From: dab246 Date: Fri, 4 Apr 2025 10:12:55 +0700 Subject: [PATCH] TF-3609 Add integration test for case long press copy email address to Clipboard in EmailView Signed-off-by: dab246 --- integration_test/robots/email_robot.dart | 7 +++ ...y_email_address_to_clipboard_scenario.dart | 48 +++++++++++++++++++ ..._copy_email_address_to_clipboard_test.dart | 9 ++++ 3 files changed, 64 insertions(+) create mode 100644 integration_test/scenarios/email_detailed/long_press_copy_email_address_to_clipboard_scenario.dart create mode 100644 integration_test/tests/email_detailed/email_address_dialog/long_press_copy_email_address_to_clipboard_test.dart diff --git a/integration_test/robots/email_robot.dart b/integration_test/robots/email_robot.dart index f1b818513..b73f26c8a 100644 --- a/integration_test/robots/email_robot.dart +++ b/integration_test/robots/email_robot.dart @@ -76,4 +76,11 @@ class EmailRobot extends CoreRobot { .first .tap(); } + + Future longPressSenderEmailAddress(String email) async { + await $(MaterialTextButton) + .which((widget) => widget.label.contains(email)) + .first + .longPress(); + } } \ No newline at end of file diff --git a/integration_test/scenarios/email_detailed/long_press_copy_email_address_to_clipboard_scenario.dart b/integration_test/scenarios/email_detailed/long_press_copy_email_address_to_clipboard_scenario.dart new file mode 100644 index 000000000..a306a400f --- /dev/null +++ b/integration_test/scenarios/email_detailed/long_press_copy_email_address_to_clipboard_scenario.dart @@ -0,0 +1,48 @@ + +import 'package:flutter_test/flutter_test.dart'; +import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; + +import '../../base/base_test_scenario.dart'; +import '../../models/provisioning_email.dart'; +import '../../robots/email_robot.dart'; +import '../../robots/thread_robot.dart'; + +class LongPressCopyEmailAddressToClipboardScenario extends BaseTestScenario { + + const LongPressCopyEmailAddressToClipboardScenario(super.$); + + @override + Future runTestLogic() async { + const subject = 'Long press copy email address to clipboard'; + const emailUser = String.fromEnvironment('BASIC_AUTH_EMAIL'); + final threadRobot = ThreadRobot($); + final emailRobot = EmailRobot($); + final appLocalizations = AppLocalizations(); + + await provisionEmail( + [ + ProvisioningEmail( + toEmail: emailUser, + subject: subject, + content: subject, + ), + ], + requestReadReceipt: false, + ); + await $.pumpAndSettle(); + + await threadRobot.openEmailWithSubject(subject); + await $.pumpAndSettle(); + + await emailRobot.longPressSenderEmailAddress(emailUser); + await $.pumpAndSettle(); + + await _expectSnackBarVisible(appLocalizations); + } + + Future _expectSnackBarVisible( + AppLocalizations appLocalizations, + ) async { + await expectViewVisible($(appLocalizations.email_address_copied_to_clipboard)); + } +} \ No newline at end of file diff --git a/integration_test/tests/email_detailed/email_address_dialog/long_press_copy_email_address_to_clipboard_test.dart b/integration_test/tests/email_detailed/email_address_dialog/long_press_copy_email_address_to_clipboard_test.dart new file mode 100644 index 000000000..c0c5080ff --- /dev/null +++ b/integration_test/tests/email_detailed/email_address_dialog/long_press_copy_email_address_to_clipboard_test.dart @@ -0,0 +1,9 @@ +import '../../../base/test_base.dart'; +import '../../../scenarios/email_detailed/long_press_copy_email_address_to_clipboard_scenario.dart'; + +void main() { + TestBase().runPatrolTest( + description: 'Should see Clipboard SnackBar when open detailed email and long press email address of sender or recipient', + scenarioBuilder: ($) => LongPressCopyEmailAddressToClipboardScenario($), + ); +} \ No newline at end of file