mirror of https://github.com/koreader/koreader
fix(readerlink): restore reader view context on go back
parent
2d5222ef33
commit
11d5b5c0a1
@ -0,0 +1,108 @@
|
||||
describe("ReaderLink module", function()
|
||||
local DocumentRegistry, ReaderUI, UIManager, sample_epub, sample_pdf
|
||||
|
||||
setup(function()
|
||||
require("commonrequire")
|
||||
DocumentRegistry = require("document/documentregistry")
|
||||
ReaderUI = require("apps/reader/readerui")
|
||||
UIManager = require("ui/uimanager")
|
||||
sample_epub = "spec/front/unit/data/leaves.epub"
|
||||
sample_pdf = "spec/front/unit/data/Adaptively.Scaling.The.Metropolis.Algorithm.Using.Expected.Squared.Jumped.Distance.pdf"
|
||||
end)
|
||||
|
||||
it("should jump to links in epub", function()
|
||||
local readerui = ReaderUI:new{
|
||||
document = DocumentRegistry:openDocument(sample_epub),
|
||||
}
|
||||
readerui.rolling:onGotoPage(4)
|
||||
readerui.link:onTap(nil, {pos = {x = 171, y = 27}})
|
||||
assert.is.same(36, readerui.rolling.current_page)
|
||||
end)
|
||||
|
||||
it("should jump to links in pdf", function()
|
||||
UIManager:quit()
|
||||
local readerui = ReaderUI:new{
|
||||
document = DocumentRegistry:openDocument(sample_pdf),
|
||||
}
|
||||
readerui.paging:onGotoPage(1)
|
||||
readerui.link:onTap(nil, {pos = {x = 363, y = 585}})
|
||||
UIManager:run()
|
||||
assert.is.same(22, readerui.paging.current_page)
|
||||
end)
|
||||
|
||||
it("should be able to go back after link jump in epub", function()
|
||||
local readerui = ReaderUI:new{
|
||||
document = DocumentRegistry:openDocument(sample_epub),
|
||||
}
|
||||
readerui.rolling:onGotoPage(4)
|
||||
readerui.link:onTap(nil, {pos = {x = 171, y = 27}})
|
||||
assert.is.same(36, readerui.rolling.current_page)
|
||||
readerui.link:onGoBackLink()
|
||||
assert.is.same(4, readerui.rolling.current_page)
|
||||
end)
|
||||
|
||||
it("should be able to go back after link jump in pdf", function()
|
||||
UIManager:quit()
|
||||
local readerui = ReaderUI:new{
|
||||
document = DocumentRegistry:openDocument(sample_pdf),
|
||||
}
|
||||
readerui.paging:onGotoPage(1)
|
||||
readerui.link:onTap(nil, {pos = {x = 363, y = 585}})
|
||||
UIManager:run()
|
||||
assert.is.same(22, readerui.paging.current_page)
|
||||
readerui.link:onGoBackLink()
|
||||
assert.is.same(1, readerui.paging.current_page)
|
||||
end)
|
||||
|
||||
it("should be able to go back after link jump in pdf in scroll mode", function()
|
||||
UIManager:quit()
|
||||
local expected_page_states = {
|
||||
{
|
||||
gamma = 1,
|
||||
offset = {x = 17, y = 0},
|
||||
page = 3,
|
||||
page_area = {
|
||||
x = 0, y = 0,
|
||||
h = 800, w = 566,
|
||||
},
|
||||
rotation = 0,
|
||||
visible_area = {
|
||||
x = 0, y = 694,
|
||||
h = 106, w = 566,
|
||||
},
|
||||
zoom = 0.9501187648456056456,
|
||||
},
|
||||
{
|
||||
gamma = 1,
|
||||
offset = {x = 17, y = 0},
|
||||
page = 4,
|
||||
page_area = {
|
||||
h = 800, w = 566,
|
||||
x = 0, y = 0,
|
||||
},
|
||||
rotation = 0,
|
||||
visible_area = {
|
||||
h = 686, w = 566,
|
||||
x = 0, y = 0,
|
||||
},
|
||||
zoom = 0.9501187648456056456,
|
||||
},
|
||||
}
|
||||
local readerui = ReaderUI:new{
|
||||
document = DocumentRegistry:openDocument(sample_pdf),
|
||||
}
|
||||
readerui.view:onSetScrollMode(true)
|
||||
assert.is.same(true, readerui.view.page_scroll)
|
||||
readerui.paging:onTapForward()
|
||||
readerui.paging:onTapForward()
|
||||
readerui.paging:onTapForward()
|
||||
assert.is.same(4, readerui.paging.current_page)
|
||||
assert.are.same(expected_page_states, readerui.view.page_states)
|
||||
readerui.link:onTap(nil, {pos = {x = 181, y = 366}})
|
||||
UIManager:run()
|
||||
assert.is.same(22, readerui.paging.current_page)
|
||||
readerui.link:onGoBackLink()
|
||||
assert.is.same(4, readerui.paging.current_page)
|
||||
assert.are.same(expected_page_states, readerui.view.page_states)
|
||||
end)
|
||||
end)
|
Binary file not shown.
Loading…
Reference in New Issue