1
0
Fork 0

Copione merged onto master
continuous-integration/drone/push Build is failing Details

master
blallo 2020-07-04 00:00:35 +02:00
commit 5517aeb98a
26 changed files with 272 additions and 98 deletions

View File

@ -9,11 +9,11 @@
<a href="generic3.html">Link 3</a>
<p>
<a href="../resources/rabbit.jpg">
<img src="../resources/rabbit.jpg" title="test_link_image">
<img src="../resources/rabbit.jpg" alt="test_link_image">
</a>
</p>
<p>
<img src="../resources/rabbit.jpg" title="test_no_link_image">
<img src="../resources/rabbit.jpg" alt="test_no_link_image">
</p>
</body>
</html>

View File

@ -13,11 +13,8 @@ import mozilla.components.service.fxa.ServerConfig
*/
object FxaServer {
const val CLIENT_ID = "a2270f727f45f648"
const val REDIRECT_URL = "https://accounts.stage.mozaws.net/oauth/success/$CLIENT_ID"
@Suppress("UNUSED_PARAMETER")
fun redirectUrl(context: Context) = REDIRECT_URL
private const val CLIENT_ID = "a2270f727f45f648"
const val REDIRECT_URL = "urn:ietf:wg:oauth:2.0:oob:oauth-redirect-webchannel"
@Suppress("UNUSED_PARAMETER")
fun config(context: Context): ServerConfig {

View File

@ -7,7 +7,5 @@ object Constants {
const val GOOGLE_APPS_PHOTOS = "com.google.android.apps.photos"
}
object LongClickDuration {
const val LONG_CLICK_DURATION: Long = 5000
}
const val LONG_CLICK_DURATION: Long = 5000
}

View File

@ -63,10 +63,12 @@ class SyncIntegrationTest {
signInFxSync()
tapReturnToPreviousApp()
// Let's wait until homescreen is shown to go to three dot menu
mDevice.waitNotNull(Until.findObjects(By.text("Open tabs")), TestAssetHelper.waitingTime)
TestAssetHelper.waitingTime
mDevice.waitNotNull(Until.findObjects(By.res("org.mozilla.fenix.debug:id/counter_root")))
homeScreen {
}.openThreeDotMenu {
}.openHistory { }
}.openHistory {
}
historyAfterSyncIsShown()
}
@ -221,8 +223,10 @@ class SyncIntegrationTest {
mDevice.waitNotNull(Until.findObjects(By.text("Save")), TestAssetHelper.waitingTime)
mDevice.waitNotNull(Until.findObjects(By.text("Settings")), TestAssetHelper.waitingTime)
// Wait until the Settings shows the account synced
/* Wait until the Settings shows the account synced */
mDevice.waitNotNull(Until.findObjects(By.text("Account")), TestAssetHelper.waitingTime)
mDevice.waitNotNull(Until.findObjects(By.res("org.mozilla.fenix.debug:id/email")), TestAssetHelper.waitingTime)
TestAssetHelper.waitingTime
// Go to Homescreen
mDevice.pressBack()
}

View File

