import 'package:flutter/material.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; import '../base/core_robot.dart'; import '../extensions/patrol_finder_extension.dart'; class LoginRobot extends CoreRobot { final appLocalizations = AppLocalizations(); LoginRobot(super.$); Future grantNotificationPermission() async { if (await native.isPermissionDialogVisible(timeout: const Duration(seconds: 1))) { await native.grantPermissionWhenInUse(); } } Future tapOnUseCompanyServer() async { await $(appLocalizations.useCompanyServer).tap(); } Future enterEmail(String email) async { final finder = $(#dns_lookup_input_form).$(TextField); final isTextFieldFocused = finder .which((view) => view.focusNode?.hasFocus ?? false) .exists; if (!isTextFieldFocused) { await finder.tap(); } await finder.enterTextWithoutTapAction(email); } Future enterHostUrl(String url) async { final finder = $(#base_url_form).$(TextField); final isTextFieldFocused = finder .which((view) => view.focusNode?.hasFocus ?? false) .exists; if (!isTextFieldFocused) { await finder.tap(); } await finder.enterTextWithoutTapAction(url); } Future tapOnNextButton() async { await $(appLocalizations.next).tap(); } Future enterBasicAuthEmail(String email) async { final finder = $(#login_username_input).$(TextField); final isTextFieldFocused = finder .which((view) => view.focusNode?.hasFocus ?? false) .exists; if (!isTextFieldFocused) { await finder.tap(); } await finder.enterTextWithoutTapAction(email); } Future enterBasicAuthPassword(String password) async { final finder = $(#login_password_input).$(TextField); final isTextFieldFocused = finder .which((view) => view.focusNode?.hasFocus ?? false) .exists; if (!isTextFieldFocused) { await finder.tap(); } await finder.enterTextWithoutTapAction(password); } Future loginBasicAuth() async { await $(#loginSubmitForm).tap(); } }