2017-01-23 06:54:14 -08:00
|
|
|
-- turn off debug by default and set log level to warning
|
|
|
|
|
require("dbg"):turnOff()
|
|
|
|
|
local logger = require("logger")
|
|
|
|
|
logger:setLevel(logger.levels.warn)
|
|
|
|
|
|
2016-03-12 13:59:49 -08:00
|
|
|
local DataStorage = require("datastorage")
|
2023-03-02 08:39:09 +02:00
|
|
|
require("libs/libkoreader-lfs").mkdir(DataStorage:getHistoryDir()) -- for legacy history tests
|
|
|
|
|
|
|
|
|
|
-- global defaults
|
2022-09-28 01:10:50 +02:00
|
|
|
os.remove(DataStorage:getDataDir() .. "/defaults.tests.lua")
|
|
|
|
|
os.remove(DataStorage:getDataDir() .. "/defaults.tests.lua.old")
|
|
|
|
|
G_defaults = require("luadefaults"):open(DataStorage:getDataDir() .. "/defaults.tests.lua")
|
|
|
|
|
|
|
|
|
|
-- global reader settings
|
2024-05-09 02:12:02 +02:00
|
|
|
os.remove(DataStorage:getDataDir() .. "/settings.tests.lua")
|
|
|
|
|
os.remove(DataStorage:getDataDir() .. "/settings.tests.lua.old")
|
|
|
|
|
G_reader_settings = require("luasettings"):open(DataStorage:getDataDir() .. "/settings.tests.lua")
|
2024-11-24 23:05:35 +01:00
|
|
|
G_reader_settings:saveSetting("document_metadata_folder", "dir")
|
2014-10-07 13:06:06 +08:00
|
|
|
|
|
|
|
|
-- global einkfb for Screen (do not show SDL window)
|
2017-08-08 22:35:40 +02:00
|
|
|
einkfb = require("ffi/framebuffer") --luacheck: ignore
|
|
|
|
|
einkfb.dummy = true --luacheck: ignore
|
2014-10-07 13:06:06 +08:00
|
|
|
|
2019-02-10 17:07:50 -08:00
|
|
|
local Device = require("device")
|
|
|
|
|
|
2014-10-07 13:06:06 +08:00
|
|
|
-- init output device
|
2019-02-10 17:07:50 -08:00
|
|
|
local Screen = Device.screen
|
2014-10-07 13:06:06 +08:00
|
|
|
Screen:init()
|
|
|
|
|
|
2019-04-23 00:21:23 -07:00
|
|
|
local CanvasContext = require("document/canvascontext")
|
|
|
|
|
CanvasContext:init(Device)
|
|
|
|
|
|
2014-10-07 13:06:06 +08:00
|
|
|
-- init input device (do not show SDL window)
|
2019-02-10 17:07:50 -08:00
|
|
|
local Input = Device.input
|
2014-10-07 13:06:06 +08:00
|
|
|
Input.dummy = true
|
|
|
|
|
|
2017-06-14 10:32:16 -07:00
|
|
|
package.unload = function(module)
|
|
|
|
|
if type(module) ~= "string" then return false end
|
|
|
|
|
package.loaded[module] = nil
|
|
|
|
|
_G[module] = nil
|
|
|
|
|
return true
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
package.replace = function(name, module)
|
|
|
|
|
if type(name) ~= "string" then return false end
|
|
|
|
|
assert(package.unload(name))
|
|
|
|
|
package.loaded[name] = module
|
|
|
|
|
return true
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
package.reload = function(name)
|
|
|
|
|
if type(name) ~= "string" then return false end
|
|
|
|
|
assert(package.unload(name))
|
|
|
|
|
return require(name)
|
|
|
|
|
end
|
2024-12-25 15:46:02 +01:00
|
|
|
|
|
|
|
|
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
|
2024-12-25 15:46:06 +01:00
|
|
|
|
|
|
|
|
function fastforward_ui_events()
|
|
|
|
|
local UIManager = require("ui/uimanager")
|
|
|
|
|
-- Fast forward all scheduled tasks.
|
|
|
|
|
UIManager:shiftScheduledTasksBy(-1e9)
|
|
|
|
|
-- Fix hang when running tests with our docker base image SDL.
|
|
|
|
|
UIManager:setInputTimeout(0)
|
|
|
|
|
-- And run the UI manager's input loop once.
|
|
|
|
|
UIManager:handleInput()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function screenshot(screen, filename)
|
|
|
|
|
screen:shot(DataStorage:getDataDir() .. "/screenshots/" .. filename)
|
|
|
|
|
end
|