Revert "Test: Fiw readerhighlight test"

This reverts commit c23c422f62.
reviewable/pr10821/r1
NiLuJe 9 months ago
parent 66d2930e5e
commit a15fc0e9a5

@ -1111,7 +1111,10 @@ end
function ReaderView:onCloseWidget()
-- Stop any pending HintPage event
UIManager:unschedule(self.emitHintPageEvent)
self.emitHintPageEvent = nil
--- @fixme: The awful readerhighlight_spec test *relies* on this pointer being left dangling...
if not self.ui._testsuite then
self.emitHintPageEvent = nil
end
end
function ReaderView:onReaderReady()

@ -12,8 +12,7 @@ describe("Readerhighlight module", function()
UIManager = require("ui/uimanager")
end)
local function highlight_single_word(pos0)
local readerui = ReaderUI.instance
local function highlight_single_word(readerui, pos0)
local s = spy.on(readerui.languagesupport, "improveWordSelection")
readerui.highlight:onHold(nil, { pos = pos0 })
@ -29,12 +28,13 @@ describe("Readerhighlight module", function()
UIManager:scheduleIn(1, function()
UIManager:close(readerui.dictionary.dict_window)
UIManager:close(readerui)
-- We haven't torn it down yet
ReaderUI.instance = readerui
UIManager:quit()
end)
UIManager:run()
end
local function highlight_text(pos0, pos1)
local readerui = ReaderUI.instance
local function highlight_text(readerui, pos0, pos1)
readerui.highlight:onHold(nil, { pos = pos0 })
readerui.highlight:onHoldPan(nil, { pos = pos1 })
local next_slot
@ -54,16 +54,13 @@ describe("Readerhighlight module", function()
UIManager:scheduleIn(1, function()
UIManager:close(readerui.highlight.highlight_dialog)
UIManager:close(readerui)
-- We haven't torn it down yet
ReaderUI.instance = readerui
UIManager:quit()
end)
UIManager:run()
end
local function tap_highlight_text(pos0, pos1, pos2)
local readerui = ReaderUI.instance
-- Check the actual call chain, instead of relying on the actual internal highlight_dialog object directly...
-- Besides being less nutty, this will work for overlapping highlights...
local s = spy.on(readerui.highlight, "showChooseHighlightDialog")
local function tap_highlight_text(readerui, pos0, pos1, pos2)
readerui.highlight:onHold(nil, { pos = pos0 })
readerui.highlight:onHoldPan(nil, { pos = pos1 })
readerui.highlight:onHoldRelease()
@ -71,15 +68,12 @@ describe("Readerhighlight module", function()
readerui.highlight:clear()
UIManager:close(readerui.highlight.highlight_dialog)
readerui.highlight:onTap(nil, { pos = pos2 })
if not readerui.highlight.edit_highlight_dialog then
-- Take an up-to-date screenshot if this step failed, it's probably because we found overlapping HLs
UIManager:forceRePaint()
Screen:shot("screenshots/tap_highlight_text_overlapping_highlights.png")
end
assert.spy(s).was_called()
assert.truthy(readerui.highlight.edit_highlight_dialog)
UIManager:nextTick(function()
UIManager:close(readerui.highlight.edit_highlight_dialog)
UIManager:close(readerui)
-- We haven't torn it down yet
ReaderUI.instance = readerui
UIManager:quit()
end)
UIManager:run()
@ -87,18 +81,23 @@ describe("Readerhighlight module", function()
describe("highlight for EPUB documents", function()
local page = 10
before_each(function()
UIManager:quit()
local readerui, selection_spy
setup(function()
local sample_epub = "spec/front/unit/data/juliet.epub"
local readerui = ReaderUI:new{
readerui = ReaderUI:new{
dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_epub),
}
local selection_spy = spy.on(readerui.languagesupport, "improveWordSelection")
UIManager:show(readerui)
selection_spy = spy.on(readerui.languagesupport, "improveWordSelection")
end)
teardown(function()
readerui:closeDocument()
readerui:onClose()
end)
before_each(function()
UIManager:quit()
readerui.rolling:onGotoPage(page)
UIManager:show(readerui)
selection_spy:clear()
--- @fixme HACK: Mock UIManager:run x and y for readerui.dimen
--- @todo Refactor readerview's dimen handling so we can get rid of
@ -106,38 +105,25 @@ describe("Readerhighlight module", function()
readerui:paintTo(Screen.bb, 0, 0)
end)
after_each(function()
local readerui = ReaderUI.instance
if readerui then
readerui.highlight:clear()
readerui:closeDocument()
readerui:onClose()
end
readerui.highlight:clear()
end)
it("should highlight single word", function()
local readerui = ReaderUI.instance
local selection_spy = spy.on(readerui.languagesupport, "improveWordSelection")
highlight_single_word(Geom:new{ x = 400, y = 70 })
highlight_single_word(readerui, Geom:new{ x = 400, y = 70 })
Screen:shot("screenshots/reader_highlight_single_word_epub.png")
assert.spy(selection_spy).was_called()
assert.truthy(readerui.view.highlight.saved[page])
end)
it("should highlight text", function()
local readerui = ReaderUI.instance
local selection_spy = spy.on(readerui.languagesupport, "improveWordSelection")
highlight_text(Geom:new{ x = 400, y = 110 },
highlight_text(readerui,
Geom:new{ x = 400, y = 110 },
Geom:new{ x = 400, y = 170 })
Screen:shot("screenshots/reader_highlight_text_epub.png")
assert.spy(selection_spy).was_called()
assert.truthy(readerui.view.highlight.saved[page])
end)
it("should response on tap gesture", function()
local readerui = ReaderUI.instance
local selection_spy = spy.on(readerui.languagesupport, "improveWordSelection")
tap_highlight_text(Geom:new{ x = 130, y = 100 },
tap_highlight_text(readerui,
Geom:new{ x = 130, y = 100 },
Geom:new{ x = 350, y = 395 },
Geom:new{ x = 80, y = 265 })
Screen:shot("screenshots/reader_tap_highlight_text_epub.png")
@ -146,160 +132,132 @@ describe("Readerhighlight module", function()
end)
describe("highlight for PDF documents in page mode", function()
local sample_pdf = "spec/front/unit/data/sample.pdf"
local readerui
setup(function()
local sample_pdf = "spec/front/unit/data/sample.pdf"
readerui = ReaderUI:new{
dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf),
_testsuite = true,
}
readerui:handleEvent(Event:new("SetScrollMode", false))
end)
teardown(function()
readerui:closeDocument()
readerui:onClose()
end)
describe("for scanned page with text layer", function()
before_each(function()
UIManager:quit()
local readerui = ReaderUI:new{
dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf),
}
readerui:handleEvent(Event:new("SetScrollMode", false))
UIManager:show(readerui)
readerui.paging:onGotoPage(10)
-- We want up-to-date screenshots
readerui:paintTo(Screen.bb, 0, 0)
end)
after_each(function()
local readerui = ReaderUI.instance
if readerui then
readerui.highlight:clear()
readerui:closeDocument()
readerui:onClose()
end
readerui.highlight:clear()
end)
it("should response on tap gesture", function()
tap_highlight_text(Geom:new{ x = 260, y = 70 },
it("should response on tap gesture #nocov", function()
tap_highlight_text(readerui,
Geom:new{ x = 260, y = 70 },
Geom:new{ x = 260, y = 150 },
Geom:new{ x = 280, y = 110 })
Screen:shot("screenshots/reader_tap_highlight_text_pdf.png")
end)
it("should highlight single word", function()
highlight_single_word(Geom:new{ x = 260, y = 70 })
highlight_single_word(readerui, Geom:new{ x = 260, y = 70 })
Screen:shot("screenshots/reader_highlight_single_word_pdf.png")
end)
it("should highlight text", function()
highlight_text(Geom:new{ x = 260, y = 170 }, Geom:new{ x = 260, y = 250 })
highlight_text(readerui, Geom:new{ x = 260, y = 170 }, Geom:new{ x = 260, y = 250 })
Screen:shot("screenshots/reader_highlight_text_pdf.png")
end)
end)
describe("for scanned page without text layer", function()
before_each(function()
UIManager:quit()
local readerui = ReaderUI:new{
dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf),
}
readerui:handleEvent(Event:new("SetScrollMode", false))
UIManager:show(readerui)
readerui.paging:onGotoPage(28)
readerui:paintTo(Screen.bb, 0, 0)
end)
after_each(function()
local readerui = ReaderUI.instance
if readerui then
readerui.highlight:clear()
readerui:closeDocument()
readerui:onClose()
end
readerui.highlight:clear()
end)
it("should respond to tap gesture", function()
tap_highlight_text(Geom:new{ x = 260, y = 70 }, Geom:new{ x = 260, y = 150 }, Geom:new{ x = 250, y = 75 })
it("should respond to tap gesture #nocov", function()
tap_highlight_text(readerui, Geom:new{ x = 260, y = 70 }, Geom:new{ x = 260, y = 150 }, Geom:new{ x = 280, y = 110 })
Screen:shot("screenshots/reader_tap_highlight_text_pdf_scanned.png")
end)
it("should highlight single word", function()
highlight_single_word(Geom:new{ x = 260, y = 70 })
highlight_single_word(readerui, Geom:new{ x = 260, y = 70 })
Screen:shot("screenshots/reader_highlight_single_word_pdf_scanned.png")
end)
it("should highlight text", function()
highlight_text(Geom:new{ x = 260, y = 70 }, Geom:new{ x = 260, y = 150 })
highlight_text(readerui, Geom:new{ x = 260, y = 70 }, Geom:new{ x = 260, y = 150 })
Screen:shot("screenshots/reader_highlight_text_pdf_scanned.png")
end)
end)
describe("for reflowed page", function()
before_each(function()
UIManager:quit()
local readerui = ReaderUI:new{
dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf),
}
readerui:handleEvent(Event:new("SetScrollMode", false))
readerui.document.configurable.text_wrap = 1
readerui:handleEvent(Event:new("ReflowUpdated"))
UIManager:show(readerui)
readerui.paging:onGotoPage(31)
readerui:paintTo(Screen.bb, 0, 0)
end)
after_each(function()
local readerui = ReaderUI.instance
if readerui then
readerui.highlight:clear()
readerui.document.configurable.text_wrap = 0
readerui:handleEvent(Event:new("ReflowUpdated"))
readerui:closeDocument()
readerui:onClose()
end
readerui.highlight:clear()
readerui.document.configurable.text_wrap = 0
UIManager:close(readerui) -- close to flush settings
-- We haven't torn it down yet
ReaderUI.instance = readerui
end)
it("should respond to tap gesture", function()
tap_highlight_text(Geom:new{ x = 260, y = 70 }, Geom:new{ x = 260, y = 150 }, Geom:new{ x = 250, y = 75 })
it("should response on tap gesture #nocov", function()
tap_highlight_text(readerui, Geom:new{ x = 260, y = 70 }, Geom:new{ x = 260, y = 150 }, Geom:new{ x = 280, y = 110 })
Screen:shot("screenshots/reader_tap_highlight_text_pdf_reflowed.png")
end)
it("should highlight single word", function()
highlight_single_word(Geom:new{ x = 260, y = 70 })
highlight_single_word(readerui, Geom:new{ x = 260, y = 70 })
Screen:shot("screenshots/reader_highlight_single_word_pdf_reflowed.png")
end)
it("should highlight text", function()
highlight_text(Geom:new{ x = 260, y = 70 }, Geom:new{ x = 260, y = 150 })
highlight_text(readerui, Geom:new{ x = 260, y = 70 }, Geom:new{ x = 260, y = 150 })
Screen:shot("screenshots/reader_highlight_text_pdf_reflowed.png")
end)
end)
end)
describe("highlight for PDF documents in scroll mode", function()
local sample_pdf = "spec/front/unit/data/sample.pdf"
local readerui
setup(function()
local sample_pdf = "spec/front/unit/data/sample.pdf"
readerui = ReaderUI:new{
dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf),
_testsuite = true,
}
readerui:handleEvent(Event:new("SetScrollMode", true))
end)
teardown(function()
readerui:closeDocument()
readerui:onClose()
end)
describe("for scanned page with text layer", function()
before_each(function()
UIManager:quit()
local readerui = ReaderUI:new{
dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf),
}
readerui:handleEvent(Event:new("SetScrollMode", true))
UIManager:show(readerui)
readerui.paging:onGotoPage(10)
readerui.zooming:setZoomMode("contentwidth")
readerui:paintTo(Screen.bb, 0, 0)
end)
after_each(function()
local readerui = ReaderUI.instance
if readerui then
readerui.highlight:clear()
readerui:closeDocument()
readerui:onClose()
end
readerui.highlight:clear()
end)
it("should highlight single word", function()
highlight_single_word(Geom:new{ x = 260, y = 70 })
highlight_single_word(readerui, Geom:new{ x = 260, y = 70 })
Screen:shot("screenshots/reader_highlight_single_word_pdf_scroll.png")
end)
it("should highlight text", function()
highlight_text(Geom:new{ x = 260, y = 170 }, Geom:new{ x = 260, y = 250 })
highlight_text(readerui, Geom:new{ x = 260, y = 170 }, Geom:new{ x = 260, y = 250 })
Screen:shot("screenshots/reader_highlight_text_pdf_scroll.png")
end)
it("should response on tap gesture", function()
tap_highlight_text(Geom:new{ x = 260, y = 70 },
tap_highlight_text(readerui,
Geom:new{ x = 260, y = 70 },
Geom:new{ x = 260, y = 150 },
Geom:new{ x = 280, y = 110 })
Screen:shot("screenshots/reader_tap_highlight_text_pdf_scroll.png")
@ -308,77 +266,50 @@ describe("Readerhighlight module", function()
describe("for scanned page without text layer", function()
before_each(function()
UIManager:quit()
local readerui = ReaderUI:new{
dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf),
}
readerui:handleEvent(Event:new("SetScrollMode", true))
UIManager:show(readerui)
readerui.paging:onGotoPage(28)
readerui.zooming:setZoomMode("contentwidth")
readerui:paintTo(Screen.bb, 0, 0)
end)
after_each(function()
local readerui = ReaderUI.instance
if readerui then
readerui.highlight:clear()
readerui:closeDocument()
readerui:onClose()
end
readerui.highlight:clear()
end)
it("should highlight single word", function()
highlight_single_word(Geom:new{ x = 260, y = 70 })
highlight_single_word(readerui, Geom:new{ x = 260, y = 70 })
Screen:shot("screenshots/reader_highlight_single_word_pdf_scanned_scroll.png")
end)
it("should highlight text", function()
highlight_text(Geom:new{x = 192, y = 186}, Geom:new{x = 280, y = 186})
highlight_text(readerui, Geom:new{x = 192, y = 186}, Geom:new{x = 280, y = 186})
Screen:shot("screenshots/reader_highlight_text_pdf_scanned_scroll.png")
end)
it("should response on tap gesture", function()
tap_highlight_text(Geom:new{ x = 260, y = 70 }, Geom:new{ x = 260, y = 150 }, Geom:new{ x = 250, y = 75 })
tap_highlight_text(readerui, Geom:new{ x = 260, y = 70 }, Geom:new{ x = 260, y = 150 }, Geom:new{ x = 280, y = 110 })
Screen:shot("screenshots/reader_tap_highlight_text_pdf_scanned_scroll.png")
end)
end)
describe("for reflowed page", function()
before_each(function()
UIManager:quit()
local readerui = ReaderUI:new{
dimen = Screen:getSize(),
document = DocumentRegistry:openDocument(sample_pdf),
}
readerui:handleEvent(Event:new("SetScrollMode", true))
readerui.document.configurable.text_wrap = 1
readerui:handleEvent(Event:new("ReflowUpdated"))
UIManager:show(readerui)
readerui.paging:onGotoPage(31)
readerui:paintTo(Screen.bb, 0, 0)
end)
after_each(function()
local readerui = ReaderUI.instance
if readerui then
readerui.highlight:clear()
readerui.document.configurable.text_wrap = 0
readerui:handleEvent(Event:new("ReflowUpdated"))
readerui:closeDocument()
readerui:onClose()
end
readerui.highlight:clear()
readerui.document.configurable.text_wrap = 0
UIManager:close(readerui) -- close to flush settings
-- We haven't torn it down yet
ReaderUI.instance = readerui
end)
it("should highlight single word", function()
highlight_single_word(Geom:new{ x = 260, y = 70 })
highlight_single_word(readerui, Geom:new{ x = 260, y = 70 })
Screen:shot("screenshots/reader_highlight_single_word_pdf_reflowed_scroll.png")
end)
it("should highlight text", function()
highlight_text(Geom:new{ x = 260, y = 70 }, Geom:new{ x = 260, y = 150 })
highlight_text(readerui, Geom:new{ x = 260, y = 70 }, Geom:new{ x = 260, y = 150 })
Screen:shot("screenshots/reader_highlight_text_pdf_reflowed_scroll.png")
end)
it("should response on tap gesture", function()
tap_highlight_text(Geom:new{ x = 260, y = 70 }, Geom:new{ x = 260, y = 150 }, Geom:new{ x = 250, y = 75 })
tap_highlight_text(readerui, Geom:new{ x = 260, y = 70 }, Geom:new{ x = 260, y = 150 }, Geom:new{ x = 280, y = 110 })
Screen:shot("screenshots/reader_tap_highlight_text_pdf_reflowed_scroll.png")
end)
end)

Loading…
Cancel
Save