93 lines
2.9 KiB
Kotlin
93 lines
2.9 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.sync.ext
|
||
|
|
||
|
import io.mockk.every
|
||
|
import io.mockk.mockk
|
||
|
import mozilla.components.browser.storage.sync.SyncedDeviceTabs
|
||
|
import mozilla.components.browser.storage.sync.Tab
|
||
|
import mozilla.components.browser.storage.sync.TabEntry
|
||
|
import mozilla.components.concept.sync.DeviceType
|
||
|
import org.junit.Assert.assertEquals
|
||
|
import org.junit.Assert.assertTrue
|
||
|
import org.junit.Test
|
||
|
import org.mozilla.fenix.sync.SyncedTabsAdapter
|
||
|
|
||
|
class SyncedTabsAdapterKtTest {
|
||
|
private val noTabDevice = SyncedDeviceTabs(
|
||
|
device = mockk {
|
||
|
every { displayName } returns "Charcoal"
|
||
|
every { deviceType } returns DeviceType.DESKTOP
|
||
|
},
|
||
|
tabs = emptyList()
|
||
|
)
|
||
|
|
||
|
private val oneTabDevice = SyncedDeviceTabs(
|
||
|
device = mockk {
|
||
|
every { displayName } returns "Charcoal"
|
||
|
every { deviceType } returns DeviceType.DESKTOP
|
||
|
},
|
||
|
tabs = listOf(Tab(
|
||
|
history = listOf(TabEntry(
|
||
|
title = "Mozilla",
|
||
|
url = "https://mozilla.org",
|
||
|
iconUrl = null
|
||
|
)),
|
||
|
active = 0,
|
||
|
lastUsed = 0L
|
||
|
))
|
||
|
)
|
||
|
|
||
|
private val twoTabDevice = SyncedDeviceTabs(
|
||
|
device = mockk {
|
||
|
every { displayName } returns "Emerald"
|
||
|
every { deviceType } returns DeviceType.MOBILE
|
||
|
},
|
||
|
tabs = listOf(
|
||
|
Tab(
|
||
|
history = listOf(TabEntry(
|
||
|
title = "Mozilla",
|
||
|
url = "https://mozilla.org",
|
||
|
iconUrl = null
|
||
|
)),
|
||
|
active = 0,
|
||
|
lastUsed = 0L
|
||
|
),
|
||
|
Tab(
|
||
|
history = listOf(
|
||
|
TabEntry(
|
||
|
title = "Firefox",
|
||
|
url = "https://firefox.com",
|
||
|
iconUrl = null
|
||
|
)
|
||
|
),
|
||
|
active = 0,
|
||
|
lastUsed = 0L
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
|
||
|
@Test
|
||
|
fun `verify ordering of adapter items`() {
|
||
|
val syncedDeviceList = listOf(oneTabDevice, twoTabDevice)
|
||
|
val adapterData = syncedDeviceList.toAdapterList()
|
||
|
|
||
|
assertEquals(5, adapterData.count())
|
||
|
assertTrue(adapterData[0] is SyncedTabsAdapter.AdapterItem.Device)
|
||
|
assertTrue(adapterData[1] is SyncedTabsAdapter.AdapterItem.Tab)
|
||
|
assertTrue(adapterData[2] is SyncedTabsAdapter.AdapterItem.Device)
|
||
|
assertTrue(adapterData[3] is SyncedTabsAdapter.AdapterItem.Tab)
|
||
|
assertTrue(adapterData[4] is SyncedTabsAdapter.AdapterItem.Tab)
|
||
|
}
|
||
|
|
||
|
@Test
|
||
|
fun `verify no tabs displayed`() {
|
||
|
val syncedDeviceList = listOf(noTabDevice)
|
||
|
val adapterData = syncedDeviceList.toAdapterList()
|
||
|
|
||
|
assertEquals(0, adapterData.count())
|
||
|
}
|
||
|
}
|