mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
fix unit test of readerlink and readerpaging
and have more confidence with the unit testing framework. Now `make testfront` won't retry on failure and testing files are ordered in each run so that it's possible to reproduce testing failure. And this patch also fix flush settings not working before suspend issue: at some point the `FlushSettings` event is sent to `UIManager` instead of `ReaderUI`, but `UIManager` only delegated events to active widgets and `ReaderUI` is actually not an active widgets thus will miss the event. This patch also add a verbose debug mode with "-v" as a switch to turn on this mode. With verbose mode on, event handling will be logged.
This commit is contained in:
@@ -1,22 +1,27 @@
|
||||
describe("Readerpaging module", function()
|
||||
local sample_pdf = "spec/front/unit/data/sample.pdf"
|
||||
local readerui
|
||||
local readerui, UIManager, Event
|
||||
local paging
|
||||
|
||||
setup(function() require("commonrequire") end)
|
||||
setup(function()
|
||||
require("commonrequire")
|
||||
UIManager = require("ui/uimanager")
|
||||
Event = require("ui/event")
|
||||
end)
|
||||
|
||||
describe("Page mode", function()
|
||||
local Event
|
||||
|
||||
setup(function()
|
||||
Event = require("ui/event")
|
||||
readerui = require("apps/reader/readerui"):new{
|
||||
document = require("document/documentregistry"):openDocument(sample_pdf),
|
||||
}
|
||||
paging = readerui.paging
|
||||
end)
|
||||
|
||||
it("should emit EndOfBook event at the end in page mode", function()
|
||||
it("should emit EndOfBook event at the end", function()
|
||||
UIManager:quit()
|
||||
UIManager:show(readerui)
|
||||
UIManager:scheduleIn(1, function() UIManager:close(readerui) end)
|
||||
UIManager:run()
|
||||
readerui:handleEvent(Event:new("SetScrollMode", false))
|
||||
readerui.zooming:setZoomMode("pageheight")
|
||||
paging:onGotoPage(readerui.document:getPageCount())
|
||||
@@ -27,19 +32,7 @@ describe("Readerpaging module", function()
|
||||
paging:onPagingRel(1)
|
||||
assert.is.truthy(called)
|
||||
readerui.onEndOfBook = nil
|
||||
end)
|
||||
|
||||
it("should emit EndOfBook event at the end in scroll mode", function()
|
||||
readerui:handleEvent(Event:new("SetScrollMode", true))
|
||||
paging:onGotoPage(readerui.document:getPageCount())
|
||||
readerui.zooming:setZoomMode("pageheight")
|
||||
local called = false
|
||||
readerui.onEndOfBook = function()
|
||||
called = true
|
||||
end
|
||||
paging:onPagingRel(1)
|
||||
assert.is.truthy(called)
|
||||
readerui.onEndOfBook = nil
|
||||
UIManager:quit()
|
||||
end)
|
||||
end)
|
||||
|
||||
@@ -57,16 +50,23 @@ describe("Readerpaging module", function()
|
||||
end)
|
||||
|
||||
it("should emit EndOfBook event at the end", function()
|
||||
UIManager:quit()
|
||||
UIManager:show(readerui)
|
||||
UIManager:scheduleIn(1, function() UIManager:close(readerui) end)
|
||||
UIManager:run()
|
||||
paging.page_positions = {}
|
||||
readerui:handleEvent(Event:new("SetScrollMode", true))
|
||||
paging:onGotoPage(readerui.document:getPageCount())
|
||||
readerui.zooming:setZoomMode("pageheight")
|
||||
readerui.view:onSetScrollMode(true)
|
||||
local called = false
|
||||
readerui.onEndOfBook = function()
|
||||
called = true
|
||||
end
|
||||
paging:onPagingRel(1)
|
||||
paging:onPagingRel(1)
|
||||
assert.is.truthy(called)
|
||||
readerui.onEndOfBook = nil
|
||||
UIManager:quit()
|
||||
end)
|
||||
end)
|
||||
end)
|
||||
|
||||
Reference in New Issue
Block a user