From 977c6db99effe1c4d3fbc4dcad2cb37eebb4c385 Mon Sep 17 00:00:00 2001 From: ohall-m Date: Mon, 27 May 2024 12:46:53 +0000 Subject: [PATCH] Bug 1898520 - Update AC `isTranslateProcessing` r=android-reviewers,giorga In bug 1892715 the wait states for translations changed; however, `isTranslateProcessing` logic did not change. This is to fix `isTranslateProcessing` to use the longer wait state. Differential Revision: https://phabricator.services.mozilla.com/D211439 --- .../state/reducer/TranslationsStateReducer.kt | 2 +- .../state/action/TranslationsActionTest.kt | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/mobile/android/android-components/components/browser/state/src/main/java/mozilla/components/browser/state/reducer/TranslationsStateReducer.kt b/mobile/android/android-components/components/browser/state/src/main/java/mozilla/components/browser/state/reducer/TranslationsStateReducer.kt index 5d677d26c585..4f52023d86a5 100644 --- a/mobile/android/android-components/components/browser/state/src/main/java/mozilla/components/browser/state/reducer/TranslationsStateReducer.kt +++ b/mobile/android/android-components/components/browser/state/src/main/java/mozilla/components/browser/state/reducer/TranslationsStateReducer.kt @@ -88,6 +88,7 @@ internal object TranslationsStateReducer { isOfferTranslate = isOfferTranslate, isExpectedTranslate = isExpectedTranslate, isTranslated = true, + isTranslateProcessing = false, translationError = null, translationEngineState = action.translationEngineState, ) @@ -114,7 +115,6 @@ internal object TranslationsStateReducer { // The isTranslated state will be identified on a translation state change. state.copyWithTranslationsState(action.tabId) { it.copy( - isTranslateProcessing = false, translationError = null, ) } diff --git a/mobile/android/android-components/components/browser/state/src/test/java/mozilla/components/browser/state/action/TranslationsActionTest.kt b/mobile/android/android-components/components/browser/state/src/test/java/mozilla/components/browser/state/action/TranslationsActionTest.kt index 3a90ae41db7e..430c8cf804ed 100644 --- a/mobile/android/android-components/components/browser/state/src/test/java/mozilla/components/browser/state/action/TranslationsActionTest.kt +++ b/mobile/android/android-components/components/browser/state/src/test/java/mozilla/components/browser/state/action/TranslationsActionTest.kt @@ -93,6 +93,12 @@ class TranslationsActionTest { assertNull(tabState().translationsState.translationEngineState) assertFalse(tabState().translationsState.isTranslated) assertFalse(tabState().translationsState.isExpectedTranslate) + assertFalse(tabState().translationsState.isTranslateProcessing) + + // Set an initial state for is translate processing via a translation request: + store.dispatch(TranslationsAction.TranslateAction(tabId = tab.id, "en", "es", null)) + .joinBlocking() + assertTrue(tabState().translationsState.isTranslateProcessing) val translatedEngineState = TranslationEngineState( detectedLanguages = DetectedLanguages(documentLangTag = "es", supportedDocumentLang = true, userPreferredLangTag = "en"), @@ -109,6 +115,7 @@ class TranslationsActionTest { assertEquals(translatedEngineState, tabState().translationsState.translationEngineState) assertTrue(tabState().translationsState.isTranslated) assertFalse(tabState().translationsState.isExpectedTranslate) + assertFalse(tabState().translationsState.isTranslateProcessing) val nonTranslatedEngineState = TranslationEngineState( detectedLanguages = DetectedLanguages(documentLangTag = "es", supportedDocumentLang = true, userPreferredLangTag = "en"), @@ -269,7 +276,6 @@ class TranslationsActionTest { // Action success store.dispatch(TranslationsAction.TranslateSuccessAction(tabId = tab.id, operation = TranslationOperation.TRANSLATE)) .joinBlocking() - assertEquals(false, tabState().translationsState.isTranslateProcessing) assertEquals(null, tabState().translationsState.translationError) } @@ -393,6 +399,12 @@ class TranslationsActionTest { fun `WHEN a TranslateExceptionAction is dispatched due to an error THEN update the error condition according to the operation`() { // Initial state assertEquals(null, tabState().translationsState.translationError) + assertFalse(tabState().translationsState.isTranslateProcessing) + + // Set an initial state for is translate processing via a translation request: + store.dispatch(TranslationsAction.TranslateAction(tabId = tab.id, "en", "es", null)) + .joinBlocking() + assertTrue(tabState().translationsState.isTranslateProcessing) // TRANSLATE usage val translateError = TranslationError.CouldNotLoadLanguagesError(null) @@ -404,6 +416,8 @@ class TranslationsActionTest { ), ).joinBlocking() assertEquals(translateError, tabState().translationsState.translationError) + // A translate error should clear this state + assertFalse(tabState().translationsState.isTranslateProcessing) // RESTORE usage val restoreError = TranslationError.CouldNotRestoreError(null)