mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
Tests: "Unbreak" some more tests
This is horrible and needs to burn in a fire.
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
describe("Readerpaging module", function()
|
||||
local sample_pdf = "spec/front/unit/data/sample.pdf"
|
||||
local readerui, UIManager, Event, DocumentRegistry, ReaderUI, Screen
|
||||
local paging
|
||||
local sample_djvu = "spec/front/unit/data/djvu3spec.djvu"
|
||||
local UIManager, Event, DocumentRegistry, ReaderUI, Screen
|
||||
|
||||
setup(function()
|
||||
require("commonrequire")
|
||||
@@ -12,116 +12,132 @@ describe("Readerpaging module", function()
|
||||
DocumentRegistry = require("document/documentregistry")
|
||||
ReaderUI = require("apps/reader/readerui")
|
||||
Screen = require("device").screen
|
||||
|
||||
local purgeDir = require("ffi/util").purgeDir
|
||||
local DocSettings = require("docsettings")
|
||||
purgeDir(DocSettings:getSidecarDir(sample_pdf))
|
||||
os.remove(DocSettings:getHistoryPath(sample_pdf))
|
||||
end)
|
||||
|
||||
describe("Page mode", function()
|
||||
setup(function()
|
||||
readerui = ReaderUI:new{
|
||||
describe("Page mode on a PDF", function()
|
||||
before_each(function()
|
||||
local readerui = ReaderUI:new{
|
||||
dimen = Screen:getSize(),
|
||||
document = DocumentRegistry:openDocument(sample_pdf),
|
||||
}
|
||||
paging = readerui.paging
|
||||
|
||||
UIManager:show(readerui)
|
||||
end)
|
||||
teardown(function()
|
||||
readerui:closeDocument()
|
||||
readerui:onClose()
|
||||
after_each(function()
|
||||
local readerui = ReaderUI.instance
|
||||
|
||||
if readerui then
|
||||
readerui:closeDocument()
|
||||
readerui:onClose()
|
||||
end
|
||||
end)
|
||||
|
||||
it("should emit EndOfBook event at the end", function()
|
||||
UIManager:quit()
|
||||
UIManager:show(readerui)
|
||||
local readerui = ReaderUI.instance
|
||||
local paging = readerui.paging
|
||||
|
||||
local s = spy.on(readerui.status, "onEndOfBook")
|
||||
|
||||
UIManager:nextTick(function()
|
||||
UIManager:close(readerui)
|
||||
-- We haven't torn it down yet
|
||||
ReaderUI.instance = readerui
|
||||
UIManager:quit()
|
||||
end)
|
||||
UIManager:run()
|
||||
readerui:handleEvent(Event:new("SetScrollMode", false))
|
||||
readerui.zooming:setZoomMode("pageheight")
|
||||
paging:onGotoPage(readerui.document:getPageCount())
|
||||
local called = false
|
||||
readerui.onEndOfBook = function()
|
||||
called = true
|
||||
end
|
||||
paging:onGotoViewRel(1)
|
||||
assert.is.truthy(called)
|
||||
readerui.onEndOfBook = nil
|
||||
UIManager:quit()
|
||||
assert.spy(s).was_called()
|
||||
end)
|
||||
end)
|
||||
|
||||
describe("Scroll mode", function()
|
||||
describe("Scroll mode on a PDF", function()
|
||||
setup(function()
|
||||
local purgeDir = require("ffi/util").purgeDir
|
||||
local DocSettings = require("docsettings")
|
||||
purgeDir(DocSettings:getSidecarDir(sample_pdf))
|
||||
os.remove(DocSettings:getHistoryPath(sample_pdf))
|
||||
|
||||
readerui = ReaderUI:new{
|
||||
end)
|
||||
before_each(function()
|
||||
local readerui = ReaderUI:new{
|
||||
dimen = Screen:getSize(),
|
||||
document = DocumentRegistry:openDocument(sample_pdf),
|
||||
}
|
||||
paging = readerui.paging
|
||||
|
||||
UIManager:show(readerui)
|
||||
end)
|
||||
teardown(function()
|
||||
readerui:closeDocument()
|
||||
readerui:onClose()
|
||||
after_each(function()
|
||||
local readerui = ReaderUI.instance
|
||||
|
||||
if readerui then
|
||||
readerui:closeDocument()
|
||||
readerui:onClose()
|
||||
end
|
||||
end)
|
||||
|
||||
it("should emit EndOfBook event at the end", function()
|
||||
UIManager:quit()
|
||||
UIManager:show(readerui)
|
||||
local readerui = ReaderUI.instance
|
||||
local paging = readerui.paging
|
||||
|
||||
local s = spy.on(readerui.status, "onEndOfBook")
|
||||
|
||||
UIManager:nextTick(function()
|
||||
UIManager:close(readerui)
|
||||
-- We haven't torn it down yet
|
||||
ReaderUI.instance = readerui
|
||||
UIManager:quit()
|
||||
end)
|
||||
UIManager:run()
|
||||
paging.page_positions = {}
|
||||
readerui:handleEvent(Event:new("SetScrollMode", true))
|
||||
paging:onGotoPage(readerui.document:getPageCount())
|
||||
readerui.zooming:setZoomMode("pageheight")
|
||||
local called = false
|
||||
readerui.onEndOfBook = function()
|
||||
called = true
|
||||
paging:onGotoViewRel(1)
|
||||
paging:onGotoViewRel(1)
|
||||
assert.spy(s).was_called()
|
||||
end)
|
||||
end)
|
||||
|
||||
describe("Scroll mode on a DjVu", function()
|
||||
setup(function()
|
||||
local purgeDir = require("ffi/util").purgeDir
|
||||
local DocSettings = require("docsettings")
|
||||
purgeDir(DocSettings:getSidecarDir(sample_djvu))
|
||||
os.remove(DocSettings:getHistoryPath(sample_djvu))
|
||||
end)
|
||||
before_each(function()
|
||||
local readerui = ReaderUI:new{
|
||||
dimen = Screen:getSize(),
|
||||
document = DocumentRegistry:openDocument(sample_djvu),
|
||||
}
|
||||
|
||||
UIManager:show(readerui)
|
||||
end)
|
||||
after_each(function()
|
||||
local readerui = ReaderUI.instance
|
||||
|
||||
if readerui then
|
||||
readerui:closeDocument()
|
||||
readerui:onClose()
|
||||
end
|
||||
paging:onGotoViewRel(1)
|
||||
paging:onGotoViewRel(1)
|
||||
assert.is.truthy(called)
|
||||
readerui.onEndOfBook = nil
|
||||
UIManager:quit()
|
||||
end)
|
||||
|
||||
it("should scroll backward on the first page without crash", function()
|
||||
local sample_djvu = "spec/front/unit/data/djvu3spec.djvu"
|
||||
-- Unsafe second // ReaderUI instance!
|
||||
local tmp_readerui = ReaderUI:new{
|
||||
dimen = Screen:getSize(),
|
||||
document = DocumentRegistry:openDocument(sample_djvu),
|
||||
}
|
||||
tmp_readerui.paging:onScrollPanRel(-100)
|
||||
tmp_readerui:closeDocument()
|
||||
tmp_readerui:onClose()
|
||||
-- Restore the ref to the original ReaderUI instance
|
||||
ReaderUI.instance = readerui
|
||||
local readerui = ReaderUI.instance
|
||||
local paging = readerui.paging
|
||||
|
||||
paging:onScrollPanRel(-100)
|
||||
end)
|
||||
|
||||
it("should scroll forward on the last page without crash", function()
|
||||
local sample_djvu = "spec/front/unit/data/djvu3spec.djvu"
|
||||
-- Unsafe second // ReaderUI instance!
|
||||
local tmp_readerui = ReaderUI:new{
|
||||
dimen = Screen:getSize(),
|
||||
document = DocumentRegistry:openDocument(sample_djvu),
|
||||
}
|
||||
paging = tmp_readerui.paging
|
||||
paging:onGotoPage(tmp_readerui.document:getPageCount())
|
||||
local readerui = ReaderUI.instance
|
||||
local paging = readerui.paging
|
||||
|
||||
paging:onGotoPage(readerui.document:getPageCount())
|
||||
paging:onScrollPanRel(120)
|
||||
paging:onScrollPanRel(-1)
|
||||
paging:onScrollPanRel(120)
|
||||
tmp_readerui:closeDocument()
|
||||
tmp_readerui:onClose()
|
||||
-- Restore the ref to the original ReaderUI instance
|
||||
ReaderUI.instance = readerui
|
||||
end)
|
||||
end)
|
||||
end)
|
||||
|
||||
Reference in New Issue
Block a user