diff --git a/spec/unit/readerbookmark_spec.lua b/spec/unit/readerbookmark_spec.lua index fba9bbc15..d2d27f4b7 100644 --- a/spec/unit/readerbookmark_spec.lua +++ b/spec/unit/readerbookmark_spec.lua @@ -26,31 +26,6 @@ describe("ReaderBookmark module", function() readerui.highlight:onHoldRelease() assert.truthy(readerui.highlight.highlight_dialog) readerui.highlight:saveHighlight() - UIManager:nextTick(function() - UIManager:close(readerui.highlight.highlight_dialog) - UIManager:close(readerui) - -- We haven't torn it down yet - ReaderUI.instance = readerui - end) - UIManager:run() - end - local function toggler_dogear(readerui) - readerui.bookmark:onToggleBookmark() - UIManager:nextTick(function() - UIManager:close(readerui) - -- We haven't torn it down yet - ReaderUI.instance = readerui - end) - UIManager:run() - end - local function show_bookmark_menu(readerui) - UIManager:nextTick(function() - UIManager:close(readerui.bookmark.bookmark_menu) - UIManager:close(readerui) - -- We haven't torn it down yet - ReaderUI.instance = readerui - end) - UIManager:run() end describe("EPUB document", function() @@ -64,23 +39,27 @@ describe("ReaderBookmark module", function() readerui.status.enabled = false end) teardown(function() - readerui:closeDocument() readerui:onClose() end) before_each(function() - UIManager:quit() UIManager:show(readerui) - readerui.rolling:onGotoPage(10) + end) + after_each(function() + UIManager:quit() end) it("should show dogear after toggling non-bookmarked page", function() + readerui.rolling:onGotoPage(10) assert.falsy(readerui.view.dogear_visible) - toggler_dogear(readerui) + readerui.bookmark:onToggleBookmark() + fastforward_ui_events() screenshot(Screen, "reader_bookmark_dogear_epub.png") assert.truthy(readerui.view.dogear_visible) end) it("should not show dogear after toggling bookmarked page", function() + readerui.rolling:onGotoPage(10) assert.truthy(readerui.view.dogear_visible) - toggler_dogear(readerui) + readerui.bookmark:onToggleBookmark() + fastforward_ui_events() screenshot(Screen, "reader_bookmark_nodogear_epub.png") assert.falsy(readerui.view.dogear_visible) end) @@ -88,10 +67,10 @@ describe("ReaderBookmark module", function() local pages = {1, 20, 5, 30, 10, 40, 15, 25, 35, 45} for _, page in ipairs(pages) do readerui.rolling:onGotoPage(page) - toggler_dogear(readerui) + readerui.bookmark:onToggleBookmark() end readerui.bookmark:onShowBookmark() - show_bookmark_menu(readerui) + fastforward_ui_events() screenshot(Screen, "reader_bookmark_10marks_epub.png") assert.are.same(10, #readerui.annotation.annotations) assert.are.same(15, readerui.document:getPageFromXPointer(readerui.annotation.annotations[4].page)) @@ -100,19 +79,20 @@ describe("ReaderBookmark module", function() local pages = {1, 30, 10, 40, 20} for _, page in ipairs(pages) do readerui.rolling:onGotoPage(page) - toggler_dogear(readerui) + readerui.bookmark:onToggleBookmark() end readerui.bookmark:onShowBookmark() - show_bookmark_menu(readerui) + fastforward_ui_events() screenshot(Screen, "reader_bookmark_5marks_epub.png") assert.are.same(5, #readerui.annotation.annotations) end) it("should add bookmark by highlighting", function() + readerui.rolling:onGotoPage(10) highlight_text(readerui, Geom:new{ x = 260, y = 60 }, Geom:new{ x = 260, y = 90 }) readerui.bookmark:onShowBookmark() - show_bookmark_menu(readerui) + fastforward_ui_events() screenshot(Screen, "reader_bookmark_6marks_epub.png") assert.are.same(6, #readerui.annotation.annotations) end) @@ -138,23 +118,28 @@ describe("ReaderBookmark module", function() document = DocumentRegistry:openDocument(sample_pdf), } readerui.status.enabled = false + UIManager:show(readerui) end) teardown(function() - readerui:closeDocument() readerui:onClose() end) before_each(function() - UIManager:quit() UIManager:show(readerui) - readerui.paging:onGotoPage(10) + end) + after_each(function() + UIManager:quit() end) it("should show dogear after toggling non-bookmarked page", function() - toggler_dogear(readerui) + readerui.paging:onGotoPage(10) + readerui.bookmark:onToggleBookmark() + fastforward_ui_events() screenshot(Screen, "reader_bookmark_dogear_pdf.png") assert.truthy(readerui.view.dogear_visible) end) it("should not show dogear after toggling bookmarked page", function() - toggler_dogear(readerui) + readerui.paging:onGotoPage(10) + readerui.bookmark:onToggleBookmark() + fastforward_ui_events() screenshot(Screen, "reader_bookmark_nodogear_pdf.png") assert.truthy(not readerui.view.dogear_visible) end) @@ -162,29 +147,33 @@ describe("ReaderBookmark module", function() local pages = {1, 20, 5, 30, 10, 40, 15, 25, 35, 45} for _, page in ipairs(pages) do readerui.paging:onGotoPage(page) - toggler_dogear(readerui) + readerui.bookmark:onToggleBookmark() end readerui.bookmark:onShowBookmark() - show_bookmark_menu(readerui) + fastforward_ui_events() screenshot(Screen, "reader_bookmark_10marks_pdf.png") - assert.are.same(10, #readerui.annotation.annotations) - assert.are.same(15, readerui.annotation.annotations[4].page) + local annotated_pages = {} + for i, a in ipairs(readerui.annotation.annotations) do + table.insert(annotated_pages, a.page) + end + assert.are.same({1, 5, 10, 15, 20, 25, 30, 35, 40, 45}, annotated_pages) end) it("should keep descending page numbers after removing bookmarks", function() local pages = {1, 30, 10, 40, 20} for _, page in ipairs(pages) do readerui.paging:onGotoPage(page) - toggler_dogear(readerui) + readerui.bookmark:onToggleBookmark() end readerui.bookmark:onShowBookmark() - show_bookmark_menu(readerui) + fastforward_ui_events() screenshot(Screen, "reader_bookmark_5marks_pdf.png") assert.are.same(5, #readerui.annotation.annotations) end) it("should add bookmark by highlighting", function() + readerui.paging:onGotoPage(10) highlight_text(readerui, Geom:new{ x = 260, y = 70 }, Geom:new{ x = 260, y = 150 }) readerui.bookmark:onShowBookmark() - show_bookmark_menu(readerui) + fastforward_ui_events() screenshot(Screen, "reader_bookmark_6marks_pdf.png") assert.are.same(6, #readerui.annotation.annotations) end)