Loading components/browser/toolbar/src/main/java/mozilla/components/browser/toolbar/BrowserToolbar.kt +5 −4 Original line number Diff line number Diff line Loading @@ -75,7 +75,8 @@ class BrowserToolbar @JvmOverloads constructor( defStyleAttr: Int = 0 ) : ViewGroup(context, attrs, defStyleAttr), Toolbar { private var state: State = State.DISPLAY private var searchTerms: String = "" @VisibleForTesting internal var searchTerms: String = "" private var urlCommitListener: ((String) -> Boolean)? = null /** Loading Loading @@ -219,11 +220,11 @@ class BrowserToolbar @JvmOverloads constructor( } override fun setSearchTerms(searchTerms: String) { this.searchTerms = searchTerms.take(MAX_URI_LENGTH) if (state == State.EDIT) { edit.editSuggestion(searchTerms) edit.editSuggestion(this.searchTerms) } this.searchTerms = searchTerms } override fun displayProgress(progress: Int) { Loading components/browser/toolbar/src/test/java/mozilla/components/browser/toolbar/BrowserToolbarTest.kt +32 −0 Original line number Diff line number Diff line Loading @@ -152,6 +152,38 @@ class BrowserToolbarTest { assertEquals("c".repeat(MAX_URI_LENGTH - 1), capturedValues[2]) } @Test fun `searchTerms is truncated in case it is greater than MAX_URI_LENGTH`() { val toolbar = BrowserToolbar(testContext) toolbar.edit = spy(toolbar.edit) toolbar.editMode() toolbar.setSearchTerms("a".repeat(MAX_URI_LENGTH + 1)) // Value was too long and should've been truncated assertEquals(toolbar.searchTerms.length, MAX_URI_LENGTH) verify(toolbar.edit).editSuggestion("a".repeat(MAX_URI_LENGTH)) } @Test fun `searchTerms is not truncated in case it is equal or less than MAX_URI_LENGTH`() { val toolbar = BrowserToolbar(testContext) toolbar.edit = spy(toolbar.edit) toolbar.editMode() toolbar.setSearchTerms("b".repeat(MAX_URI_LENGTH)) // Value should be the same as before assertEquals(toolbar.searchTerms.length, MAX_URI_LENGTH) verify(toolbar.edit).editSuggestion("b".repeat(MAX_URI_LENGTH)) toolbar.setSearchTerms("c".repeat(MAX_URI_LENGTH - 1)) // Value should be the same as before assertEquals(toolbar.searchTerms.length, MAX_URI_LENGTH - 1) verify(toolbar.edit).editSuggestion("c".repeat(MAX_URI_LENGTH - 1)) } @Test fun `last URL will be forwarded to edit toolbar when switching mode`() { val toolbar = BrowserToolbar(testContext) Loading Loading
components/browser/toolbar/src/main/java/mozilla/components/browser/toolbar/BrowserToolbar.kt +5 −4 Original line number Diff line number Diff line Loading @@ -75,7 +75,8 @@ class BrowserToolbar @JvmOverloads constructor( defStyleAttr: Int = 0 ) : ViewGroup(context, attrs, defStyleAttr), Toolbar { private var state: State = State.DISPLAY private var searchTerms: String = "" @VisibleForTesting internal var searchTerms: String = "" private var urlCommitListener: ((String) -> Boolean)? = null /** Loading Loading @@ -219,11 +220,11 @@ class BrowserToolbar @JvmOverloads constructor( } override fun setSearchTerms(searchTerms: String) { this.searchTerms = searchTerms.take(MAX_URI_LENGTH) if (state == State.EDIT) { edit.editSuggestion(searchTerms) edit.editSuggestion(this.searchTerms) } this.searchTerms = searchTerms } override fun displayProgress(progress: Int) { Loading
components/browser/toolbar/src/test/java/mozilla/components/browser/toolbar/BrowserToolbarTest.kt +32 −0 Original line number Diff line number Diff line Loading @@ -152,6 +152,38 @@ class BrowserToolbarTest { assertEquals("c".repeat(MAX_URI_LENGTH - 1), capturedValues[2]) } @Test fun `searchTerms is truncated in case it is greater than MAX_URI_LENGTH`() { val toolbar = BrowserToolbar(testContext) toolbar.edit = spy(toolbar.edit) toolbar.editMode() toolbar.setSearchTerms("a".repeat(MAX_URI_LENGTH + 1)) // Value was too long and should've been truncated assertEquals(toolbar.searchTerms.length, MAX_URI_LENGTH) verify(toolbar.edit).editSuggestion("a".repeat(MAX_URI_LENGTH)) } @Test fun `searchTerms is not truncated in case it is equal or less than MAX_URI_LENGTH`() { val toolbar = BrowserToolbar(testContext) toolbar.edit = spy(toolbar.edit) toolbar.editMode() toolbar.setSearchTerms("b".repeat(MAX_URI_LENGTH)) // Value should be the same as before assertEquals(toolbar.searchTerms.length, MAX_URI_LENGTH) verify(toolbar.edit).editSuggestion("b".repeat(MAX_URI_LENGTH)) toolbar.setSearchTerms("c".repeat(MAX_URI_LENGTH - 1)) // Value should be the same as before assertEquals(toolbar.searchTerms.length, MAX_URI_LENGTH - 1) verify(toolbar.edit).editSuggestion("c".repeat(MAX_URI_LENGTH - 1)) } @Test fun `last URL will be forwarded to edit toolbar when switching mode`() { val toolbar = BrowserToolbar(testContext) Loading