|
|
|
@ -6,23 +6,15 @@ package org.mozilla.fenix.library.bookmarks
|
|
|
|
|
|
|
|
|
|
import android.content.Context
|
|
|
|
|
import androidx.appcompat.view.ContextThemeWrapper
|
|
|
|
|
import io.mockk.coEvery
|
|
|
|
|
import io.mockk.every
|
|
|
|
|
import io.mockk.mockk
|
|
|
|
|
import io.mockk.mockkStatic
|
|
|
|
|
import kotlinx.coroutines.runBlocking
|
|
|
|
|
import mozilla.components.concept.menu.candidate.TextMenuCandidate
|
|
|
|
|
import mozilla.components.concept.menu.candidate.TextStyle
|
|
|
|
|
import mozilla.components.concept.storage.BookmarkNodeType
|
|
|
|
|
import mozilla.components.support.ktx.android.content.getColorFromAttr
|
|
|
|
|
import mozilla.components.support.test.robolectric.testContext
|
|
|
|
|
import org.junit.Assert.assertEquals
|
|
|
|
|
import org.junit.Assert.assertNotNull
|
|
|
|
|
import org.junit.Before
|
|
|
|
|
import org.junit.Test
|
|
|
|
|
import org.junit.runner.RunWith
|
|
|
|
|
import org.mozilla.fenix.R
|
|
|
|
|
import org.mozilla.fenix.ext.bookmarkStorage
|
|
|
|
|
import org.mozilla.fenix.helpers.FenixRobolectricTestRunner
|
|
|
|
|
import org.mozilla.fenix.library.bookmarks.BookmarkItemMenu.Item
|
|
|
|
|
|
|
|
|
@ -41,64 +33,6 @@ class BookmarkItemMenuTest {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
fun `delete item has special styling`() = runBlocking {
|
|
|
|
|
var deleteItem: TextMenuCandidate? = null
|
|
|
|
|
mockkStatic("org.mozilla.fenix.ext.BookmarkNodeKt") {
|
|
|
|
|
every { any<Context>().bookmarkStorage } returns mockk(relaxed = true)
|
|
|
|
|
|
|
|
|
|
deleteItem = menu.menuItems(BookmarkNodeType.SEPARATOR, "").last()
|
|
|
|
|
}
|
|
|
|
|
assertNotNull(deleteItem)
|
|
|
|
|
assertEquals("Delete", deleteItem!!.text)
|
|
|
|
|
assertEquals(
|
|
|
|
|
TextStyle(color = context.getColorFromAttr(R.attr.textWarning)),
|
|
|
|
|
deleteItem!!.textStyle,
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
deleteItem!!.onClick()
|
|
|
|
|
|
|
|
|
|
assertEquals(Item.Delete, lastItemTapped)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
fun `edit item appears for folders`() = runBlocking {
|
|
|
|
|
// empty folder
|
|
|
|
|
var emptyFolderItems: List<TextMenuCandidate>? = null
|
|
|
|
|
mockkStatic("org.mozilla.fenix.ext.BookmarkNodeKt") {
|
|
|
|
|
every { any<Context>().bookmarkStorage } returns mockk(relaxed = true)
|
|
|
|
|
|
|
|
|
|
emptyFolderItems = menu.menuItems(BookmarkNodeType.FOLDER, "")
|
|
|
|
|
}
|
|
|
|
|
assertNotNull(emptyFolderItems)
|
|
|
|
|
assertEquals(2, emptyFolderItems!!.size)
|
|
|
|
|
|
|
|
|
|
// not empty
|
|
|
|
|
var folderItems: List<TextMenuCandidate>? = null
|
|
|
|
|
mockkStatic("org.mozilla.fenix.ext.BookmarkNodeKt") {
|
|
|
|
|
coEvery { any<Context>().bookmarkStorage.getTree("")?.children } returns listOf(mockk(relaxed = true))
|
|
|
|
|
|
|
|
|
|
folderItems = menu.menuItems(BookmarkNodeType.FOLDER, "")
|
|
|
|
|
}
|
|
|
|
|
assertNotNull(folderItems)
|
|
|
|
|
assertEquals(3, folderItems!!.size)
|
|
|
|
|
|
|
|
|
|
val (edit, openAll, delete) = folderItems!!
|
|
|
|
|
|
|
|
|
|
assertEquals("Edit", edit.text)
|
|
|
|
|
assertEquals("Open All Bookmarks", openAll.text)
|
|
|
|
|
assertEquals("Delete", delete.text)
|
|
|
|
|
|
|
|
|
|
edit.onClick()
|
|
|
|
|
assertEquals(Item.Edit, lastItemTapped)
|
|
|
|
|
|
|
|
|
|
openAll.onClick()
|
|
|
|
|
assertEquals(Item.OpenAllInTabs, lastItemTapped)
|
|
|
|
|
|
|
|
|
|
delete.onClick()
|
|
|
|
|
assertEquals(Item.Delete, lastItemTapped)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
fun `delete item has special styling`() {
|
|
|
|
|
val deleteItem = menu.menuItems(BookmarkNodeType.SEPARATOR).last()
|
|
|
|
@ -127,16 +61,10 @@ class BookmarkItemMenuTest {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
fun `all item appears for sites`() = runBlocking {
|
|
|
|
|
var siteItems: List<TextMenuCandidate>? = null
|
|
|
|
|
mockkStatic("org.mozilla.fenix.ext.BookmarkNodeKt") {
|
|
|
|
|
every { any<Context>().bookmarkStorage } returns mockk(relaxed = true)
|
|
|
|
|
|
|
|
|
|
siteItems = menu.menuItems(BookmarkNodeType.ITEM, "")
|
|
|
|
|
}
|
|
|
|
|
assertNotNull(siteItems)
|
|
|
|
|
assertEquals(6, siteItems!!.size)
|
|
|
|
|
val (edit, copy, share, openInNewTab, openInPrivateTab, delete) = siteItems!!
|
|
|
|
|
fun `all item appears for sites`() {
|
|
|
|
|
val siteItems = menu.menuItems(BookmarkNodeType.ITEM)
|
|
|
|
|
assertEquals(6, siteItems.size)
|
|
|
|
|
val (edit, copy, share, openInNewTab, openInPrivateTab, delete) = siteItems
|
|
|
|
|
|
|
|
|
|
assertEquals("Edit", edit.text)
|
|
|
|
|
assertEquals("Copy", copy.text)
|
|
|
|
|