From 2986094cc961a18bebb413e2aa1b1ab78cb114f8 Mon Sep 17 00:00:00 2001 From: NiLuJe Date: Wed, 19 May 2021 05:53:29 +0200 Subject: [PATCH] ReaderFooter test: Untangle settings handling Do a proper reset to defaults before each test without actually poking at the defaults table itself. --- spec/unit/readerfooter_spec.lua | 111 ++++++++++++++------------------ 1 file changed, 47 insertions(+), 64 deletions(-) diff --git a/spec/unit/readerfooter_spec.lua b/spec/unit/readerfooter_spec.lua index d67317b2b..62edcccd9 100644 --- a/spec/unit/readerfooter_spec.lua +++ b/spec/unit/readerfooter_spec.lua @@ -55,16 +55,6 @@ describe("Readerfooter module", function() end error('Menu item not found: "Status bar"!') end - - --[[ - function resetSettings() - local settings = G_reader_settings:readSetting("footer", {}) - for k, v in pairs(ReaderFooter.default_settings) do - settings[k] = v - end - return settings - end - --]] end) teardown(function() @@ -75,21 +65,14 @@ describe("Readerfooter module", function() end) before_each(function() - local settings = G_reader_settings:readSetting("footer", ReaderFooter.default_settings) - -- NOTE: This is screwing with a few of the later tests, - -- where we basically do a weird dance of "reset to defaults" -> "disable all this" - settings.disabled = false - settings.all_at_once = true - settings.toc_markers = true + local settings = {} + for k, v in pairs(ReaderFooter.default_settings) do + settings[k] = v + end + -- Enforce Battery, the real default is dynamic (Device:hasBattery()) settings.battery = true - settings.time = true - settings.page_progress = true - settings.pages_left = true - settings.percentage = true - settings.book_time_to_read = true - settings.chapter_time_to_read = true - G_reader_settings:saveSetting("footer", settings) + -- NOTE: Forcefully disable the statistics plugin, as lj-sqlite3 is horribly broken under Busted, -- causing it to erratically fail to load, affecting the results of this test... G_reader_settings:saveSetting("plugins_disabled", { @@ -100,6 +83,10 @@ describe("Readerfooter module", function() it("should setup footer as visible in all_at_once mode", function() G_reader_settings:saveSetting("reader_footer_mode", 1) + local settings = G_reader_settings:readSetting("footer") + settings.all_at_once = true + G_reader_settings:saveSetting("footer", settings) + local sample_pdf = "spec/front/unit/data/2col.pdf" purgeDir(DocSettings:getSidecarDir(sample_pdf)) os.remove(DocSettings:getHistoryPath(sample_pdf)) @@ -115,19 +102,9 @@ describe("Readerfooter module", function() end) it("should setup footer as visible not in all_at_once", function() - local settings = G_reader_settings:readSetting("footer") - settings.disabled = false - settings.all_at_once = false - settings.toc_markers = true - settings.battery = true - settings.time = true - settings.page_progress = true - settings.pages_left = true - settings.percentage = true - settings.book_time_to_read = true - settings.chapter_time_to_read = true - G_reader_settings:saveSetting("footer", settings) G_reader_settings:saveSetting("reader_footer_mode", 1) + -- default settings + local sample_pdf = "spec/front/unit/data/2col.pdf" purgeDir(DocSettings:getSidecarDir(sample_pdf)) os.remove(DocSettings:getHistoryPath(sample_pdf)) @@ -145,6 +122,8 @@ describe("Readerfooter module", function() it("should setup footer as invisible in full screen mode", function() G_reader_settings:saveSetting("reader_footer_mode", 1) + -- default settings + local sample_pdf = "spec/front/unit/data/2col.pdf" purgeDir(DocSettings:getSidecarDir(sample_pdf)) os.remove(DocSettings:getHistoryPath(sample_pdf)) @@ -164,18 +143,20 @@ describe("Readerfooter module", function() it("should setup footer as visible in mini progress bar mode", function() G_reader_settings:saveSetting("reader_footer_mode", 1) + -- default settings + local sample_pdf = "spec/front/unit/data/2col.pdf" purgeDir(DocSettings:getSidecarDir(sample_pdf)) os.remove(DocSettings:getHistoryPath(sample_pdf)) local cfg = DocSettings:open(sample_pdf) - cfg:saveSetting("kopt_full_screen", 0) + cfg:delSetting("kopt_full_screen") cfg:flush() local readerui = ReaderUI:new{ dimen = Screen:getSize(), document = DocumentRegistry:openDocument(sample_pdf), } - assert.is.same(false, readerui.view.footer_visible) + assert.is.same(true, readerui.view.footer_visible) G_reader_settings:delSetting("reader_footer_mode") readerui:closeDocument() readerui:onClose() @@ -183,6 +164,8 @@ describe("Readerfooter module", function() it("should setup footer as invisible", function() G_reader_settings:saveSetting("reader_footer_mode", 1) + -- default settings + local sample_epub = "spec/front/unit/data/juliet.epub" purgeDir(DocSettings:getSidecarDir(sample_epub)) os.remove(DocSettings:getHistoryPath(sample_epub)) @@ -201,6 +184,10 @@ describe("Readerfooter module", function() end) it("should setup footer for epub without error", function() + local settings = G_reader_settings:readSetting("footer") + settings.all_at_once = true + G_reader_settings:saveSetting("footer", settings) + local sample_epub = "spec/front/unit/data/juliet.epub" purgeDir(DocSettings:getSidecarDir(sample_epub)) os.remove(DocSettings:getHistoryPath(sample_epub)) @@ -222,6 +209,10 @@ describe("Readerfooter module", function() end) it("should setup footer for pdf without error", function() + local settings = G_reader_settings:readSetting("footer") + settings.all_at_once = true + G_reader_settings:saveSetting("footer", settings) + local sample_pdf = "spec/front/unit/data/2col.pdf" purgeDir(DocSettings:getSidecarDir(sample_pdf)) os.remove(DocSettings:getHistoryPath(sample_pdf)) @@ -240,6 +231,10 @@ describe("Readerfooter module", function() end) it("should switch between different modes", function() + local settings = G_reader_settings:readSetting("footer") + settings.all_at_once = true + G_reader_settings:saveSetting("footer", settings) + local sample_pdf = "spec/front/unit/data/2col.pdf" purgeDir(DocSettings:getSidecarDir(sample_pdf)) os.remove(DocSettings:getHistoryPath(sample_pdf)) @@ -297,13 +292,14 @@ describe("Readerfooter module", function() end) it("should rotate through different modes", function() + -- default settings (we'll poke at footer.settings directly post-instantiation) + local sample_pdf = "spec/front/unit/data/2col.pdf" local readerui = ReaderUI:new{ dimen = Screen:getSize(), document = DocumentRegistry:openDocument(sample_pdf), } local footer = readerui.view.footer - footer.settings.all_at_once = false footer.mode = 0 footer:onTapFooter() assert.is.same(1, footer.mode) @@ -324,6 +320,7 @@ describe("Readerfooter module", function() assert.is.same(0, footer.mode) footer.settings.all_at_once = true + footer:updateFooterTextGenerator() footer.mode = 5 footer:onTapFooter() assert.is.same(0, footer.mode) @@ -339,6 +336,10 @@ describe("Readerfooter module", function() end) it("should pick up screen resize in resetLayout", function() + local settings = G_reader_settings:readSetting("footer") + settings.all_at_once = true + G_reader_settings:saveSetting("footer", settings) + local sample_pdf = "spec/front/unit/data/2col.pdf" purgeDir(DocSettings:getSidecarDir(sample_pdf)) os.remove(DocSettings:getHistoryPath(sample_pdf)) @@ -375,6 +376,10 @@ describe("Readerfooter module", function() end) it("should update width on PosUpdate event", function() + local settings = G_reader_settings:readSetting("footer") + settings.all_at_once = true + G_reader_settings:saveSetting("footer", settings) + local sample_epub = "spec/front/unit/data/juliet.epub" purgeDir(DocSettings:getSidecarDir(sample_epub)) os.remove(DocSettings:getHistoryPath(sample_epub)) @@ -400,14 +405,12 @@ describe("Readerfooter module", function() end) it("should support chapter markers", function() + -- default settings (we'll poke at footer.settings directly post-instantiation) + local sample_epub = "spec/front/unit/data/juliet.epub" purgeDir(DocSettings:getSidecarDir(sample_epub)) os.remove(DocSettings:getHistoryPath(sample_epub)) - local settings = G_reader_settings:readSetting("footer") - settings.toc_markers = true - G_reader_settings:saveSetting("footer", settings) - local readerui = ReaderUI:new{ dimen = Screen:getSize(), document = DocumentRegistry:openDocument(sample_epub), @@ -437,7 +440,6 @@ describe("Readerfooter module", function() local settings = G_reader_settings:readSetting("footer") settings.auto_refresh_time = true settings.all_at_once = true - settings.time = true G_reader_settings:saveSetting("footer", settings) local readerui = ReaderUI:new{ @@ -477,7 +479,6 @@ describe("Readerfooter module", function() settings.disabled = true settings.auto_refresh_time = true settings.all_at_once = true - settings.time = true G_reader_settings:saveSetting("footer", settings) local readerui = ReaderUI:new{ @@ -508,7 +509,6 @@ describe("Readerfooter module", function() settings.disabled = false settings.auto_refresh_time = true settings.all_at_once = true - settings.time = true G_reader_settings:saveSetting("footer", settings) local readerui = ReaderUI:new{ @@ -563,12 +563,7 @@ describe("Readerfooter module", function() assert.are.same({}, UIManager._task_queue) G_reader_settings:saveSetting("reader_footer_mode", 1) - local settings = G_reader_settings:readSetting("footer") - settings.disabled = false - settings.all_at_once = false - settings.page_progress = true - settings.time = true - G_reader_settings:saveSetting("footer", settings) + -- default settings local readerui = ReaderUI:new{ dimen = Screen:getSize(), @@ -610,8 +605,6 @@ describe("Readerfooter module", function() local settings = G_reader_settings:readSetting("footer") settings.all_at_once = true - settings.page_progress = true - settings.pages_left = true settings.battery = false settings.time = false settings.percentage = false @@ -651,8 +644,6 @@ describe("Readerfooter module", function() G_reader_settings:saveSetting("reader_footer_mode", 0) local settings = G_reader_settings:readSetting("footer") settings.all_at_once = true - settings.page_progress = true - settings.pages_left = true G_reader_settings:saveSetting("footer", settings) local readerui = ReaderUI:new{ @@ -676,9 +667,7 @@ describe("Readerfooter module", function() assert.are.same({}, UIManager._task_queue) - G_reader_settings:saveSetting("footer", ReaderFooter.default_settings) local settings = G_reader_settings:readSetting("footer") - settings.all_at_once = false settings.battery = false settings.time = false settings.page_progress = false @@ -726,9 +715,7 @@ describe("Readerfooter module", function() UIManager:quit() G_reader_settings:saveSetting("reader_footer_mode", 2) - local settings = G_reader_settings:readSetting("footer") - settings.time = true - G_reader_settings:saveSetting("footer", settings) + -- default settings local readerui = ReaderUI:new{ dimen = Screen:getSize(), @@ -750,9 +737,7 @@ describe("Readerfooter module", function() UIManager:quit() G_reader_settings:saveSetting("reader_footer_mode", 1) - G_reader_settings:saveSetting("footer", ReaderFooter.default_settings) local settings = G_reader_settings:readSetting("footer") - settings.all_at_once = false settings.battery = false settings.time = false settings.page_progress = false @@ -782,9 +767,7 @@ describe("Readerfooter module", function() UIManager:quit() G_reader_settings:saveSetting("reader_footer_mode", 1) - G_reader_settings:saveSetting("footer", ReaderFooter.default_settings) local settings = G_reader_settings:readSetting("footer") - settings.all_at_once = false settings.battery = false settings.time = false settings.page_progress = false