@ -53,7 +53,6 @@ class ContextMenusTest {
}
@Test
@Ignore("Disabling because of intermittent failures https://github.com/mozilla-mobile/fenix/issues/8663")
fun verifyContextOpenLinkNewTab() {
val pageLinks =
TestAssetHelper.getGenericAsset(mockWebServer, 4)
@ -75,7 +74,6 @@ class ContextMenusTest {
}
}
@Ignore("Intermittent failure - https://github.com/mozilla-mobile/fenix/issues/10586")
@Test
fun verifyContextOpenLinkPrivateTab() {
val pageLinks =
@ -98,7 +96,6 @@ class ContextMenusTest {
}
}
@Ignore("Intermittent failure - https://github.com/mozilla-mobile/fenix/issues/8832")
@Test
fun verifyContextCopyLink() {
val pageLinks =
@ -119,7 +116,6 @@ class ContextMenusTest {
}
}
@Ignore("Intermittent failure - https://github.com/mozilla-mobile/fenix/issues/10586")
@Test
fun verifyContextShareLink() {
val pageLinks =
@ -136,7 +132,6 @@ class ContextMenusTest {
}
}
@Ignore("Temp disable intermittent failure - https://github.com/mozilla-mobile/fenix/issues/7687")
@Test
fun verifyContextOpenImageNewTab() {
val pageLinks =
@ -156,8 +151,8 @@ class ContextMenusTest {
}
}
@Ignore("Temp disable intermittent failure - https://github.com/mozilla-mobile/fenix/issues/7687")
@Test
@Ignore("Disabled Google Keyboard Clipboard overlay blocks the address bar: https://github.com/mozilla-mobile/fenix/issues/10586")
fun verifyContextCopyImageLocation() {
val pageLinks =
TestAssetHelper.getGenericAsset(mockWebServer, 4)
@ -177,7 +172,6 @@ class ContextMenusTest {
}
}
@Ignore("Temp disable intermittent failure - https://github.com/mozilla-mobile/fenix/issues/7666")
@Test
fun verifyContextSaveImage() {
val pageLinks =
@ -202,7 +196,6 @@ class ContextMenusTest {
}
}
@Ignore("Temp disable intermittent failure - https://github.com/mozilla-mobile/fenix/issues/7693")
@Test
fun verifyContextMixedVariations() {
val pageLinks =
@ -217,12 +210,12 @@ class ContextMenusTest {
// verifyPageContent(pageLinks.content)
longClickMatchingText("Link 1")
verifyLinkContextMenuItems(genericURL.url)
mDevice.pressBack()
dismissContentContextMenu(genericURL.url)
longClickMatchingText("test_link_image")
verifyLinkImageContextMenuItems(imageResource.url)
mDevice.pressBack()
dismissContentContextMenu(imageResource.url)
longClickMatchingText("test_no_link_image")
verifyNoLinkImageContextMenuItems("test_no_link_image")
verifyNoLinkImageContextMenuItems(imageResource.url)
}
}
}

View File

