Loading app/src/main/java/org/mozilla/fenix/browser/FenixSnackbarDelegate.kt +2 −2 Original line number Diff line number Diff line Loading @@ -9,8 +9,8 @@ import androidx.annotation.StringRes import mozilla.components.feature.contextmenu.ContextMenuCandidate import org.mozilla.fenix.components.FenixSnackbar class FenixSnackbarDelegate(val view: View) : ContextMenuCandidate.SnackbarDelegate { class FenixSnackbarDelegate(private val view: View) : ContextMenuCandidate.SnackbarDelegate { override fun show( snackBarParentView: View, @StringRes text: Int, Loading app/src/test/java/org/mozilla/fenix/browser/FenixSnackbarDelegateTest.kt 0 → 100644 +112 −0 Original line number Diff line number Diff line /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ package org.mozilla.fenix.browser import android.view.View import io.mockk.MockKAnnotations import io.mockk.every import io.mockk.impl.annotations.MockK import io.mockk.mockk import io.mockk.mockkObject import io.mockk.unmockkObject import io.mockk.verify import org.junit.After import org.junit.Before import org.junit.Test import org.mozilla.fenix.R import org.mozilla.fenix.components.FenixSnackbar import org.mozilla.fenix.components.FenixSnackbar.Companion.LENGTH_SHORT class FenixSnackbarDelegateTest { @MockK private lateinit var view: View @MockK(relaxed = true) private lateinit var snackbar: FenixSnackbar private lateinit var delegate: FenixSnackbarDelegate @Before fun setup() { MockKAnnotations.init(this) mockkObject(FenixSnackbar.Companion) delegate = FenixSnackbarDelegate(view) every { FenixSnackbar.make(view, LENGTH_SHORT, isDisplayedWithBrowserToolbar = true) } returns snackbar every { snackbar.setText(any()) } returns snackbar every { snackbar.setAction(any(), any()) } returns snackbar every { view.context.getString(R.string.app_name) } returns "Firefox" every { view.context.getString(R.string.edit) } returns "Edit" } @After fun teardown() { unmockkObject(FenixSnackbar.Companion) } @Test fun `show with no listener nor action`() { delegate.show( snackBarParentView = mockk(), text = R.string.app_name, duration = 0, action = 0, listener = null ) verify { snackbar.setText("Firefox") } verify(exactly = 0) { snackbar.setAction(any(), any()) } verify { snackbar.show() } } @Test fun `show with listener but no action`() { delegate.show( snackBarParentView = mockk(), text = R.string.app_name, duration = 0, action = 0, listener = {} ) verify { snackbar.setText("Firefox") } verify(exactly = 0) { snackbar.setAction(any(), any()) } verify { snackbar.show() } } @Test fun `show with action but no listener`() { delegate.show( snackBarParentView = mockk(), text = R.string.app_name, duration = 0, action = R.string.edit, listener = null ) verify { snackbar.setText("Firefox") } verify(exactly = 0) { snackbar.setAction(any(), any()) } verify { snackbar.show() } } @Test fun `show with listener and action`() { val listener = mockk<(View) -> Unit>(relaxed = true) delegate.show( snackBarParentView = mockk(), text = R.string.app_name, duration = 0, action = R.string.edit, listener = listener ) verify { snackbar.setText("Firefox") } verify { snackbar.setAction("Edit", withArg { verify(exactly = 0) { listener(view) } it.invoke() verify { listener(view) } }) } verify { snackbar.show() } } } app/src/test/java/org/mozilla/fenix/browser/TelemetrySessionObserverTest.kt +11 −10 Original line number Diff line number Diff line Loading @@ -10,7 +10,8 @@ import io.mockk.mockk import io.mockk.verify import mozilla.components.browser.session.Session import mozilla.components.browser.session.SessionManager import org.junit.Assert import org.junit.Assert.assertEquals import org.junit.Assert.assertNull import org.junit.Before import org.junit.Test import org.mozilla.fenix.components.metrics.Event Loading Loading @@ -59,8 +60,8 @@ class TelemetrySessionObserverTest { triggeredByRedirect = false, triggeredByWebContent = false ) Assert.assertEquals(sessionUrl, singleSessionObserver.originSessionUrl) Assert.assertEquals(url, singleSessionObserver.redirectChain[0]) assertEquals(sessionUrl, singleSessionObserver.originSessionUrl) assertEquals(url, singleSessionObserver.redirectChain[0]) } @Test Loading @@ -77,9 +78,9 @@ class TelemetrySessionObserverTest { triggeredByRedirect = false, triggeredByWebContent = false ) Assert.assertEquals(url, singleSessionObserver.originSessionUrl) Assert.assertEquals(url, singleSessionObserver.redirectChain[0]) Assert.assertEquals(newUrl, singleSessionObserver.redirectChain[1]) assertEquals(url, singleSessionObserver.originSessionUrl) assertEquals(url, singleSessionObserver.redirectChain[0]) assertEquals(newUrl, singleSessionObserver.redirectChain[1]) } @Test Loading @@ -93,8 +94,8 @@ class TelemetrySessionObserverTest { triggeredByRedirect = false, triggeredByWebContent = false ) Assert.assertNull(singleSessionObserver.originSessionUrl) Assert.assertEquals(0, singleSessionObserver.redirectChain.size) assertNull(singleSessionObserver.originSessionUrl) assertEquals(0, singleSessionObserver.redirectChain.size) } @Test Loading @@ -116,7 +117,7 @@ class TelemetrySessionObserverTest { redirectChain ) } Assert.assertNull(singleSessionObserver.originSessionUrl) Assert.assertEquals(0, singleSessionObserver.redirectChain.size) assertNull(singleSessionObserver.originSessionUrl) assertEquals(0, singleSessionObserver.redirectChain.size) } } app/src/test/java/org/mozilla/fenix/browser/UriOpenedObserverTest.kt +28 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ package org.mozilla.fenix.browser import androidx.lifecycle.LifecycleOwner import io.mockk.every import io.mockk.mockk import io.mockk.verify import mozilla.components.browser.session.Session Loading Loading @@ -41,7 +42,34 @@ class UriOpenedObserverTest { observer.onSessionAdded(session) verify { session.register(observer.singleSessionObserver, owner) } observer.onSessionSelected(session) verify { session.register(observer.singleSessionObserver, owner) } observer.onSessionRemoved(session) verify { session.unregister(observer.singleSessionObserver) } } @Test fun `registers when all sessions are restored`() { val session1: Session = mockk(relaxed = true) val session2: Session = mockk(relaxed = true) every { sessionManager.sessions } returns listOf(session1, session2) observer.onSessionsRestored() verify { session1.register(observer.singleSessionObserver, owner) } verify { session2.register(observer.singleSessionObserver, owner) } } @Test fun `unregisters when all sessions are removed`() { val session1: Session = mockk(relaxed = true) val session2: Session = mockk(relaxed = true) every { sessionManager.sessions } returns listOf(session1, session2) observer.onAllSessionsRemoved() verify { session1.unregister(observer.singleSessionObserver) } verify { session2.unregister(observer.singleSessionObserver) } } } Loading
app/src/main/java/org/mozilla/fenix/browser/FenixSnackbarDelegate.kt +2 −2 Original line number Diff line number Diff line Loading @@ -9,8 +9,8 @@ import androidx.annotation.StringRes import mozilla.components.feature.contextmenu.ContextMenuCandidate import org.mozilla.fenix.components.FenixSnackbar class FenixSnackbarDelegate(val view: View) : ContextMenuCandidate.SnackbarDelegate { class FenixSnackbarDelegate(private val view: View) : ContextMenuCandidate.SnackbarDelegate { override fun show( snackBarParentView: View, @StringRes text: Int, Loading
app/src/test/java/org/mozilla/fenix/browser/FenixSnackbarDelegateTest.kt 0 → 100644 +112 −0 Original line number Diff line number Diff line /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ package org.mozilla.fenix.browser import android.view.View import io.mockk.MockKAnnotations import io.mockk.every import io.mockk.impl.annotations.MockK import io.mockk.mockk import io.mockk.mockkObject import io.mockk.unmockkObject import io.mockk.verify import org.junit.After import org.junit.Before import org.junit.Test import org.mozilla.fenix.R import org.mozilla.fenix.components.FenixSnackbar import org.mozilla.fenix.components.FenixSnackbar.Companion.LENGTH_SHORT class FenixSnackbarDelegateTest { @MockK private lateinit var view: View @MockK(relaxed = true) private lateinit var snackbar: FenixSnackbar private lateinit var delegate: FenixSnackbarDelegate @Before fun setup() { MockKAnnotations.init(this) mockkObject(FenixSnackbar.Companion) delegate = FenixSnackbarDelegate(view) every { FenixSnackbar.make(view, LENGTH_SHORT, isDisplayedWithBrowserToolbar = true) } returns snackbar every { snackbar.setText(any()) } returns snackbar every { snackbar.setAction(any(), any()) } returns snackbar every { view.context.getString(R.string.app_name) } returns "Firefox" every { view.context.getString(R.string.edit) } returns "Edit" } @After fun teardown() { unmockkObject(FenixSnackbar.Companion) } @Test fun `show with no listener nor action`() { delegate.show( snackBarParentView = mockk(), text = R.string.app_name, duration = 0, action = 0, listener = null ) verify { snackbar.setText("Firefox") } verify(exactly = 0) { snackbar.setAction(any(), any()) } verify { snackbar.show() } } @Test fun `show with listener but no action`() { delegate.show( snackBarParentView = mockk(), text = R.string.app_name, duration = 0, action = 0, listener = {} ) verify { snackbar.setText("Firefox") } verify(exactly = 0) { snackbar.setAction(any(), any()) } verify { snackbar.show() } } @Test fun `show with action but no listener`() { delegate.show( snackBarParentView = mockk(), text = R.string.app_name, duration = 0, action = R.string.edit, listener = null ) verify { snackbar.setText("Firefox") } verify(exactly = 0) { snackbar.setAction(any(), any()) } verify { snackbar.show() } } @Test fun `show with listener and action`() { val listener = mockk<(View) -> Unit>(relaxed = true) delegate.show( snackBarParentView = mockk(), text = R.string.app_name, duration = 0, action = R.string.edit, listener = listener ) verify { snackbar.setText("Firefox") } verify { snackbar.setAction("Edit", withArg { verify(exactly = 0) { listener(view) } it.invoke() verify { listener(view) } }) } verify { snackbar.show() } } }
app/src/test/java/org/mozilla/fenix/browser/TelemetrySessionObserverTest.kt +11 −10 Original line number Diff line number Diff line Loading @@ -10,7 +10,8 @@ import io.mockk.mockk import io.mockk.verify import mozilla.components.browser.session.Session import mozilla.components.browser.session.SessionManager import org.junit.Assert import org.junit.Assert.assertEquals import org.junit.Assert.assertNull import org.junit.Before import org.junit.Test import org.mozilla.fenix.components.metrics.Event Loading Loading @@ -59,8 +60,8 @@ class TelemetrySessionObserverTest { triggeredByRedirect = false, triggeredByWebContent = false ) Assert.assertEquals(sessionUrl, singleSessionObserver.originSessionUrl) Assert.assertEquals(url, singleSessionObserver.redirectChain[0]) assertEquals(sessionUrl, singleSessionObserver.originSessionUrl) assertEquals(url, singleSessionObserver.redirectChain[0]) } @Test Loading @@ -77,9 +78,9 @@ class TelemetrySessionObserverTest { triggeredByRedirect = false, triggeredByWebContent = false ) Assert.assertEquals(url, singleSessionObserver.originSessionUrl) Assert.assertEquals(url, singleSessionObserver.redirectChain[0]) Assert.assertEquals(newUrl, singleSessionObserver.redirectChain[1]) assertEquals(url, singleSessionObserver.originSessionUrl) assertEquals(url, singleSessionObserver.redirectChain[0]) assertEquals(newUrl, singleSessionObserver.redirectChain[1]) } @Test Loading @@ -93,8 +94,8 @@ class TelemetrySessionObserverTest { triggeredByRedirect = false, triggeredByWebContent = false ) Assert.assertNull(singleSessionObserver.originSessionUrl) Assert.assertEquals(0, singleSessionObserver.redirectChain.size) assertNull(singleSessionObserver.originSessionUrl) assertEquals(0, singleSessionObserver.redirectChain.size) } @Test Loading @@ -116,7 +117,7 @@ class TelemetrySessionObserverTest { redirectChain ) } Assert.assertNull(singleSessionObserver.originSessionUrl) Assert.assertEquals(0, singleSessionObserver.redirectChain.size) assertNull(singleSessionObserver.originSessionUrl) assertEquals(0, singleSessionObserver.redirectChain.size) } }
app/src/test/java/org/mozilla/fenix/browser/UriOpenedObserverTest.kt +28 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ package org.mozilla.fenix.browser import androidx.lifecycle.LifecycleOwner import io.mockk.every import io.mockk.mockk import io.mockk.verify import mozilla.components.browser.session.Session Loading Loading @@ -41,7 +42,34 @@ class UriOpenedObserverTest { observer.onSessionAdded(session) verify { session.register(observer.singleSessionObserver, owner) } observer.onSessionSelected(session) verify { session.register(observer.singleSessionObserver, owner) } observer.onSessionRemoved(session) verify { session.unregister(observer.singleSessionObserver) } } @Test fun `registers when all sessions are restored`() { val session1: Session = mockk(relaxed = true) val session2: Session = mockk(relaxed = true) every { sessionManager.sessions } returns listOf(session1, session2) observer.onSessionsRestored() verify { session1.register(observer.singleSessionObserver, owner) } verify { session2.register(observer.singleSessionObserver, owner) } } @Test fun `unregisters when all sessions are removed`() { val session1: Session = mockk(relaxed = true) val session2: Session = mockk(relaxed = true) every { sessionManager.sessions } returns listOf(session1, session2) observer.onAllSessionsRemoved() verify { session1.unregister(observer.singleSessionObserver) } verify { session2.unregister(observer.singleSessionObserver) } } }