From 9568bdaed83b00d73f3755c1919b60cfa89ba8ca Mon Sep 17 00:00:00 2001 From: Jonathan Almeida Date: Thu, 6 Aug 2020 13:51:48 -0400 Subject: [PATCH] Update Android Components and fix breaking tests --- .../fenix/search/toolbar/ToolbarView.kt | 9 ++++++++- .../fenix/search/toolbar/ToolbarViewTest.kt | 19 +++++++++++++++---- buildSrc/src/main/java/AndroidComponents.kt | 2 +- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/search/toolbar/ToolbarView.kt b/app/src/main/java/org/mozilla/fenix/search/toolbar/ToolbarView.kt index 09d4fa2c9..79f11acf1 100644 --- a/app/src/main/java/org/mozilla/fenix/search/toolbar/ToolbarView.kt +++ b/app/src/main/java/org/mozilla/fenix/search/toolbar/ToolbarView.kt @@ -126,7 +126,14 @@ class ToolbarView( /* Only set the search terms if pasted text is null so that the search term doesn't overwrite pastedText when view enters `editMode` */ if (searchState.pastedText.isNullOrEmpty()) { - view.setSearchTerms(searchState.searchTerms) + // If we're in edit mode, setting the search term will update the toolbar, + // so we make sure we have the correct term/query to show. + val termOrQuery = if (searchState.searchTerms.isNotEmpty()) { + searchState.searchTerms + } else { + searchState.query + } + view.setSearchTerms(termOrQuery) } // We must trigger an onTextChanged so when search terms are set when transitioning to `editMode` diff --git a/app/src/test/java/org/mozilla/fenix/search/toolbar/ToolbarViewTest.kt b/app/src/test/java/org/mozilla/fenix/search/toolbar/ToolbarViewTest.kt index 3f8c9c449..42aa2c781 100644 --- a/app/src/test/java/org/mozilla/fenix/search/toolbar/ToolbarViewTest.kt +++ b/app/src/test/java/org/mozilla/fenix/search/toolbar/ToolbarViewTest.kt @@ -106,15 +106,26 @@ class ToolbarViewTest { view.update(defaultState) view.update(defaultState) - verify(exactly = 1) { toolbar.url = any() } verify(exactly = 1) { toolbar.setSearchTerms(any()) } - verify(exactly = 1) { interactor.onTextChanged(any()) } - // editMode gets called when the view is initialized. So it is called twice in this test - verify(exactly = 2) { toolbar.editMode() } assertTrue(view.isInitialized) } + @Test + fun `search term updates the url`() { + val view = buildToolbarView(false) + + view.update(defaultState) + view.update(defaultState) + view.update(defaultState) + + // editMode gets called when the view is initialized. + verify(exactly = 2) { toolbar.editMode() } + // search term changes update the url and invoke the interactor. + verify(exactly = 2) { toolbar.url = any() } + verify(exactly = 2) { interactor.onTextChanged(any()) } + } + @Test fun `URL gets set to the states query`() { val toolbarView = buildToolbarView(false) diff --git a/buildSrc/src/main/java/AndroidComponents.kt b/buildSrc/src/main/java/AndroidComponents.kt index 17ed23af3..110302299 100644 --- a/buildSrc/src/main/java/AndroidComponents.kt +++ b/buildSrc/src/main/java/AndroidComponents.kt @@ -3,5 +3,5 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ object AndroidComponents { - const val VERSION = "54.0.20200806130142" + const val VERSION = "54.0.20200807130552" }