@ -123,7 +123,6 @@ class SettingsBasicsTest {
}
}
@Ignore("Currently failing on firebase: https://github.com/mozilla-mobile/fenix/issues/8747")
@Test
fun toggleShowVisitedSitesAndBookmarks() {
// Bookmarks a few websites, toggles the history and bookmarks setting to off, then verifies if the visited and bookmarked websites do not show in the suggestions.

View File

@ -16,9 +16,11 @@ import androidx.test.espresso.assertion.ViewAssertions.matches
import androidx.test.espresso.intent.Intents
import androidx.test.espresso.intent.matcher.BundleMatchers
import androidx.test.espresso.intent.matcher.IntentMatchers
import androidx.test.espresso.matcher.RootMatchers.isDialog
import androidx.test.espresso.matcher.ViewMatchers
import androidx.test.espresso.matcher.ViewMatchers.isCompletelyDisplayed
import androidx.test.espresso.matcher.ViewMatchers.Visibility
import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
import androidx.test.espresso.matcher.ViewMatchers.withEffectiveVisibility
import androidx.test.espresso.matcher.ViewMatchers.withId
import androidx.test.espresso.matcher.ViewMatchers.withText
@ -34,7 +36,7 @@ import org.hamcrest.CoreMatchers.containsString
import org.junit.Assert.assertTrue
import org.mozilla.fenix.R
import org.mozilla.fenix.ext.components
import org.mozilla.fenix.helpers.Constants.LongClickDuration
import org.mozilla.fenix.helpers.Constants.LONG_CLICK_DURATION
import org.mozilla.fenix.helpers.TestAssetHelper
import org.mozilla.fenix.helpers.TestAssetHelper.waitingTime
import org.mozilla.fenix.helpers.TestAssetHelper.waitingTimeShort
@ -165,9 +167,9 @@ class BrowserRobot {
verifyMenuButton()
}
fun verifyNoLinkImageContextMenuItems(containsTitle: String) {
fun verifyNoLinkImageContextMenuItems(containsURL: Uri) {
val mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
mDevice.waitNotNull(Until.findObject(By.textContains(containsTitle)))
mDevice.waitNotNull(Until.findObject(By.textContains(containsURL.toString())))
mDevice.waitNotNull(
Until.findObject(text("Open image in new tab")),
waitingTime
@ -178,6 +180,13 @@ class BrowserRobot {
)
}
fun dismissContentContextMenu(containsURL: Uri) {
onView(withText(containsURL.toString()))
.inRoot(isDialog())
.check(matches(isDisplayed()))
.perform(ViewActions.pressBack())
}
fun clickEnhancedTrackingProtectionPanel() = enhancedTrackingProtectionPanel().click()
fun clickContextOpenLinkInNewTab() {
@ -291,7 +300,7 @@ class BrowserRobot {
mDevice.waitNotNull(Until.findObject(text(expectedText)), waitingTime)
val element = mDevice.findObject(text(expectedText))
element.click(LongClickDuration.LONG_CLICK_DURATION)
element.click(LONG_CLICK_DURATION)
}
fun snackBarButtonClick(expectedText: String) {

View File

@ -123,7 +123,7 @@ private fun clickDownloadButton() =
onView(withText("Download")).inRoot(isDialog()).check(matches(isDisplayed()))
private fun clickOpenButton() =
onView(withId(R.id.download_dialog_action_button)).inRoot(isDialog()).check(
onView(withId(R.id.download_dialog_action_button)).check(
matches(isDisplayed())
)

View File

@ -116,6 +116,7 @@ private fun assertCurrentTimestamp() {
}
private fun assertWhatIsNewInFirefoxPreview() {
if (!onView(withText("Whats new in Firefox Preview")).isVisibleForUser()) {
onView(withId(R.id.about_layout)).perform(ViewActions.swipeUp())
}
@ -124,11 +125,13 @@ private fun assertWhatIsNewInFirefoxPreview() {
.check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE)))
.perform(click())
// Commenting out since the Text to verify in the web site seems to be different now
/*
TestHelper.verifyUrl(
SupportUtils.SumoTopic.WHATS_NEW.topicStr,
"org.mozilla.fenix.debug:id/mozac_browser_toolbar_url_view",
R.id.mozac_browser_toolbar_url_view
)
SupportUtils.SumoTopic.WHATS_NEW.topicStr,
"org.mozilla.fenix.debug:id/mozac_browser_toolbar_url_view",
R.id.mozac_browser_toolbar_url_view
)*/
Espresso.pressBack()
}

File diff suppressed because one or more lines are too long

View File

@ -10,7 +10,6 @@ import mozilla.components.concept.storage.LoginsStorage
import mozilla.components.lib.crash.handler.CrashHandlerService
import mozilla.components.service.sync.logins.GeckoLoginStorageDelegate
import org.mozilla.fenix.Config
import org.mozilla.fenix.ext.settings
import org.mozilla.fenix.utils.Settings
import org.mozilla.geckoview.GeckoRuntime
import org.mozilla.geckoview.GeckoRuntimeSettings
@ -56,11 +55,7 @@ object GeckoProvider {
}
val geckoRuntime = GeckoRuntime.create(context, runtimeSettings)
// As a quick fix for #8967 we are conflating "should autofill" with "should save logins"
val loginStorageDelegate = GeckoLoginStorageDelegate(
storage,
{ context.settings().shouldPromptToSaveLogins }
)
val loginStorageDelegate = GeckoLoginStorageDelegate(storage)
geckoRuntime.loginStorageDelegate = GeckoLoginDelegateWrapper(loginStorageDelegate)
return geckoRuntime

View File

@ -55,7 +55,7 @@ object GeckoProvider {
}
val geckoRuntime = GeckoRuntime.create(context, runtimeSettings)
val loginStorageDelegate = GeckoLoginStorageDelegate(storage, { true })
val loginStorageDelegate = GeckoLoginStorageDelegate(storage)
geckoRuntime.loginStorageDelegate = GeckoLoginDelegateWrapper(loginStorageDelegate)
return geckoRuntime

View File

@ -466,8 +466,9 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Session
sessionFeature.set(
feature = SessionFeature(
sessionManager,
SessionUseCases(sessionManager),
requireComponents.core.store,
requireComponents.useCases.sessionUseCases.goBack,
requireComponents.useCases.engineSessionUseCases,
view.engineView,
customTabSessionId
),
@ -517,7 +518,7 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Session
fullScreenFeature.set(
feature = FullScreenFeature(
sessionManager,
requireComponents.core.store,
SessionUseCases(sessionManager),
customTabSessionId,
::viewportFitChange,
@ -563,7 +564,7 @@ abstract class BaseBrowserFragment : Fragment(), UserInteractionHandler, Session
view.swipeRefresh.setColorSchemeColors(primaryTextColor)
swipeRefreshFeature.set(
feature = SwipeRefreshFeature(
sessionManager,
requireComponents.core.store,
context.components.useCases.sessionUseCases.reload,
view.swipeRefresh,
customTabSessionId

View File

@ -51,8 +51,7 @@ class Components(private val context: Context) {
core.sessionManager,
core.store,
search.searchEngineManager,
core.webAppShortcutManager,
core.thumbnailStorage
core.webAppShortcutManager
)
}
val intentProcessors by lazy {

View File

@ -7,8 +7,8 @@ package org.mozilla.fenix.components
import android.content.Context
import mozilla.components.browser.search.SearchEngineManager
import mozilla.components.browser.session.SessionManager
import mozilla.components.browser.session.usecases.EngineSessionUseCases
import mozilla.components.browser.state.store.BrowserStore
import mozilla.components.browser.thumbnails.storage.ThumbnailStorage
import mozilla.components.concept.engine.Engine
import mozilla.components.feature.app.links.AppLinksUseCases
import mozilla.components.feature.contextmenu.ContextMenuUseCases
@ -32,8 +32,7 @@ class UseCases(
private val sessionManager: SessionManager,
private val store: BrowserStore,
private val searchEngineManager: SearchEngineManager,
private val shortcutManager: WebAppShortcutManager,
private val thumbnailStorage: ThumbnailStorage
private val shortcutManager: WebAppShortcutManager
) {
/**
* Use cases that provide engine interactions for a given browser session.
@ -53,7 +52,7 @@ class UseCases(
/**
* Use cases that provide settings management.
*/
val settingsUseCases by lazy { SettingsUseCases(engine, sessionManager) }
val settingsUseCases by lazy { SettingsUseCases(engine, store) }
val appLinksUseCases by lazy { AppLinksUseCases(context.applicationContext) }
@ -64,4 +63,6 @@ class UseCases(
val downloadUseCases by lazy { DownloadsUseCases(store) }
val contextMenuUseCases by lazy { ContextMenuUseCases(sessionManager, store) }
val engineSessionUseCases by lazy { EngineSessionUseCases(sessionManager) }
}

View File

@ -69,7 +69,7 @@ class DefaultSearchController(
private fun openSearchOrUrl(url: String) {
activity.openToBrowserAndLoad(
searchTermOrURL = url,
newTab = store.state.session == null,
newTab = store.state.tabId == null,
from = BrowserDirection.FromSearch,
engine = store.state.searchEngineSource.searchEngine
)
@ -103,8 +103,8 @@ class DefaultSearchController(
override fun handleTextChanged(text: String) {
val settings = activity.settings()
// Display the search shortcuts on each entry of the search fragment (see #5308)
val textMatchesCurrentUrl = store.state.session?.url ?: "" == text
val textMatchesCurrentSearch = store.state.session?.searchTerms ?: "" == text
val textMatchesCurrentUrl = store.state.url == text
val textMatchesCurrentSearch = store.state.searchTerms == text
store.dispatch(SearchFragmentAction.UpdateQuery(text))
store.dispatch(
@ -126,7 +126,7 @@ class DefaultSearchController(
override fun handleUrlTapped(url: String) {
activity.openToBrowserAndLoad(
searchTermOrURL = url,
newTab = store.state.session == null,
newTab = store.state.tabId == null,
from = BrowserDirection.FromSearch
)
@ -138,7 +138,7 @@ class DefaultSearchController(
activity.openToBrowserAndLoad(
searchTermOrURL = searchTerms,
newTab = store.state.session == null,
newTab = store.state.tabId == null,
from = BrowserDirection.FromSearch,
engine = store.state.searchEngineSource.searchEngine,
forceSearch = true

View File

@ -30,6 +30,7 @@ import kotlinx.android.synthetic.main.fragment_search.*
import kotlinx.android.synthetic.main.fragment_search.view.*
import kotlinx.android.synthetic.main.search_suggestions_onboarding.view.*
import kotlinx.coroutines.ExperimentalCoroutinesApi
import mozilla.components.browser.state.selector.findTab
import mozilla.components.browser.toolbar.BrowserToolbar
import mozilla.components.concept.storage.HistoryStorage
import mozilla.components.feature.qr.QrFeature
@ -86,11 +87,12 @@ class SearchFragment : Fragment(), UserInteractionHandler {
): View? {
val activity = activity as HomeActivity
val args by navArgs<SearchFragmentArgs>()
val session = args.sessionId
?.let(requireComponents.core.sessionManager::findSessionById)
val tabId = args.sessionId
val tab = tabId?.let { requireComponents.core.store.state.findTab(it) }
val view = inflater.inflate(R.layout.fragment_search, container, false)
val url = session?.url.orEmpty()
val url = tab?.content?.url.orEmpty()
val currentSearchEngine = SearchEngineSource.Default(
requireComponents.search.provider.getDefaultEngine(requireContext())
)
@ -103,6 +105,8 @@ class SearchFragment : Fragment(), UserInteractionHandler {
SearchFragmentStore(
SearchFragmentState(
query = url,
url = url,
searchTerms = tab?.content?.searchTerms.orEmpty(),
searchEngineSource = currentSearchEngine,
defaultEngineSource = currentSearchEngine,
showSearchSuggestions = shouldShowSearchSuggestions(isPrivate),
@ -111,7 +115,7 @@ class SearchFragment : Fragment(), UserInteractionHandler {
showClipboardSuggestions = requireContext().settings().shouldShowClipboardSuggestions,
showHistorySuggestions = requireContext().settings().shouldShowHistorySuggestions,
showBookmarkSuggestions = requireContext().settings().shouldShowBookmarkSuggestions,
session = session,
tabId = tabId,
pastedText = args.pastedText,
searchAccessPoint = args.searchAccessPoint
)
@ -234,7 +238,7 @@ class SearchFragment : Fragment(), UserInteractionHandler {
(activity as HomeActivity)
.openToBrowserAndLoad(
searchTermOrURL = result,
newTab = searchStore.state.session == null,
newTab = searchStore.state.tabId == null,
from = BrowserDirection.FromSearch
)
dialog.dismiss()
@ -265,7 +269,7 @@ class SearchFragment : Fragment(), UserInteractionHandler {
searchTermOrURL = SupportUtils.getGenericSumoURLForTopic(
SupportUtils.SumoTopic.SEARCH_SUGGESTION
),
newTab = searchStore.state.session == null,
newTab = searchStore.state.tabId == null,
from = BrowserDirection.FromSearch
)
}
@ -298,7 +302,7 @@ class SearchFragment : Fragment(), UserInteractionHandler {
(activity as HomeActivity)
.openToBrowserAndLoad(
searchTermOrURL = requireContext().components.clipboardHandler.url ?: "",
newTab = searchStore.state.session == null,
newTab = searchStore.state.tabId == null,
from = BrowserDirection.FromSearch
)
}

View File

@ -5,7 +5,6 @@
package org.mozilla.fenix.search
import mozilla.components.browser.search.SearchEngine
import mozilla.components.browser.session.Session
import mozilla.components.lib.state.Action
import mozilla.components.lib.state.State
import mozilla.components.lib.state.Store
@ -34,6 +33,9 @@ sealed class SearchEngineSource {
/**
* The state for the Search Screen
* @property query The current search query string
* @property url The current URL of the tab (if this fragment is shown for an already existing tab)
* @property searchTerms The search terms used to search previously in this tab (if this fragment is shown
* for an already existing tab)
* @property searchEngineSource The current selected search engine with the context of how it was selected
* @property defaultEngineSource The current default search engine source
* @property showSearchSuggestions Whether or not to show search suggestions from the search engine in the AwesomeBar
@ -42,11 +44,12 @@ sealed class SearchEngineSource {
* @property showClipboardSuggestions Whether or not to show clipboard suggestion in the AwesomeBar
* @property showHistorySuggestions Whether or not to show history suggestions in the AwesomeBar
* @property showBookmarkSuggestions Whether or not to show the bookmark suggestion in the AwesomeBar
* @property session The current session if available
* @property pastedText The text pasted from the long press toolbar menu
*/
data class SearchFragmentState(
val query: String,
val url: String,
val searchTerms: String,
val searchEngineSource: SearchEngineSource,
val defaultEngineSource: SearchEngineSource.Default,
val showSearchSuggestions: Boolean,
@ -55,7 +58,7 @@ data class SearchFragmentState(
val showClipboardSuggestions: Boolean,
val showHistorySuggestions: Boolean,
val showBookmarkSuggestions: Boolean,
val session: Session?,
val tabId: String?,
val pastedText: String? = null,
val searchAccessPoint: Event.PerformedSearch.SearchAccessPoint?
) : State

View File

@ -198,7 +198,7 @@ class AwesomeBarView(
updateSuggestionProvidersVisibility(state)
// Do not make suggestions based on user's current URL unless it's a search shortcut
if (state.query == state.session?.url && !state.showSearchShortcuts) {
if (state.query == state.url && !state.showSearchShortcuts) {
return
}

View File

@ -125,7 +125,7 @@ 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.session?.searchTerms.orEmpty())
view.setSearchTerms(searchState.searchTerms)
}
// We must trigger an onTextChanged so when search terms are set when transitioning to `editMode`

View File

@ -30,7 +30,6 @@ import mozilla.components.concept.sync.AuthType
import mozilla.components.concept.sync.OAuthAccount
import mozilla.components.service.fxa.SyncEngine
import mozilla.components.service.fxa.manager.SyncEnginesStorage
import org.mozilla.fenix.Config
import org.mozilla.fenix.R
import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.ext.components
@ -111,9 +110,6 @@ class SavedLoginsAuthFragment : PreferenceFragmentCompat(), AccountObserver {
}
requirePreference<SwitchPreference>(R.string.pref_key_autofill_logins).apply {
// The ability to toggle autofill on the engine is only available in Nightly currently
// See https://github.com/mozilla-mobile/fenix/issues/11320
isVisible = Config.channel.isNightlyOrDebug
isChecked = context.settings().shouldAutofillLogins
onPreferenceChangeListener = object : SharedPreferenceUpdater() {
override fun onPreferenceChange(preference: Preference, newValue: Any?): Boolean {

View File

@ -11,7 +11,6 @@
android:title="@string/preferences_passwords_save_logins" />
<SwitchPreference
app:iconSpaceReserved="false"
app:isPreferenceVisible="false"
android:defaultValue="true"
android:key="@string/pref_key_autofill_logins"
android:title="@string/preferences_passwords_autofill" />

View File

@ -22,8 +22,7 @@ class TestComponents(private val context: Context) : Components(context) {
core.sessionManager,
core.store,
search.searchEngineManager,
core.webAppShortcutManager,
core.thumbnailStorage
core.webAppShortcutManager
)
}
override val intentProcessors by lazy { mockk<IntentProcessors>(relaxed = true) }

View File

@ -15,7 +15,6 @@ import mozilla.components.browser.search.SearchEngine
import mozilla.components.browser.session.Session
import mozilla.components.browser.session.SessionManager
import mozilla.components.support.test.robolectric.testContext
import org.junit.Assert.assertEquals
import org.junit.Assert.assertFalse
import org.junit.Before
import org.junit.Test
@ -43,7 +42,6 @@ class DefaultSearchControllerTest {
private val store: SearchFragmentStore = mockk(relaxed = true)
private val navController: NavController = mockk(relaxed = true)
private val defaultSearchEngine: SearchEngine? = mockk(relaxed = true)
private val session: Session? = mockk(relaxed = true)
private val searchEngine: SearchEngine = mockk(relaxed = true)
private val metrics: MetricController = mockk(relaxed = true)
private val sessionManager: SessionManager = mockk(relaxed = true)
@ -55,7 +53,7 @@ class DefaultSearchControllerTest {
@Before
fun setUp() {
every { activity.searchEngineManager.defaultSearchEngine } returns defaultSearchEngine
every { store.state.session } returns session
every { store.state.tabId } returns "test-tab-id"
every { store.state.searchEngineSource.searchEngine } returns searchEngine
every { activity.metrics } returns metrics
every { activity.components.core.sessionManager } returns sessionManager
@ -79,7 +77,7 @@ class DefaultSearchControllerTest {
verify {
activity.openToBrowserAndLoad(
searchTermOrURL = url,
newTab = session == null,
newTab = false,
from = BrowserDirection.FromSearch,
engine = searchEngine
)
@ -105,7 +103,7 @@ class DefaultSearchControllerTest {
verify {
activity.openToBrowserAndLoad(
searchTermOrURL = SupportUtils.getMozillaPageUrl(SupportUtils.MozillaPage.MANIFESTO),
newTab = session == null,
newTab = false,
from = BrowserDirection.FromSearch,
engine = searchEngine
)
@ -163,14 +161,12 @@ class DefaultSearchControllerTest {
@Test
fun `show search shortcuts when setting enabled AND query equals url`() {
val text = "mozilla.org"
every { session?.url } returns "mozilla.org"
every { store.state.url } returns "mozilla.org"
testContext.settings().preferences
.edit()
.putBoolean(testContext.getString(R.string.pref_key_show_search_shortcuts), true)
.apply()
assertEquals(text, session?.url)
controller.handleTextChanged(text)
verify { store.dispatch(SearchFragmentAction.ShowSearchShortcutEnginePicker(true)) }
@ -226,7 +222,7 @@ class DefaultSearchControllerTest {
verify {
activity.openToBrowserAndLoad(
searchTermOrURL = url,
newTab = session == null,
newTab = false,
from = BrowserDirection.FromSearch
)
}
@ -242,7 +238,7 @@ class DefaultSearchControllerTest {
verify {
activity.openToBrowserAndLoad(
searchTermOrURL = searchTerms,
newTab = session == null,
newTab = false,
from = BrowserDirection.FromSearch,
engine = searchEngine,
forceSearch = true

View File

@ -48,6 +48,9 @@ class SearchFragmentStoreTest {
}
private fun emptyDefaultState(): SearchFragmentState = SearchFragmentState(
tabId = null,
url = "",
searchTerms = "",
query = "",
searchEngineSource = mockk(),
defaultEngineSource = mockk(),
@ -57,7 +60,6 @@ class SearchFragmentStoreTest {
showClipboardSuggestions = false,
showHistorySuggestions = false,
showBookmarkSuggestions = false,
session = null,
searchAccessPoint = Event.PerformedSearch.SearchAccessPoint.NONE
)
}

View File

@ -3,5 +3,5 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
object AndroidComponents {
const val VERSION = "49.0.20200701130905"
const val VERSION = "49.0.20200702190156"
}