mirror of
https://github.com/koreader/koreader
synced 2024-11-13 19:11:25 +00:00
f7d538b108
* landscape FM / Refactor rotation refactor and simplify the orientation handling code. the user generally cares about the rotation (what direction the device is facing) and not about if koreader is displaying in portrait or landscape mode * bump base update luasocket, libjpeg-turbo, curl add logging to evernote-sdk-lua update framebuffer for proper rotation
100 lines
3.6 KiB
Lua
100 lines
3.6 KiB
Lua
describe("Readerpaging module", function()
|
|
local sample_pdf = "spec/front/unit/data/sample.pdf"
|
|
local readerui, UIManager, Event, DocumentRegistry, ReaderUI, Screen
|
|
local paging
|
|
|
|
setup(function()
|
|
require("commonrequire")
|
|
UIManager = require("ui/uimanager")
|
|
Event = require("ui/event")
|
|
DocumentRegistry = require("document/documentregistry")
|
|
ReaderUI = require("apps/reader/readerui")
|
|
Screen = require("device").screen
|
|
end)
|
|
|
|
describe("Page mode", function()
|
|
setup(function()
|
|
readerui = ReaderUI:new{
|
|
dimen = Screen:getSize(),
|
|
document = DocumentRegistry:openDocument(sample_pdf),
|
|
}
|
|
paging = readerui.paging
|
|
end)
|
|
|
|
it("should emit EndOfBook event at the end", function()
|
|
UIManager:quit()
|
|
UIManager:show(readerui)
|
|
UIManager:nextTick(function() UIManager:close(readerui) 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()
|
|
end)
|
|
end)
|
|
|
|
describe("Scroll mode", 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{
|
|
dimen = Screen:getSize(),
|
|
document = DocumentRegistry:openDocument(sample_pdf),
|
|
}
|
|
paging = readerui.paging
|
|
end)
|
|
|
|
it("should emit EndOfBook event at the end", function()
|
|
UIManager:quit()
|
|
UIManager:show(readerui)
|
|
UIManager:nextTick(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")
|
|
local called = false
|
|
readerui.onEndOfBook = function()
|
|
called = true
|
|
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"
|
|
local tmp_readerui = ReaderUI:new{
|
|
dimen = Screen:getSize(),
|
|
document = DocumentRegistry:openDocument(sample_djvu),
|
|
}
|
|
tmp_readerui.paging:onScrollPanRel(-100)
|
|
end)
|
|
|
|
it("should scroll forward on the last page without crash", function()
|
|
local sample_djvu = "spec/front/unit/data/djvu3spec.djvu"
|
|
local tmp_readerui = ReaderUI:new{
|
|
dimen = Screen:getSize(),
|
|
document = DocumentRegistry:openDocument(sample_djvu),
|
|
}
|
|
paging = tmp_readerui.paging
|
|
paging:onGotoPage(tmp_readerui.document:getPageCount())
|
|
paging:onScrollPanRel(120)
|
|
paging:onScrollPanRel(-1)
|
|
paging:onScrollPanRel(120)
|
|
end)
|
|
end)
|
|
end)
|