Revert "Tests: "Unbreak" some more tests"

This reverts commit f4dd0f92b2.
reviewable/pr10821/r1
NiLuJe 9 months ago
parent e63c613626
commit 66d2930e5e

@ -12,10 +12,6 @@ describe("Readerhighlight module", function()
UIManager = require("ui/uimanager") UIManager = require("ui/uimanager")
end) end)
teardown(function()
UIManager:quit()
end)
local function highlight_single_word(pos0) local function highlight_single_word(pos0)
local readerui = ReaderUI.instance local readerui = ReaderUI.instance
local s = spy.on(readerui.languagesupport, "improveWordSelection") local s = spy.on(readerui.languagesupport, "improveWordSelection")

@ -1,15 +1,6 @@
describe("ReaderLink module", function() describe("ReaderLink module", function()
local DocumentRegistry, ReaderUI, UIManager, sample_epub, sample_pdf, Event, Screen local DocumentRegistry, ReaderUI, UIManager, sample_epub, sample_pdf, Event, Screen
local purgeSidecar = function()
local purgeDir = require("ffi/util").purgeDir
local removePath = require("util").removePath
local DocSettings = require("docsettings")
purgeDir(DocSettings:getSidecarDir(sample_pdf))
removePath(DocSettings:getSidecarDir(sample_pdf))
os.remove(DocSettings:getHistoryPath(sample_pdf))
end
setup(function() setup(function()
require("commonrequire") require("commonrequire")
package.unloadAll() package.unloadAll()
@ -21,29 +12,6 @@ describe("ReaderLink module", function()
Screen = require("device").screen Screen = require("device").screen
sample_epub = "spec/front/unit/data/leaves.epub" sample_epub = "spec/front/unit/data/leaves.epub"
sample_pdf = "spec/front/unit/data/paper.pdf" sample_pdf = "spec/front/unit/data/paper.pdf"
purgeSidecar()
end)
teardown(function()
purgeSidecar()
end)
before_each(function()
-- Yes, out of order quits, because of the LinkBox mess
-- This is awful and doesn't make sense.
UIManager:quit()
-- This is yet another nonsensical hack to game the UI loop...
UIManager._exit_code = nil
end)
after_each(function()
local readerui = ReaderUI.instance
if readerui then
readerui:closeDocument()
readerui:onClose()
end
end) end)
it("should jump to links in epub #nocov", function() it("should jump to links in epub #nocov", function()
@ -52,12 +20,15 @@ describe("ReaderLink module", function()
document = DocumentRegistry:openDocument(sample_epub), document = DocumentRegistry:openDocument(sample_epub),
} }
readerui.rolling:onGotoPage(5) readerui.rolling:onGotoPage(5)
assert.is.same(5, readerui.rolling.current_page) readerui.link:onTap(nil, {pos = {x = 320, y = 190}})
readerui.link:onTap(nil, {pos = {x = 255, y = 170}}) assert.is.same(37, readerui.rolling.current_page)
assert.is.same(35, readerui.rolling.current_page) readerui:closeDocument()
readerui:onClose()
end) end)
it("should jump to links in pdf page mode #nocov", function() it("should jump to links in pdf page mode", function()
UIManager:quit()
UIManager._exit_code = nil
local readerui = ReaderUI:new{ local readerui = ReaderUI:new{
dimen = Screen:getSize(), dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf), document = DocumentRegistry:openDocument(sample_pdf),
@ -65,15 +36,16 @@ describe("ReaderLink module", function()
readerui:handleEvent(Event:new("SetScrollMode", false)) readerui:handleEvent(Event:new("SetScrollMode", false))
readerui:handleEvent(Event:new("SetZoomMode", "page")) readerui:handleEvent(Event:new("SetZoomMode", "page"))
readerui.paging:onGotoPage(1) readerui.paging:onGotoPage(1)
assert.is.same(1, readerui.paging.current_page) readerui.link:onTap(nil, {pos = {x = 363, y = 565}})
readerui.link:onTap(nil, {pos = {x = 292, y = 584}})
-- Outside of CRe, LinkBox only jumps after FOLLOW_LINK_TIMEOUT... We delay run to cadge that. Maybe. Sometimes. Somehow.
-- THIS TEST IS BROKEN AND DOESN'T MAKE SENSE.
UIManager:run() UIManager:run()
assert.is.near(22, readerui.paging.current_page, 21) -- This *sometimes* doesn't work *at all*, hence the large range. assert.is.same(22, readerui.paging.current_page)
readerui:closeDocument()
readerui:onClose()
end) end)
it("should jump to links in pdf scroll mode #nocov", function() it("should jump to links in pdf scroll mode", function()
UIManager:quit()
UIManager._exit_code = nil
local readerui = ReaderUI:new{ local readerui = ReaderUI:new{
dimen = Screen:getSize(), dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf), document = DocumentRegistry:openDocument(sample_pdf),
@ -86,7 +58,10 @@ describe("ReaderLink module", function()
UIManager:run() UIManager:run()
-- its really hard to get the exact page number in scroll mode -- its really hard to get the exact page number in scroll mode
-- page positions may have unexpected impact on page number -- page positions may have unexpected impact on page number
assert.is.near(22, readerui.paging.current_page, 2) assert.truthy(readerui.paging.current_page == 21
or readerui.paging.current_page == 20)
readerui:closeDocument()
readerui:onClose()
end) end)
it("should be able to go back after link jump in epub #nocov", function() it("should be able to go back after link jump in epub #nocov", function()
@ -95,15 +70,17 @@ describe("ReaderLink module", function()
document = DocumentRegistry:openDocument(sample_epub), document = DocumentRegistry:openDocument(sample_epub),
} }
readerui.rolling:onGotoPage(5) readerui.rolling:onGotoPage(5)
assert.is.same(5, readerui.rolling.current_page)
readerui.link:onTap(nil, {pos = {x = 320, y = 190}}) readerui.link:onTap(nil, {pos = {x = 320, y = 190}})
UIManager:run()
assert.is.same(37, readerui.rolling.current_page) assert.is.same(37, readerui.rolling.current_page)
readerui.link:onGoBackLink() readerui.link:onGoBackLink()
assert.is.same(5, readerui.rolling.current_page) assert.is.same(5, readerui.rolling.current_page)
readerui:closeDocument()
readerui:onClose()
end) end)
it("should be able to go back after link jump in pdf page mode #nocov", function() 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{ local readerui = ReaderUI:new{
dimen = Screen:getSize(), dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf), document = DocumentRegistry:openDocument(sample_pdf),
@ -111,15 +88,18 @@ describe("ReaderLink module", function()
readerui:handleEvent(Event:new("SetScrollMode", false)) readerui:handleEvent(Event:new("SetScrollMode", false))
readerui:handleEvent(Event:new("SetZoomMode", "page")) readerui:handleEvent(Event:new("SetZoomMode", "page"))
readerui.paging:onGotoPage(1) readerui.paging:onGotoPage(1)
assert.is.same(1, readerui.paging.current_page) readerui.link:onTap(nil, {pos = {x = 363, y = 565}})
readerui.link:onTap(nil, {pos = {x = 228, y = 534}})
UIManager:run() UIManager:run()
assert.is.near(21, readerui.paging.current_page, 2) assert.is.same(22, readerui.paging.current_page)
readerui.link:onGoBackLink() readerui.link:onGoBackLink()
assert.is.same(1, readerui.paging.current_page) assert.is.same(1, readerui.paging.current_page)
readerui:closeDocument()
readerui:onClose()
end) end)
it("should be able to go back after link jump in pdf scroll mode #nocov", function() 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{ local readerui = ReaderUI:new{
dimen = Screen:getSize(), dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf), document = DocumentRegistry:openDocument(sample_pdf),
@ -128,15 +108,19 @@ describe("ReaderLink module", function()
readerui:handleEvent(Event:new("SetZoomMode", "page")) readerui:handleEvent(Event:new("SetZoomMode", "page"))
readerui.paging:onGotoPage(1) readerui.paging:onGotoPage(1)
assert.is.same(1, readerui.paging.current_page) assert.is.same(1, readerui.paging.current_page)
assert.is.same(1, readerui.paging.current_page)
readerui.link:onTap(nil, {pos = {x = 228, y = 534}}) readerui.link:onTap(nil, {pos = {x = 228, y = 534}})
UIManager:run() UIManager:run()
assert.is.near(22, readerui.paging.current_page, 2) assert.truthy(readerui.paging.current_page == 21
or readerui.paging.current_page == 20)
readerui.link:onGoBackLink() readerui.link:onGoBackLink()
assert.is.same(1, readerui.paging.current_page) assert.is.same(1, readerui.paging.current_page)
readerui:closeDocument()
readerui:onClose()
end) end)
it("should be able to go back to the same position after link jump in pdf scroll mode #nocov", function() 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 = { local expected_page_states = {
{ {
gamma = 1, gamma = 1,
@ -208,5 +192,7 @@ describe("ReaderLink module", function()
readerui.link:onGoBackLink() readerui.link:onGoBackLink()
assert.is.same(3, readerui.paging.current_page) assert.is.same(3, readerui.paging.current_page)
assert.are.same(expected_page_states, readerui.view.page_states) assert.are.same(expected_page_states, readerui.view.page_states)
readerui:closeDocument()
readerui:onClose()
end) end)
end) end)

@ -1,7 +1,7 @@
describe("Readerpaging module", function() describe("Readerpaging module", function()
local sample_pdf = "spec/front/unit/data/sample.pdf" local sample_pdf = "spec/front/unit/data/sample.pdf"
local sample_djvu = "spec/front/unit/data/djvu3spec.djvu" local readerui, UIManager, Event, DocumentRegistry, ReaderUI, Screen
local UIManager, Event, DocumentRegistry, ReaderUI, Screen local paging
setup(function() setup(function()
require("commonrequire") require("commonrequire")
@ -12,132 +12,116 @@ describe("Readerpaging module", function()
DocumentRegistry = require("document/documentregistry") DocumentRegistry = require("document/documentregistry")
ReaderUI = require("apps/reader/readerui") ReaderUI = require("apps/reader/readerui")
Screen = require("device").screen 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) end)
describe("Page mode on a PDF", function() describe("Page mode", function()
before_each(function() setup(function()
local readerui = ReaderUI:new{ readerui = ReaderUI:new{
dimen = Screen:getSize(), dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf), document = DocumentRegistry:openDocument(sample_pdf),
} }
paging = readerui.paging
UIManager:show(readerui)
end) end)
after_each(function() teardown(function()
local readerui = ReaderUI.instance readerui:closeDocument()
readerui:onClose()
if readerui then
readerui:closeDocument()
readerui:onClose()
end
end) end)
it("should emit EndOfBook event at the end", function() it("should emit EndOfBook event at the end", function()
local readerui = ReaderUI.instance UIManager:quit()
local paging = readerui.paging UIManager:show(readerui)
local s = spy.on(readerui.status, "onEndOfBook")
UIManager:nextTick(function() UIManager:nextTick(function()
UIManager:quit() UIManager:close(readerui)
-- We haven't torn it down yet
ReaderUI.instance = readerui
end) end)
UIManager:run() UIManager:run()
readerui:handleEvent(Event:new("SetScrollMode", false)) readerui:handleEvent(Event:new("SetScrollMode", false))
readerui.zooming:setZoomMode("pageheight") readerui.zooming:setZoomMode("pageheight")
paging:onGotoPage(readerui.document:getPageCount()) paging:onGotoPage(readerui.document:getPageCount())
local called = false
readerui.onEndOfBook = function()
called = true
end
paging:onGotoViewRel(1) paging:onGotoViewRel(1)
assert.spy(s).was_called() assert.is.truthy(called)
readerui.onEndOfBook = nil
UIManager:quit()
end) end)
end) end)
describe("Scroll mode on a PDF", function() describe("Scroll mode", function()
setup(function() setup(function()
local purgeDir = require("ffi/util").purgeDir local purgeDir = require("ffi/util").purgeDir
local DocSettings = require("docsettings") local DocSettings = require("docsettings")
purgeDir(DocSettings:getSidecarDir(sample_pdf)) purgeDir(DocSettings:getSidecarDir(sample_pdf))
os.remove(DocSettings:getHistoryPath(sample_pdf)) os.remove(DocSettings:getHistoryPath(sample_pdf))
end)
before_each(function() readerui = ReaderUI:new{
local readerui = ReaderUI:new{
dimen = Screen:getSize(), dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf), document = DocumentRegistry:openDocument(sample_pdf),
} }
paging = readerui.paging
UIManager:show(readerui)
end) end)
after_each(function() teardown(function()
local readerui = ReaderUI.instance readerui:closeDocument()
readerui:onClose()
if readerui then
readerui:closeDocument()
readerui:onClose()
end
end) end)
it("should emit EndOfBook event at the end", function() it("should emit EndOfBook event at the end", function()
local readerui = ReaderUI.instance UIManager:quit()
local paging = readerui.paging UIManager:show(readerui)
local s = spy.on(readerui.status, "onEndOfBook")
UIManager:nextTick(function() UIManager:nextTick(function()
UIManager:quit() UIManager:close(readerui)
-- We haven't torn it down yet
ReaderUI.instance = readerui
end) end)
UIManager:run() UIManager:run()
paging.page_positions = {} paging.page_positions = {}
readerui:handleEvent(Event:new("SetScrollMode", true)) readerui:handleEvent(Event:new("SetScrollMode", true))
paging:onGotoPage(readerui.document:getPageCount()) paging:onGotoPage(readerui.document:getPageCount())
readerui.zooming:setZoomMode("pageheight") readerui.zooming:setZoomMode("pageheight")
local called = false
readerui.onEndOfBook = function()
called = true
end
paging:onGotoViewRel(1) paging:onGotoViewRel(1)
paging:onGotoViewRel(1) paging:onGotoViewRel(1)
assert.spy(s).was_called() assert.is.truthy(called)
readerui.onEndOfBook = nil
UIManager:quit()
end) end)
end)
describe("Scroll mode on a DjVu", function() it("should scroll backward on the first page without crash", function()
setup(function() local sample_djvu = "spec/front/unit/data/djvu3spec.djvu"
local purgeDir = require("ffi/util").purgeDir -- Unsafe second // ReaderUI instance!
local DocSettings = require("docsettings") local tmp_readerui = ReaderUI:new{
purgeDir(DocSettings:getSidecarDir(sample_djvu))
os.remove(DocSettings:getHistoryPath(sample_djvu))
end)
before_each(function()
local readerui = ReaderUI:new{
dimen = Screen:getSize(), dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_djvu), document = DocumentRegistry:openDocument(sample_djvu),
} }
tmp_readerui.paging:onScrollPanRel(-100)
UIManager:show(readerui) tmp_readerui:closeDocument()
end) tmp_readerui:onClose()
after_each(function() -- Restore the ref to the original ReaderUI instance
local readerui = ReaderUI.instance ReaderUI.instance = readerui
if readerui then
readerui:closeDocument()
readerui:onClose()
end
end)
it("should scroll backward on the first page without crash", function()
local readerui = ReaderUI.instance
local paging = readerui.paging
paging:onScrollPanRel(-100)
end) end)
it("should scroll forward on the last page without crash", function() it("should scroll forward on the last page without crash", function()
local readerui = ReaderUI.instance local sample_djvu = "spec/front/unit/data/djvu3spec.djvu"
local paging = readerui.paging -- Unsafe second // ReaderUI instance!
local tmp_readerui = ReaderUI:new{
paging:onGotoPage(readerui.document:getPageCount()) dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_djvu),
}
paging = tmp_readerui.paging
paging:onGotoPage(tmp_readerui.document:getPageCount())
paging:onScrollPanRel(120) paging:onScrollPanRel(120)
paging:onScrollPanRel(-1) paging:onScrollPanRel(-1)
paging:onScrollPanRel(120) paging:onScrollPanRel(120)
tmp_readerui:closeDocument()
tmp_readerui:onClose()
-- Restore the ref to the original ReaderUI instance
ReaderUI.instance = readerui
end) end)
end) end)
end) end)

Loading…
Cancel
Save