diff --git a/.luacheckrc b/.luacheckrc index e87bdecd7..caa831c89 100644 --- a/.luacheckrc +++ b/.luacheckrc @@ -28,6 +28,8 @@ files["spec/unit/*"].std = "+busted" files["spec/unit/*"].globals = { "match", -- can be removed once luacheck 0.24.0 or higher is used "package", + "disable_plugins", + "load_plugin", } -- TODO: clean up and enforce max line width (631) diff --git a/spec/unit/autosuspend_spec.lua b/spec/unit/autosuspend_spec.lua index a99952910..c00b30b5a 100644 --- a/spec/unit/autosuspend_spec.lua +++ b/spec/unit/autosuspend_spec.lua @@ -1,6 +1,7 @@ describe("AutoSuspend", function() setup(function() require("commonrequire") + disable_plugins() require("document/canvascontext"):init(require("device")) end) diff --git a/spec/unit/batterystat_spec.lua b/spec/unit/batterystat_spec.lua index 0453c1c93..7b73f00b6 100644 --- a/spec/unit/batterystat_spec.lua +++ b/spec/unit/batterystat_spec.lua @@ -7,6 +7,7 @@ describe("BatteryState plugin tests", function() setup(function() require("commonrequire") + disable_plugins() require("document/canvascontext"):init(require("device")) time = require("ui/time") MockTime = require("mock_time") diff --git a/spec/unit/commonrequire.lua b/spec/unit/commonrequire.lua index da3b55b86..8c20efcdb 100644 --- a/spec/unit/commonrequire.lua +++ b/spec/unit/commonrequire.lua @@ -56,3 +56,22 @@ package.reload = function(name) assert(package.unload(name)) return require(name) end + +function disable_plugins() + local PluginLoader = require("pluginloader") + PluginLoader.enabled_plugins = {} + PluginLoader.disabled_plugins = {} + PluginLoader.loaded_plugins = {} +end + +function load_plugin(name) + local PluginLoader = require("pluginloader") + local t = PluginLoader:_discover() + for _, v in ipairs(t) do + if v.name == name then + PluginLoader:_load{v} + return + end + end + assert(false) +end diff --git a/spec/unit/device_spec.lua b/spec/unit/device_spec.lua index da73e7d6f..f061ff9d0 100644 --- a/spec/unit/device_spec.lua +++ b/spec/unit/device_spec.lua @@ -31,6 +31,7 @@ describe("device module", function() end } require("commonrequire") + disable_plugins() ffi = require("ffi") C = ffi.C require("ffi/linux_input_h") diff --git a/spec/unit/exporter_plugin_main_spec.lua b/spec/unit/exporter_plugin_main_spec.lua index 7a93fa7b9..c968a2681 100644 --- a/spec/unit/exporter_plugin_main_spec.lua +++ b/spec/unit/exporter_plugin_main_spec.lua @@ -4,6 +4,8 @@ describe("Exporter plugin module", function() local DocumentRegistry, Screen setup(function() require("commonrequire") + disable_plugins() + load_plugin("exporter.koplugin") local ReaderUI = require("apps/reader/readerui") DocumentRegistry = require("document/documentregistry") Screen = require("device").screen diff --git a/spec/unit/filemanager_spec.lua b/spec/unit/filemanager_spec.lua index 49e50e496..7fadca659 100644 --- a/spec/unit/filemanager_spec.lua +++ b/spec/unit/filemanager_spec.lua @@ -2,6 +2,7 @@ describe("FileManager module", function() local DataStorage, FileManager, lfs, docsettings, UIManager, Screen, makePath, util setup(function() require("commonrequire") + disable_plugins() require("document/canvascontext"):init(require("device")) DataStorage = require("datastorage") FileManager = require("apps/filemanager/filemanager") diff --git a/spec/unit/frontlight_spec.lua b/spec/unit/frontlight_spec.lua index 1105f8e25..42dd6e0db 100644 --- a/spec/unit/frontlight_spec.lua +++ b/spec/unit/frontlight_spec.lua @@ -3,6 +3,7 @@ describe("Frontlight function in PowerD", function() local param, test_when_on, test_when_off setup(function() require("commonrequire") + disable_plugins() require("document/canvascontext"):init(require("device")) PowerD = require("device/generic/powerd"):new{ diff --git a/spec/unit/readerbookmark_spec.lua b/spec/unit/readerbookmark_spec.lua index 2a758e699..80b5806b0 100644 --- a/spec/unit/readerbookmark_spec.lua +++ b/spec/unit/readerbookmark_spec.lua @@ -4,6 +4,7 @@ describe("ReaderBookmark module", function() setup(function() require("commonrequire") + disable_plugins() DataStorage = require("datastorage") DocSettings = require("docsettings") DocumentRegistry = require("document/documentregistry") diff --git a/spec/unit/readerdictionary_spec.lua b/spec/unit/readerdictionary_spec.lua index 022ab129b..edff228b7 100644 --- a/spec/unit/readerdictionary_spec.lua +++ b/spec/unit/readerdictionary_spec.lua @@ -3,6 +3,8 @@ describe("Readerdictionary module", function() setup(function() require("commonrequire") + disable_plugins() + load_plugin("japanese.koplugin") DataStorage = require("datastorage") DocumentRegistry = require("document/documentregistry") ReaderUI = require("apps/reader/readerui") diff --git a/spec/unit/readerfooter_spec.lua b/spec/unit/readerfooter_spec.lua index 05ace680b..88250605a 100644 --- a/spec/unit/readerfooter_spec.lua +++ b/spec/unit/readerfooter_spec.lua @@ -10,6 +10,7 @@ describe("Readerfooter module", function() setup(function() require("commonrequire") + disable_plugins() local Device = require("device") -- Override powerd for running tests on devices with batteries. Device.powerd.isChargingHW = function() return false end diff --git a/spec/unit/readerhighlight_spec.lua b/spec/unit/readerhighlight_spec.lua index d97452e4d..ae08436fc 100644 --- a/spec/unit/readerhighlight_spec.lua +++ b/spec/unit/readerhighlight_spec.lua @@ -4,6 +4,7 @@ describe("Readerhighlight module", function() setup(function() require("commonrequire") + disable_plugins() require("document/canvascontext"):init(require("device")) DataStorage = require("datastorage") DocumentRegistry = require("document/documentregistry") @@ -12,6 +13,7 @@ describe("Readerhighlight module", function() ReaderUI = require("apps/reader/readerui") Screen = require("device").screen UIManager = require("ui/uimanager") + load_plugin('japanese.koplugin') sample_pdf = DataStorage:getDataDir() .. "/readerhighlight.pdf" require("ffi/util").copyFile("spec/front/unit/data/sample.pdf", sample_pdf) end) diff --git a/spec/unit/readerlink_spec.lua b/spec/unit/readerlink_spec.lua index 58760ba4e..408649c99 100644 --- a/spec/unit/readerlink_spec.lua +++ b/spec/unit/readerlink_spec.lua @@ -3,6 +3,7 @@ describe("ReaderLink module", function() setup(function() require("commonrequire") + disable_plugins() require("document/canvascontext"):init(require("device")) DocumentRegistry = require("document/documentregistry") Event = require("ui/event") diff --git a/spec/unit/readerpaging_spec.lua b/spec/unit/readerpaging_spec.lua index 0d61e9f71..21539bf11 100644 --- a/spec/unit/readerpaging_spec.lua +++ b/spec/unit/readerpaging_spec.lua @@ -5,6 +5,7 @@ describe("Readerpaging module", function() setup(function() require("commonrequire") + disable_plugins() UIManager = require("ui/uimanager") stub(UIManager, "getNthTopWidget") UIManager.getNthTopWidget.returns({}) diff --git a/spec/unit/readerrolling_spec.lua b/spec/unit/readerrolling_spec.lua index 8843fd6f1..3a60e7c05 100644 --- a/spec/unit/readerrolling_spec.lua +++ b/spec/unit/readerrolling_spec.lua @@ -4,6 +4,7 @@ describe("Readerrolling module", function() setup(function() require("commonrequire") + disable_plugins() UIManager = require("ui/uimanager") stub(UIManager, "getNthTopWidget") UIManager.getNthTopWidget.returns({}) diff --git a/spec/unit/readersearch_spec.lua b/spec/unit/readersearch_spec.lua index bf267e68f..d9524350e 100644 --- a/spec/unit/readersearch_spec.lua +++ b/spec/unit/readersearch_spec.lua @@ -5,6 +5,7 @@ describe("Readersearch module", function() setup(function() require("commonrequire") + disable_plugins() DocumentRegistry = require("document/documentregistry") ReaderUI = require("apps/reader/readerui") Screen = require("device").screen diff --git a/spec/unit/readertoc_spec.lua b/spec/unit/readertoc_spec.lua index 6cb51c2c9..2d4cb51b8 100644 --- a/spec/unit/readertoc_spec.lua +++ b/spec/unit/readertoc_spec.lua @@ -4,6 +4,7 @@ describe("Readertoc module", function() setup(function() require("commonrequire") + disable_plugins() DocumentRegistry = require("document/documentregistry") ReaderUI = require("apps/reader/readerui") Screen = require("device").screen diff --git a/spec/unit/readerui_spec.lua b/spec/unit/readerui_spec.lua index ccb7e0077..339911545 100644 --- a/spec/unit/readerui_spec.lua +++ b/spec/unit/readerui_spec.lua @@ -4,6 +4,7 @@ describe("Readerui module", function() local readerui setup(function() require("commonrequire") + disable_plugins() DocumentRegistry = require("document/documentregistry") ReaderUI = require("apps/reader/readerui") DocSettings = require("docsettings") diff --git a/spec/unit/readerview_spec.lua b/spec/unit/readerview_spec.lua index 63c131ce4..cb89f165a 100644 --- a/spec/unit/readerview_spec.lua +++ b/spec/unit/readerview_spec.lua @@ -3,6 +3,7 @@ describe("Readerview module", function() setup(function() require("commonrequire") + disable_plugins() require("document/canvascontext"):init(require("device")) DocumentRegistry = require("document/documentregistry") Blitbuffer = require("ffi/blitbuffer") diff --git a/spec/unit/screenshoter_spec.lua b/spec/unit/screenshoter_spec.lua index 694f4bd2e..668ad1e69 100644 --- a/spec/unit/screenshoter_spec.lua +++ b/spec/unit/screenshoter_spec.lua @@ -4,6 +4,7 @@ describe("ReaderScreenshot module", function() local readerui setup(function() require("commonrequire") + disable_plugins() DataStorage = require("datastorage") DocumentRegistry = require("document/documentregistry") ReaderUI = require("apps/reader/readerui") diff --git a/spec/unit/wakeupmgr_spec.lua b/spec/unit/wakeupmgr_spec.lua index f84cedc44..93687da19 100644 --- a/spec/unit/wakeupmgr_spec.lua +++ b/spec/unit/wakeupmgr_spec.lua @@ -5,6 +5,7 @@ describe("WakeupMgr", function() setup(function() require("commonrequire") + disable_plugins() RTC = require("ffi/rtc") WakeupMgr = require("device/wakeupmgr"):new{} -- We could theoretically test this by running the tests as root locally.