From d06f07f78d84c979e22fa178ae3bcc9eaabb44dc Mon Sep 17 00:00:00 2001 From: Mia Alexiou Date: Thu, 28 Jun 2018 11:29:53 +0100 Subject: [PATCH 1/2] Use site model url (rather than live url which is designed to trigger a navigation) for broken site form --- .../app/browser/BrowserTabViewModelTest.kt | 15 +++++++++++++++ .../duckduckgo/app/browser/BrowserTabFragment.kt | 5 ++++- .../duckduckgo/app/browser/BrowserTabViewModel.kt | 5 +++++ 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/app/src/androidTest/java/com/duckduckgo/app/browser/BrowserTabViewModelTest.kt b/app/src/androidTest/java/com/duckduckgo/app/browser/BrowserTabViewModelTest.kt index f51110fbf30b..620e0333c7f1 100644 --- a/app/src/androidTest/java/com/duckduckgo/app/browser/BrowserTabViewModelTest.kt +++ b/app/src/androidTest/java/com/duckduckgo/app/browser/BrowserTabViewModelTest.kt @@ -663,6 +663,21 @@ class BrowserTabViewModelTest { assertEquals("foo", command.url) } + @Test + fun whenUserOnSiteSelectsBrokenSiteThenBrokenSiteFeedbackCommandSentWithUrl() { + testee.urlChanged("foo.com") + testee.onBrokenSiteSelected() + val command = captureCommands().value as Command.BrokenSiteFeedback + assertEquals("foo.com", command.url) + } + + @Test + fun whenUserNotOnSiteSelectsBrokenSiteThenBrokenSiteFeedbackCommandSentWithNoUrl() { + testee.onBrokenSiteSelected() + val command = captureCommands().value as Command.BrokenSiteFeedback + assertEquals(null, command.url) + } + @Test fun whenUserSelectsToShareLinkWithNullUrlThenShareLinkCommandNotSent() { testee.userSharingLink(null) diff --git a/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt b/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt index a145e97f57dc..1a8ec1a9d4e2 100644 --- a/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt +++ b/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt @@ -202,7 +202,7 @@ class BrowserTabFragment : Fragment(), FindListener { onMenuItemClicked(view.bookmarksPopupMenuItem) { browserActivity?.launchBookmarks() } onMenuItemClicked(view.addBookmarksPopupMenuItem) { addBookmark() } onMenuItemClicked(view.findInPageMenuItem) { viewModel.userRequestingToFindInPage() } - onMenuItemClicked(view.brokenSitePopupMenuItem) { browserActivity?.launchBrokenSiteFeedback(viewModel.url.value) } + onMenuItemClicked(view.brokenSitePopupMenuItem) { viewModel.onBrokenSiteSelected() } onMenuItemClicked(view.settingsPopupMenuItem) { browserActivity?.launchSettings() } onMenuItemClicked(view.requestDesktopSiteCheckMenuItem) { viewModel.desktopSiteModeToggled( @@ -296,6 +296,9 @@ class BrowserTabFragment : Fragment(), FindListener { Command.HideKeyboard -> { hideKeyboard() } + is Command.BrokenSiteFeedback -> { + browserActivity?.launchBrokenSiteFeedback(it.url) + } is Command.ShowFullScreen -> { webViewFullScreenContainer.addView( it.view, ViewGroup.LayoutParams( diff --git a/app/src/main/java/com/duckduckgo/app/browser/BrowserTabViewModel.kt b/app/src/main/java/com/duckduckgo/app/browser/BrowserTabViewModel.kt index 3239579da9ea..7012fd550e27 100644 --- a/app/src/main/java/com/duckduckgo/app/browser/BrowserTabViewModel.kt +++ b/app/src/main/java/com/duckduckgo/app/browser/BrowserTabViewModel.kt @@ -135,6 +135,7 @@ class BrowserTabViewModel( class DownloadImage(val url: String) : Command() class ShareLink(val url: String) : Command() class FindInPageCommand(val searchTerm: String) : Command() + class BrokenSiteFeedback(val url: String?) : Command() class DisplayMessage(@StringRes val messageId: Int) : Command() object DismissFindInPage : Command() class ShowFileChooser(val filePathCallback: ValueCallback>, val fileChooserParams: WebChromeClient.FileChooserParams) : Command() @@ -431,6 +432,10 @@ class BrowserTabViewModel( command.value = DisplayMessage(R.string.bookmarkAddedFeedback) } + fun onBrokenSiteSelected() { + command.value = BrokenSiteFeedback(site?.url) + } + fun onUserSelectedToEditQuery(query: String) { omnibarViewState.value = currentOmnibarViewState().copy(isEditing = false, omnibarText = query) autoCompleteViewState.value = AutoCompleteViewState(showSuggestions = false) From b618745e5f41184fee22b7cf36caa307de47ffb6 Mon Sep 17 00:00:00 2001 From: Mia Alexiou Date: Thu, 28 Jun 2018 14:10:14 +0100 Subject: [PATCH 2/2] Update test names and assert, non-logic changes --- .../com/duckduckgo/app/browser/BrowserTabViewModelTest.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/androidTest/java/com/duckduckgo/app/browser/BrowserTabViewModelTest.kt b/app/src/androidTest/java/com/duckduckgo/app/browser/BrowserTabViewModelTest.kt index 620e0333c7f1..86f2f5b0c028 100644 --- a/app/src/androidTest/java/com/duckduckgo/app/browser/BrowserTabViewModelTest.kt +++ b/app/src/androidTest/java/com/duckduckgo/app/browser/BrowserTabViewModelTest.kt @@ -664,7 +664,7 @@ class BrowserTabViewModelTest { } @Test - fun whenUserOnSiteSelectsBrokenSiteThenBrokenSiteFeedbackCommandSentWithUrl() { + fun whenOnSiteAndBrokenSiteSelectedThenBrokenSiteFeedbackCommandSentWithUrl() { testee.urlChanged("foo.com") testee.onBrokenSiteSelected() val command = captureCommands().value as Command.BrokenSiteFeedback @@ -672,10 +672,10 @@ class BrowserTabViewModelTest { } @Test - fun whenUserNotOnSiteSelectsBrokenSiteThenBrokenSiteFeedbackCommandSentWithNoUrl() { + fun whenNoSiteAndBrokenSiteSelectedThenBrokenSiteFeedbackCommandSentWithoutUrl() { testee.onBrokenSiteSelected() val command = captureCommands().value as Command.BrokenSiteFeedback - assertEquals(null, command.url) + assertNull(command.url) } @Test