Handle web finger to get token in HomeController

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-07-02 15:54:29 +07:00
committed by Dat H. Pham
parent fc2265b5e5
commit 9a2f0aa356
26 changed files with 323 additions and 113 deletions
@@ -19,9 +19,13 @@ import 'package:tmail_ui_user/features/home/domain/usecases/get_session_interact
import 'package:tmail_ui_user/features/home/presentation/home_controller.dart';
import 'package:tmail_ui_user/features/login/data/network/interceptors/authorization_interceptors.dart';
import 'package:tmail_ui_user/features/login/domain/state/get_stored_token_oidc_state.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/authenticate_oidc_on_browser_interactor.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/check_oidc_is_available_interactor.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/delete_authority_oidc_interactor.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/delete_credential_interactor.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/get_authenticated_account_interactor.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/get_oidc_configuration_interactor.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/remove_auth_destination_url_interactor.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/update_account_cache_interactor.dart';
import 'package:tmail_ui_user/features/manage_account/data/local/language_cache_manager.dart';
import 'package:tmail_ui_user/features/manage_account/domain/usecases/log_out_oidc_interactor.dart';
@@ -46,6 +50,10 @@ import 'home_controller_test.mocks.dart';
MockSpec<CleanupEmailCacheInteractor>(),
MockSpec<CleanupRecentLoginUrlCacheInteractor>(),
MockSpec<CleanupRecentLoginUsernameCacheInteractor>(),
MockSpec<CheckOIDCIsAvailableInteractor>(),
MockSpec<GetOIDCConfigurationInteractor>(),
MockSpec<AuthenticateOidcOnBrowserInteractor>(),
MockSpec<RemoveAuthDestinationUrlInteractor>(),
MockSpec<EmailReceiveManager>(),
MockSpec<GetSessionInteractor>(),
MockSpec<GetAuthenticatedAccountInteractor>(),
@@ -64,6 +72,10 @@ void main() {
late MockEmailReceiveManager emailReceiveManager;
late MockCleanupRecentLoginUrlCacheInteractor cleanupRecentLoginUrlCacheInteractor;
late MockCleanupRecentLoginUsernameCacheInteractor cleanupRecentLoginUsernameCacheInteractor;
late MockCheckOIDCIsAvailableInteractor checkOIDCIsAvailableInteractor;
late MockGetOIDCConfigurationInteractor getOIDCConfigurationInteractor;
late MockAuthenticateOidcOnBrowserInteractor authenticateOidcOnBrowserInteractor;
late MockRemoveAuthDestinationUrlInteractor removeAuthDestinationUrlInteractor;
late MockGetSessionInteractor mockGetSessionInteractor;
late MockGetAuthenticatedAccountInteractor mockGetAuthenticatedAccountInteractor;
@@ -89,7 +101,10 @@ void main() {
emailReceiveManager = MockEmailReceiveManager();
cleanupRecentLoginUrlCacheInteractor = MockCleanupRecentLoginUrlCacheInteractor();
cleanupRecentLoginUsernameCacheInteractor = MockCleanupRecentLoginUsernameCacheInteractor();
checkOIDCIsAvailableInteractor = MockCheckOIDCIsAvailableInteractor();
getOIDCConfigurationInteractor = MockGetOIDCConfigurationInteractor();
authenticateOidcOnBrowserInteractor = MockAuthenticateOidcOnBrowserInteractor();
removeAuthDestinationUrlInteractor = MockRemoveAuthDestinationUrlInteractor();
// mock reloadable controller
mockGetSessionInteractor = MockGetSessionInteractor();
mockGetAuthenticatedAccountInteractor = MockGetAuthenticatedAccountInteractor();
@@ -139,7 +154,11 @@ void main() {
cleanupEmailCacheInteractor,
emailReceiveManager,
cleanupRecentLoginUrlCacheInteractor,
cleanupRecentLoginUsernameCacheInteractor
cleanupRecentLoginUsernameCacheInteractor,
checkOIDCIsAvailableInteractor,
getOIDCConfigurationInteractor,
authenticateOidcOnBrowserInteractor,
removeAuthDestinationUrlInteractor,
);
});
@@ -32,6 +32,7 @@ import 'package:tmail_ui_user/features/login/domain/usecases/get_authentication_
import 'package:tmail_ui_user/features/login/domain/usecases/get_oidc_configuration_interactor.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/get_stored_oidc_configuration_interactor.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/get_token_oidc_interactor.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/remove_auth_destination_url_interactor.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/save_login_url_on_mobile_interactor.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/save_login_username_on_mobile_interactor.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/try_guessing_web_finger_interactor.dart';
@@ -73,6 +74,7 @@ import 'login_controller_test.mocks.dart';
MockSpec<DNSLookupToGetJmapUrlInteractor>(),
MockSpec<SignInTwakeWorkplaceInteractor>(),
MockSpec<TryGuessingWebFingerInteractor>(),
MockSpec<RemoveAuthDestinationUrlInteractor>(),
MockSpec<GetSessionInteractor>(),
MockSpec<GetAuthenticatedAccountInteractor>(),
MockSpec<UpdateAccountCacheInteractor>(),
@@ -97,6 +99,7 @@ void main() {
late MockDNSLookupToGetJmapUrlInteractor mockDNSLookupToGetJmapUrlInteractor;
late MockSignInTwakeWorkplaceInteractor mockSignInTwakeWorkplaceInteractor;
late MockTryGuessingWebFingerInteractor mockTryGuessingWebFingerInteractor;
late MockRemoveAuthDestinationUrlInteractor mockRemoveAuthDestinationUrlInteractor;
late MockGetSessionInteractor mockGetSessionInteractor;
late MockGetAuthenticatedAccountInteractor mockGetAuthenticatedAccountInteractor;
late MockUpdateAccountCacheInteractor mockUpdateAccountCacheInteractor;
@@ -132,6 +135,7 @@ void main() {
mockDNSLookupToGetJmapUrlInteractor = MockDNSLookupToGetJmapUrlInteractor();
mockSignInTwakeWorkplaceInteractor = MockSignInTwakeWorkplaceInteractor();
mockTryGuessingWebFingerInteractor = MockTryGuessingWebFingerInteractor();
mockRemoveAuthDestinationUrlInteractor = MockRemoveAuthDestinationUrlInteractor();
// mock reloadable controller
mockGetSessionInteractor = MockGetSessionInteractor();
@@ -196,6 +200,7 @@ void main() {
mockDNSLookupToGetJmapUrlInteractor,
mockSignInTwakeWorkplaceInteractor,
mockTryGuessingWebFingerInteractor,
mockRemoveAuthDestinationUrlInteractor,
);
});