diff --git a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragmentInteractor.kt b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragmentInteractor.kt index 0b6e14c06..3f7c40c42 100644 --- a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragmentInteractor.kt +++ b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragmentInteractor.kt @@ -140,10 +140,13 @@ class BookmarkFragmentInteractor( } override fun delete(nodes: Set) { + if (nodes.find { it.type == BookmarkNodeType.SEPARATOR } != null) { + throw IllegalStateException("Cannot delete separators") + } val eventType = when (nodes.singleOrNull()?.type) { - BookmarkNodeType.ITEM -> Event.RemoveBookmark + BookmarkNodeType.ITEM, + BookmarkNodeType.SEPARATOR -> Event.RemoveBookmark BookmarkNodeType.FOLDER -> Event.RemoveBookmarkFolder - BookmarkNodeType.SEPARATOR -> throw IllegalStateException("Cannot delete separators") null -> Event.RemoveBookmarks } deleteBookmarkNodes(nodes, eventType) diff --git a/app/src/test/java/org/mozilla/fenix/library/bookmarks/BookmarkFragmentInteractorTest.kt b/app/src/test/java/org/mozilla/fenix/library/bookmarks/BookmarkFragmentInteractorTest.kt index 00ec827c0..ca5b3da57 100644 --- a/app/src/test/java/org/mozilla/fenix/library/bookmarks/BookmarkFragmentInteractorTest.kt +++ b/app/src/test/java/org/mozilla/fenix/library/bookmarks/BookmarkFragmentInteractorTest.kt @@ -115,6 +115,11 @@ class BookmarkFragmentInteractorTest { metrics.track(Event.OpenedBookmark) } + @Test(expected = IllegalStateException::class) + fun `open a separator`() { + interactor.open(item.copy(type = BookmarkNodeType.SEPARATOR)) + } + @Test fun `expand a level of bookmarks`() { interactor.open(tree) @@ -243,6 +248,11 @@ class BookmarkFragmentInteractorTest { } } + @Test(expected = IllegalStateException::class) + fun `delete a separator`() { + interactor.delete(setOf(item, item.copy(type = BookmarkNodeType.SEPARATOR))) + } + @Test fun `delete a bookmark folder`() { interactor.delete(setOf(subfolder))