diff --git a/spec/unit/readerui_spec.lua b/spec/unit/readerui_spec.lua index 907864ced..dac84969f 100644 --- a/spec/unit/readerui_spec.lua +++ b/spec/unit/readerui_spec.lua @@ -34,4 +34,11 @@ describe("Readerui module", function() readerui:closeDocument() assert(readerui.document == nil) end) + it("should not reset running_instance by mistake", function() + assert.is.truthy(readerui.document) + ReaderUI:new{ + document = DocumentRegistry:openDocument(sample_epub) + }:onClose() + assert.is.truthy(readerui.document) + end) end) diff --git a/spec/unit/readerview_spec.lua b/spec/unit/readerview_spec.lua new file mode 100644 index 000000000..a0a0c0f3b --- /dev/null +++ b/spec/unit/readerview_spec.lua @@ -0,0 +1,42 @@ +require("commonrequire") +local DocumentRegistry = require("document/documentregistry") +local Blitbuffer = require("ffi/blitbuffer") +local ReaderUI = require("apps/reader/readerui") +local UIManager = require("ui/uimanager") + +describe("Readerview module", function() + it("should stop hinting on document close event", function() + local sample_epub = "spec/front/unit/data/leaves.epub" + local readerui = ReaderUI:new{ + document = DocumentRegistry:openDocument(sample_epub), + } + for i = #UIManager._task_queue, 1, -1 do + local task = UIManager._task_queue[i] + if task.action == readerui.view.emitHintPageEvent then + error("UIManager's task queue should be emtpy.") + end + end + + local bb = Blitbuffer.new(1000, 1000) + readerui.view:drawSinglePage(bb, 0, 0) + + local found = false + for i = #UIManager._task_queue, 1, -1 do + local task = UIManager._task_queue[i] + if task.action == readerui.view.emitHintPageEvent then + found = true + end + end + assert.is.truthy(found) + + readerui:onClose() + + assert.is.falsy(readerui.view.hinting) + for i = #UIManager._task_queue, 1, -1 do + local task = UIManager._task_queue[i] + if task.action == readerui.view.emitHintPageEvent then + error("UIManager's task queue should be emtpy.") + end + end + end) +end)