Loading components/browser/toolbar/src/main/java/mozilla/components/browser/toolbar/BrowserToolbar.kt +8 −2 Original line number Diff line number Diff line Loading @@ -503,6 +503,13 @@ class BrowserToolbar @JvmOverloads constructor( editToolbar.addEditAction(action) } /** * Focuses the editToolbar if already in edit mode */ fun focus() { editToolbar.focus() } /** * Switches to URL editing mode. */ Loading @@ -512,10 +519,9 @@ class BrowserToolbar @JvmOverloads constructor( val shouldAutoComplete = searchTerms.isEmpty() editToolbar.updateUrl(urlValue.toString(), shouldAutoComplete) updateState(State.EDIT) editToolbar.focus() editToolbar.urlView.selectAll() } /** Loading components/browser/toolbar/src/test/java/mozilla/components/browser/toolbar/BrowserToolbarTest.kt +27 −18 Original line number Diff line number Diff line Loading @@ -70,6 +70,19 @@ class BrowserToolbarTest { assertTrue(toolbar.editToolbar.visibility == View.VISIBLE) } @Test fun `calling editModeFocus() focuses the editToolbar`() { val toolbar = BrowserToolbar(testContext) toolbar.editToolbar = spy(toolbar.editToolbar) verify(toolbar.editToolbar, never()).focus() toolbar.editMode() toolbar.focus() verify(toolbar.editToolbar, times(2)).focus() } @Test fun `calling displayMode() makes display toolbar visible`() { val toolbar = BrowserToolbar(testContext) Loading Loading @@ -113,30 +126,28 @@ class BrowserToolbarTest { fun `displayUrl will be forwarded to display toolbar immediately`() { val toolbar = BrowserToolbar(testContext) val displayToolbar = mock(DisplayToolbar::class.java) val ediToolbar = mock(EditToolbar::class.java) val editToolbar = mock(EditToolbar::class.java) toolbar.displayToolbar = displayToolbar toolbar.editToolbar = ediToolbar toolbar.editToolbar = editToolbar toolbar.url = "https://www.mozilla.org" verify(displayToolbar).updateUrl("https://www.mozilla.org") verify(ediToolbar, never()).updateUrl(ArgumentMatchers.anyString(), ArgumentMatchers.anyBoolean()) verify(editToolbar, never()).updateUrl(ArgumentMatchers.anyString(), ArgumentMatchers.anyBoolean()) } @Test fun `last URL will be forwarded to edit toolbar when switching mode`() { val toolbar = BrowserToolbar(testContext) val ediToolbar = mock(EditToolbar::class.java) toolbar.editToolbar = ediToolbar toolbar.editToolbar = spy(toolbar.editToolbar) toolbar.url = "https://www.mozilla.org" verify(ediToolbar, never()).updateUrl("https://www.mozilla.org", true) verify(toolbar.editToolbar, never()).updateUrl("https://www.mozilla.org", true) toolbar.editMode() verify(ediToolbar).updateUrl("https://www.mozilla.org", true) verify(toolbar.editToolbar).updateUrl("https://www.mozilla.org", true) } @Test Loading Loading @@ -417,22 +428,21 @@ class BrowserToolbarTest { fun `URL update does not override search terms in edit mode`() { val toolbar = BrowserToolbar(testContext) val displayToolbar = mock(DisplayToolbar::class.java) val editToolbar = mock(EditToolbar::class.java) toolbar.displayToolbar = displayToolbar toolbar.editToolbar = editToolbar toolbar.editToolbar = spy(toolbar.editToolbar) toolbar.setSearchTerms("mozilla android") toolbar.url = "https://www.mozilla.com" toolbar.editMode() verify(displayToolbar).updateUrl("https://www.mozilla.com") verify(editToolbar).updateUrl("mozilla android", false) verify(toolbar.editToolbar).updateUrl("mozilla android", false) toolbar.setSearchTerms("") toolbar.url = "https://www.mozilla.org" toolbar.editMode() verify(displayToolbar).updateUrl("https://www.mozilla.org") verify(editToolbar).updateUrl("https://www.mozilla.org", true) verify(toolbar.editToolbar).updateUrl("https://www.mozilla.org", true) } @Test Loading Loading @@ -467,19 +477,18 @@ class BrowserToolbarTest { fun `search terms (if set) are forwarded to edit toolbar instead of URL`() { val toolbar = BrowserToolbar(testContext) val ediToolbar = mock(EditToolbar::class.java) toolbar.editToolbar = ediToolbar toolbar.editToolbar = spy(toolbar.editToolbar) toolbar.url = "https://www.mozilla.org" toolbar.setSearchTerms("Mozilla Firefox") verify(ediToolbar, never()).updateUrl("https://www.mozilla.org") verify(ediToolbar, never()).updateUrl("Mozilla Firefox") verify(toolbar.editToolbar, never()).updateUrl("https://www.mozilla.org") verify(toolbar.editToolbar, never()).updateUrl("Mozilla Firefox") toolbar.editMode() verify(ediToolbar, never()).updateUrl("https://www.mozilla.org") verify(ediToolbar).updateUrl("Mozilla Firefox") verify(toolbar.editToolbar, never()).updateUrl("https://www.mozilla.org") verify(toolbar.editToolbar).updateUrl("Mozilla Firefox") } @Test Loading docs/changelog.md +5 −1 Original line number Diff line number Diff line Loading @@ -12,6 +12,10 @@ permalink: /changelog/ * [Gecko](https://github.com/mozilla-mobile/android-components/blob/master/buildSrc/src/main/java/Gecko.kt) * [Configuration](https://github.com/mozilla-mobile/android-components/blob/master/buildSrc/src/main/java/Config.kt) * **browser-toolbar** * Adds `focus()` which provides a hook for calling `editMode.focus()` to focus the edit mode `urlView` * **browser-awesomebar** * Updated `DefaultSuggestionViewHolder` to have a style more consistent with Fenix mocks. Loading Loading
components/browser/toolbar/src/main/java/mozilla/components/browser/toolbar/BrowserToolbar.kt +8 −2 Original line number Diff line number Diff line Loading @@ -503,6 +503,13 @@ class BrowserToolbar @JvmOverloads constructor( editToolbar.addEditAction(action) } /** * Focuses the editToolbar if already in edit mode */ fun focus() { editToolbar.focus() } /** * Switches to URL editing mode. */ Loading @@ -512,10 +519,9 @@ class BrowserToolbar @JvmOverloads constructor( val shouldAutoComplete = searchTerms.isEmpty() editToolbar.updateUrl(urlValue.toString(), shouldAutoComplete) updateState(State.EDIT) editToolbar.focus() editToolbar.urlView.selectAll() } /** Loading
components/browser/toolbar/src/test/java/mozilla/components/browser/toolbar/BrowserToolbarTest.kt +27 −18 Original line number Diff line number Diff line Loading @@ -70,6 +70,19 @@ class BrowserToolbarTest { assertTrue(toolbar.editToolbar.visibility == View.VISIBLE) } @Test fun `calling editModeFocus() focuses the editToolbar`() { val toolbar = BrowserToolbar(testContext) toolbar.editToolbar = spy(toolbar.editToolbar) verify(toolbar.editToolbar, never()).focus() toolbar.editMode() toolbar.focus() verify(toolbar.editToolbar, times(2)).focus() } @Test fun `calling displayMode() makes display toolbar visible`() { val toolbar = BrowserToolbar(testContext) Loading Loading @@ -113,30 +126,28 @@ class BrowserToolbarTest { fun `displayUrl will be forwarded to display toolbar immediately`() { val toolbar = BrowserToolbar(testContext) val displayToolbar = mock(DisplayToolbar::class.java) val ediToolbar = mock(EditToolbar::class.java) val editToolbar = mock(EditToolbar::class.java) toolbar.displayToolbar = displayToolbar toolbar.editToolbar = ediToolbar toolbar.editToolbar = editToolbar toolbar.url = "https://www.mozilla.org" verify(displayToolbar).updateUrl("https://www.mozilla.org") verify(ediToolbar, never()).updateUrl(ArgumentMatchers.anyString(), ArgumentMatchers.anyBoolean()) verify(editToolbar, never()).updateUrl(ArgumentMatchers.anyString(), ArgumentMatchers.anyBoolean()) } @Test fun `last URL will be forwarded to edit toolbar when switching mode`() { val toolbar = BrowserToolbar(testContext) val ediToolbar = mock(EditToolbar::class.java) toolbar.editToolbar = ediToolbar toolbar.editToolbar = spy(toolbar.editToolbar) toolbar.url = "https://www.mozilla.org" verify(ediToolbar, never()).updateUrl("https://www.mozilla.org", true) verify(toolbar.editToolbar, never()).updateUrl("https://www.mozilla.org", true) toolbar.editMode() verify(ediToolbar).updateUrl("https://www.mozilla.org", true) verify(toolbar.editToolbar).updateUrl("https://www.mozilla.org", true) } @Test Loading Loading @@ -417,22 +428,21 @@ class BrowserToolbarTest { fun `URL update does not override search terms in edit mode`() { val toolbar = BrowserToolbar(testContext) val displayToolbar = mock(DisplayToolbar::class.java) val editToolbar = mock(EditToolbar::class.java) toolbar.displayToolbar = displayToolbar toolbar.editToolbar = editToolbar toolbar.editToolbar = spy(toolbar.editToolbar) toolbar.setSearchTerms("mozilla android") toolbar.url = "https://www.mozilla.com" toolbar.editMode() verify(displayToolbar).updateUrl("https://www.mozilla.com") verify(editToolbar).updateUrl("mozilla android", false) verify(toolbar.editToolbar).updateUrl("mozilla android", false) toolbar.setSearchTerms("") toolbar.url = "https://www.mozilla.org" toolbar.editMode() verify(displayToolbar).updateUrl("https://www.mozilla.org") verify(editToolbar).updateUrl("https://www.mozilla.org", true) verify(toolbar.editToolbar).updateUrl("https://www.mozilla.org", true) } @Test Loading Loading @@ -467,19 +477,18 @@ class BrowserToolbarTest { fun `search terms (if set) are forwarded to edit toolbar instead of URL`() { val toolbar = BrowserToolbar(testContext) val ediToolbar = mock(EditToolbar::class.java) toolbar.editToolbar = ediToolbar toolbar.editToolbar = spy(toolbar.editToolbar) toolbar.url = "https://www.mozilla.org" toolbar.setSearchTerms("Mozilla Firefox") verify(ediToolbar, never()).updateUrl("https://www.mozilla.org") verify(ediToolbar, never()).updateUrl("Mozilla Firefox") verify(toolbar.editToolbar, never()).updateUrl("https://www.mozilla.org") verify(toolbar.editToolbar, never()).updateUrl("Mozilla Firefox") toolbar.editMode() verify(ediToolbar, never()).updateUrl("https://www.mozilla.org") verify(ediToolbar).updateUrl("Mozilla Firefox") verify(toolbar.editToolbar, never()).updateUrl("https://www.mozilla.org") verify(toolbar.editToolbar).updateUrl("Mozilla Firefox") } @Test Loading
docs/changelog.md +5 −1 Original line number Diff line number Diff line Loading @@ -12,6 +12,10 @@ permalink: /changelog/ * [Gecko](https://github.com/mozilla-mobile/android-components/blob/master/buildSrc/src/main/java/Gecko.kt) * [Configuration](https://github.com/mozilla-mobile/android-components/blob/master/buildSrc/src/main/java/Config.kt) * **browser-toolbar** * Adds `focus()` which provides a hook for calling `editMode.focus()` to focus the edit mode `urlView` * **browser-awesomebar** * Updated `DefaultSuggestionViewHolder` to have a style more consistent with Fenix mocks. Loading