You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
iceraven-browser/app/src/test/java/org/mozilla/fenix/home/HomeFragmentTest.kt

80 lines
2.7 KiB
Kotlin

/* 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.home
import android.content.Context
import io.mockk.every
import io.mockk.mockk
import io.mockk.spyk
import io.mockk.verify
import kotlinx.coroutines.ExperimentalCoroutinesApi
import mozilla.components.browser.menu.view.MenuButton
import org.junit.Assert
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mozilla.fenix.ext.settings
import org.mozilla.fenix.helpers.FenixRobolectricTestRunner
import org.mozilla.fenix.utils.Settings
@ExperimentalCoroutinesApi
@RunWith(FenixRobolectricTestRunner::class)
class HomeFragmentTest {
private lateinit var settings: Settings
private lateinit var context: Context
private lateinit var homeFragment: HomeFragment
@Before
fun setup() {
context = mockk(relaxed = true)
settings = mockk(relaxed = true)
homeFragment = spyk(HomeFragment())
every { homeFragment.context } returns context
every { context.settings() } returns settings
}
@Test
fun `GIVEN showTopFrecentSites is false WHEN getTopSitesConfig is called THEN it returns TopSitesConfig with null frecencyConfig`() {
every { settings.showTopFrecentSites } returns false
every { settings.topSitesMaxLimit } returns 10
val topSitesConfig = homeFragment.getTopSitesConfig()
Assert.assertNull(topSitesConfig.frecencyConfig)
}
@Test
fun `GIVEN showTopFrecentSites is true WHEN getTopSitesConfig is called THEN it returns TopSitesConfig with non-null frecencyConfig`() {
every { context.settings().showTopFrecentSites } returns true
every { settings.topSitesMaxLimit } returns 10
val topSitesConfig = homeFragment.getTopSitesConfig()
Assert.assertNotNull(topSitesConfig.frecencyConfig)
}
@Test
fun `GIVEN a topSitesMaxLimit WHEN getTopSitesConfig is called THEN it returns TopSitesConfig with totalSites = topSitesMaxLimit`() {
val topSitesMaxLimit = 10
every { settings.topSitesMaxLimit } returns topSitesMaxLimit
val topSitesConfig = homeFragment.getTopSitesConfig()
Assert.assertEquals(topSitesMaxLimit, topSitesConfig.totalSites)
}
@Test
fun `WHEN configuration changed menu is dismissed`() {
val menuButton: MenuButton = mockk(relaxed = true)
homeFragment.getMenuButton = { menuButton }
homeFragment.onConfigurationChanged(mockk(relaxed = true))
verify(exactly = 1) { menuButton.dismissMenu() }
}
}