mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
tests/readerlink: reorganize
Group tests by file type (EPUB or PDF).
This commit is contained in:
committed by
Frans de Jonge
parent
b67c6147d5
commit
d0ca04c48d
@@ -14,185 +14,193 @@ describe("ReaderLink module", function()
|
||||
sample_pdf = "spec/front/unit/data/paper.pdf"
|
||||
end)
|
||||
|
||||
it("should jump to links in epub #nocov", function()
|
||||
local readerui = ReaderUI:new{
|
||||
dimen = Screen:getSize(),
|
||||
document = DocumentRegistry:openDocument(sample_epub),
|
||||
}
|
||||
readerui.rolling:onGotoPage(5)
|
||||
readerui.link:onTap(nil, {pos = {x = 320, y = 190}})
|
||||
assert.is.same(37, readerui.rolling.current_page)
|
||||
readerui:closeDocument()
|
||||
readerui:onClose()
|
||||
describe("with epub", function()
|
||||
|
||||
it("should jump to links #nocov", function()
|
||||
local readerui = ReaderUI:new{
|
||||
dimen = Screen:getSize(),
|
||||
document = DocumentRegistry:openDocument(sample_epub),
|
||||
}
|
||||
readerui.rolling:onGotoPage(5)
|
||||
readerui.link:onTap(nil, {pos = {x = 320, y = 190}})
|
||||
assert.is.same(37, readerui.rolling.current_page)
|
||||
readerui:closeDocument()
|
||||
readerui:onClose()
|
||||
end)
|
||||
|
||||
it("should be able to go back after link jump #nocov", function()
|
||||
local readerui = ReaderUI:new{
|
||||
dimen = Screen:getSize(),
|
||||
document = DocumentRegistry:openDocument(sample_epub),
|
||||
}
|
||||
readerui.rolling:onGotoPage(5)
|
||||
readerui.link:onTap(nil, {pos = {x = 320, y = 190}})
|
||||
assert.is.same(37, readerui.rolling.current_page)
|
||||
readerui.link:onGoBackLink()
|
||||
assert.is.same(5, readerui.rolling.current_page)
|
||||
readerui:closeDocument()
|
||||
readerui:onClose()
|
||||
end)
|
||||
|
||||
end)
|
||||
|
||||
it("should jump to links in pdf page mode", function()
|
||||
UIManager:quit()
|
||||
UIManager._exit_code = nil
|
||||
local readerui = ReaderUI:new{
|
||||
dimen = Screen:getSize(),
|
||||
document = DocumentRegistry:openDocument(sample_pdf),
|
||||
}
|
||||
readerui:handleEvent(Event:new("SetScrollMode", false))
|
||||
readerui:handleEvent(Event:new("SetZoomMode", "page"))
|
||||
readerui.paging:onGotoPage(1)
|
||||
readerui.link:onTap(nil, {pos = {x = 363, y = 565}})
|
||||
UIManager:run()
|
||||
assert.is.same(22, readerui.paging.current_page)
|
||||
readerui:closeDocument()
|
||||
readerui:onClose()
|
||||
end)
|
||||
describe("with pdf", function()
|
||||
|
||||
it("should jump to links in pdf scroll mode", function()
|
||||
UIManager:quit()
|
||||
UIManager._exit_code = nil
|
||||
local readerui = ReaderUI:new{
|
||||
dimen = Screen:getSize(),
|
||||
document = DocumentRegistry:openDocument(sample_pdf),
|
||||
}
|
||||
readerui:handleEvent(Event:new("SetScrollMode", true))
|
||||
readerui:handleEvent(Event:new("SetZoomMode", "page"))
|
||||
readerui.paging:onGotoPage(1)
|
||||
assert.is.same(1, readerui.paging.current_page)
|
||||
readerui.link:onTap(nil, {pos = {x = 228, y = 534}})
|
||||
UIManager:run()
|
||||
-- its really hard to get the exact page number in scroll mode
|
||||
-- page positions may have unexpected impact on page number
|
||||
assert.truthy(readerui.paging.current_page == 21
|
||||
or readerui.paging.current_page == 20)
|
||||
readerui:closeDocument()
|
||||
readerui:onClose()
|
||||
end)
|
||||
it("should jump to links in page mode", function()
|
||||
UIManager:quit()
|
||||
UIManager._exit_code = nil
|
||||
local readerui = ReaderUI:new{
|
||||
dimen = Screen:getSize(),
|
||||
document = DocumentRegistry:openDocument(sample_pdf),
|
||||
}
|
||||
readerui:handleEvent(Event:new("SetScrollMode", false))
|
||||
readerui:handleEvent(Event:new("SetZoomMode", "page"))
|
||||
readerui.paging:onGotoPage(1)
|
||||
readerui.link:onTap(nil, {pos = {x = 363, y = 565}})
|
||||
UIManager:run()
|
||||
assert.is.same(22, readerui.paging.current_page)
|
||||
readerui:closeDocument()
|
||||
readerui:onClose()
|
||||
end)
|
||||
|
||||
it("should be able to go back after link jump in epub #nocov", function()
|
||||
local readerui = ReaderUI:new{
|
||||
dimen = Screen:getSize(),
|
||||
document = DocumentRegistry:openDocument(sample_epub),
|
||||
}
|
||||
readerui.rolling:onGotoPage(5)
|
||||
readerui.link:onTap(nil, {pos = {x = 320, y = 190}})
|
||||
assert.is.same(37, readerui.rolling.current_page)
|
||||
readerui.link:onGoBackLink()
|
||||
assert.is.same(5, readerui.rolling.current_page)
|
||||
readerui:closeDocument()
|
||||
readerui:onClose()
|
||||
end)
|
||||
it("should jump to links in scroll mode", function()
|
||||
UIManager:quit()
|
||||
UIManager._exit_code = nil
|
||||
local readerui = ReaderUI:new{
|
||||
dimen = Screen:getSize(),
|
||||
document = DocumentRegistry:openDocument(sample_pdf),
|
||||
}
|
||||
readerui:handleEvent(Event:new("SetScrollMode", true))
|
||||
readerui:handleEvent(Event:new("SetZoomMode", "page"))
|
||||
readerui.paging:onGotoPage(1)
|
||||
assert.is.same(1, readerui.paging.current_page)
|
||||
readerui.link:onTap(nil, {pos = {x = 228, y = 534}})
|
||||
UIManager:run()
|
||||
-- its really hard to get the exact page number in scroll mode
|
||||
-- page positions may have unexpected impact on page number
|
||||
assert.truthy(readerui.paging.current_page == 21
|
||||
or readerui.paging.current_page == 20)
|
||||
readerui:closeDocument()
|
||||
readerui:onClose()
|
||||
end)
|
||||
|
||||
it("should be able to go back after link jump in pdf page mode", function()
|
||||
UIManager:quit()
|
||||
UIManager._exit_code = nil
|
||||
local readerui = ReaderUI:new{
|
||||
dimen = Screen:getSize(),
|
||||
document = DocumentRegistry:openDocument(sample_pdf),
|
||||
}
|
||||
readerui:handleEvent(Event:new("SetScrollMode", false))
|
||||
readerui:handleEvent(Event:new("SetZoomMode", "page"))
|
||||
readerui.paging:onGotoPage(1)
|
||||
readerui.link:onTap(nil, {pos = {x = 363, y = 565}})
|
||||
UIManager:run()
|
||||
assert.is.same(22, readerui.paging.current_page)
|
||||
readerui.link:onGoBackLink()
|
||||
assert.is.same(1, readerui.paging.current_page)
|
||||
readerui:closeDocument()
|
||||
readerui:onClose()
|
||||
end)
|
||||
it("should be able to go back after link jump in page mode", function()
|
||||
UIManager:quit()
|
||||
UIManager._exit_code = nil
|
||||
local readerui = ReaderUI:new{
|
||||
dimen = Screen:getSize(),
|
||||
document = DocumentRegistry:openDocument(sample_pdf),
|
||||
}
|
||||
readerui:handleEvent(Event:new("SetScrollMode", false))
|
||||
readerui:handleEvent(Event:new("SetZoomMode", "page"))
|
||||
readerui.paging:onGotoPage(1)
|
||||
readerui.link:onTap(nil, {pos = {x = 363, y = 565}})
|
||||
UIManager:run()
|
||||
assert.is.same(22, readerui.paging.current_page)
|
||||
readerui.link:onGoBackLink()
|
||||
assert.is.same(1, readerui.paging.current_page)
|
||||
readerui:closeDocument()
|
||||
readerui:onClose()
|
||||
end)
|
||||
|
||||
it("should be able to go back after link jump in pdf scroll mode", function()
|
||||
UIManager:quit()
|
||||
UIManager._exit_code = nil
|
||||
local readerui = ReaderUI:new{
|
||||
dimen = Screen:getSize(),
|
||||
document = DocumentRegistry:openDocument(sample_pdf),
|
||||
}
|
||||
readerui:handleEvent(Event:new("SetScrollMode", true))
|
||||
readerui:handleEvent(Event:new("SetZoomMode", "page"))
|
||||
readerui.paging:onGotoPage(1)
|
||||
assert.is.same(1, readerui.paging.current_page)
|
||||
readerui.link:onTap(nil, {pos = {x = 228, y = 534}})
|
||||
UIManager:run()
|
||||
assert.truthy(readerui.paging.current_page == 21
|
||||
or readerui.paging.current_page == 20)
|
||||
readerui.link:onGoBackLink()
|
||||
assert.is.same(1, readerui.paging.current_page)
|
||||
readerui:closeDocument()
|
||||
readerui:onClose()
|
||||
end)
|
||||
it("should be able to go back after link jump in scroll mode", function()
|
||||
UIManager:quit()
|
||||
UIManager._exit_code = nil
|
||||
local readerui = ReaderUI:new{
|
||||
dimen = Screen:getSize(),
|
||||
document = DocumentRegistry:openDocument(sample_pdf),
|
||||
}
|
||||
readerui:handleEvent(Event:new("SetScrollMode", true))
|
||||
readerui:handleEvent(Event:new("SetZoomMode", "page"))
|
||||
readerui.paging:onGotoPage(1)
|
||||
assert.is.same(1, readerui.paging.current_page)
|
||||
readerui.link:onTap(nil, {pos = {x = 228, y = 534}})
|
||||
UIManager:run()
|
||||
assert.truthy(readerui.paging.current_page == 21
|
||||
or readerui.paging.current_page == 20)
|
||||
readerui.link:onGoBackLink()
|
||||
assert.is.same(1, readerui.paging.current_page)
|
||||
readerui:closeDocument()
|
||||
readerui:onClose()
|
||||
end)
|
||||
|
||||
it("should be able to go back to the same position after link jump in pdf scroll mode", function()
|
||||
UIManager:quit()
|
||||
UIManager._exit_code = nil
|
||||
local expected_page_states = {
|
||||
{
|
||||
gamma = 1,
|
||||
offset = {x = 17, y = 0},
|
||||
page = 3,
|
||||
page_area = {
|
||||
x = 0, y = 0,
|
||||
h = 800, w = 566,
|
||||
it("should be able to go back to the same position after link jump in scroll mode", function()
|
||||
UIManager:quit()
|
||||
UIManager._exit_code = nil
|
||||
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.95032191328269044472,
|
||||
},
|
||||
{
|
||||
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.95032191328269044472,
|
||||
},
|
||||
rotation = 0,
|
||||
visible_area = {
|
||||
x = 0, y = 694,
|
||||
h = 106, w = 566,
|
||||
},
|
||||
zoom = 0.95032191328269044472,
|
||||
},
|
||||
{
|
||||
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.95032191328269044472,
|
||||
},
|
||||
}
|
||||
-- disable footer
|
||||
G_reader_settings:saveSetting("reader_footer_mode", 0)
|
||||
require("docsettings"):open(sample_pdf):purge()
|
||||
local readerui = ReaderUI:new{
|
||||
dimen = Screen:getSize(),
|
||||
document = DocumentRegistry:openDocument(sample_pdf),
|
||||
}
|
||||
readerui:handleEvent(Event:new("SetZoomMode", "page"))
|
||||
assert.is.falsy(readerui.view.footer_visible)
|
||||
readerui.paging:onGotoPage(1)
|
||||
assert.is.same(1, readerui.paging.current_page)
|
||||
readerui.view:onSetScrollMode(true)
|
||||
assert.is.same(true, readerui.view.page_scroll)
|
||||
assert.is.same(1, readerui.paging.current_page)
|
||||
}
|
||||
-- disable footer
|
||||
G_reader_settings:saveSetting("reader_footer_mode", 0)
|
||||
require("docsettings"):open(sample_pdf):purge()
|
||||
local readerui = ReaderUI:new{
|
||||
dimen = Screen:getSize(),
|
||||
document = DocumentRegistry:openDocument(sample_pdf),
|
||||
}
|
||||
readerui:handleEvent(Event:new("SetZoomMode", "page"))
|
||||
assert.is.falsy(readerui.view.footer_visible)
|
||||
readerui.paging:onGotoPage(1)
|
||||
assert.is.same(1, readerui.paging.current_page)
|
||||
readerui.view:onSetScrollMode(true)
|
||||
assert.is.same(true, readerui.view.page_scroll)
|
||||
assert.is.same(1, readerui.paging.current_page)
|
||||
|
||||
readerui.paging:onGotoViewRel(1)
|
||||
assert.is.same(2, readerui.paging.current_page)
|
||||
readerui.paging:onGotoViewRel(1)
|
||||
assert.is.same(2, readerui.paging.current_page)
|
||||
|
||||
readerui.paging:onGotoViewRel(-1)
|
||||
assert.is.same(1, readerui.paging.current_page)
|
||||
readerui.paging:onGotoViewRel(-1)
|
||||
assert.is.same(1, readerui.paging.current_page)
|
||||
|
||||
readerui.paging:onGotoViewRel(1)
|
||||
readerui.paging:onGotoViewRel(1)
|
||||
assert.is.same(3, readerui.paging.current_page)
|
||||
readerui.paging:onGotoViewRel(1)
|
||||
readerui.paging:onGotoViewRel(1)
|
||||
assert.is.same(3, readerui.paging.current_page)
|
||||
|
||||
readerui.paging:onGotoViewRel(-1)
|
||||
assert.is.same(2, readerui.paging.current_page)
|
||||
readerui.paging:onGotoViewRel(-1)
|
||||
assert.is.same(2, readerui.paging.current_page)
|
||||
|
||||
readerui.paging:onGotoViewRel(1)
|
||||
readerui.paging:onGotoViewRel(1)
|
||||
assert.is.same(4, readerui.paging.current_page)
|
||||
assert.are.same(expected_page_states, readerui.view.page_states)
|
||||
readerui.paging:onGotoViewRel(1)
|
||||
readerui.paging:onGotoViewRel(1)
|
||||
assert.is.same(4, readerui.paging.current_page)
|
||||
assert.are.same(expected_page_states, readerui.view.page_states)
|
||||
|
||||
readerui.link:onTap(nil, {pos = {x = 164, y = 366}})
|
||||
UIManager:run()
|
||||
assert.is.same(22, readerui.paging.current_page)
|
||||
readerui.link:onGoBackLink()
|
||||
assert.is.same(3, readerui.paging.current_page)
|
||||
assert.are.same(expected_page_states, readerui.view.page_states)
|
||||
readerui:closeDocument()
|
||||
readerui:onClose()
|
||||
end)
|
||||
|
||||
readerui.link:onTap(nil, {pos = {x = 164, y = 366}})
|
||||
UIManager:run()
|
||||
assert.is.same(22, readerui.paging.current_page)
|
||||
readerui.link:onGoBackLink()
|
||||
assert.is.same(3, readerui.paging.current_page)
|
||||
assert.are.same(expected_page_states, readerui.view.page_states)
|
||||
readerui:closeDocument()
|
||||
readerui:onClose()
|
||||
end)
|
||||
end)
|
||||
|
||||
Reference in New Issue
Block a user