mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
* Enable before_wifi_action & after_wifi_action on hasWifiToggle platforms (which is basically all of 'em except naked SDL). * Decouple restoreWifiAsync from hasWifiManger, because we can do that on other platforms (namely, Kindle. Probably PB, too, but WiFi is already a mess there, and I can't test it). * Implement restoreWifiAsync on Kindle. * Properly flag rM as hasWifiManager & hasFastWifiStatusQuery, because it is actually both of those (it uses our wpa_supplicant backend). * Update the KOSync checks to take these changes into account, to properly disable auto_sync if necessary. * Really made the Network* event signaling consistent. For realz this time. * In an effort to make the whole beforeWifiAction framework somewhat usable there, we now assume connectivity is always available on !hasWifiToggle platforms...
82 lines
2.7 KiB
Lua
82 lines
2.7 KiB
Lua
describe("network_manager module", function()
|
|
local Device
|
|
local turn_on_wifi_called
|
|
local turn_off_wifi_called
|
|
local obtain_ip_called
|
|
local release_ip_called
|
|
|
|
local function clearState()
|
|
G_reader_settings:saveSetting("auto_restore_wifi", true)
|
|
turn_on_wifi_called = 0
|
|
turn_off_wifi_called = 0
|
|
obtain_ip_called = 0
|
|
release_ip_called = 0
|
|
end
|
|
|
|
setup(function()
|
|
require("commonrequire")
|
|
Device = require("device")
|
|
function Device:initNetworkManager(NetworkMgr)
|
|
function NetworkMgr:turnOnWifi(callback)
|
|
turn_on_wifi_called = turn_on_wifi_called + 1
|
|
if callback then
|
|
callback()
|
|
end
|
|
end
|
|
function NetworkMgr:turnOffWifi(callback)
|
|
turn_off_wifi_called = turn_off_wifi_called + 1
|
|
if callback then
|
|
callback()
|
|
end
|
|
end
|
|
function NetworkMgr:obtainIP(callback)
|
|
obtain_ip_called = obtain_ip_called + 1
|
|
if callback then
|
|
callback()
|
|
end
|
|
end
|
|
function NetworkMgr:releaseIP(callback)
|
|
release_ip_called = release_ip_called + 1
|
|
if callback then
|
|
callback()
|
|
end
|
|
end
|
|
function NetworkMgr:restoreWifiAsync()
|
|
self:turnOnWifi()
|
|
self:obtainIP()
|
|
end
|
|
end
|
|
function Device:hasWifiRestore()
|
|
return true
|
|
end
|
|
end)
|
|
|
|
it("should restore wifi in init if wifi was on", function()
|
|
package.loaded["ui/network/manager"] = nil
|
|
clearState()
|
|
G_reader_settings:saveSetting("wifi_was_on", true)
|
|
local network_manager = require("ui/network/manager") --luacheck: ignore
|
|
assert.is.same(turn_on_wifi_called, 1)
|
|
assert.is.same(turn_off_wifi_called, 0)
|
|
assert.is.same(obtain_ip_called, 1)
|
|
assert.is.same(release_ip_called, 0)
|
|
end)
|
|
|
|
it("should not restore wifi in init if wifi was off", function()
|
|
package.loaded["ui/network/manager"] = nil
|
|
clearState()
|
|
G_reader_settings:saveSetting("wifi_was_on", false)
|
|
local network_manager = require("ui/network/manager") --luacheck: ignore
|
|
assert.is.same(turn_on_wifi_called, 0)
|
|
assert.is.same(turn_off_wifi_called, 0)
|
|
assert.is.same(obtain_ip_called, 0)
|
|
assert.is.same(release_ip_called, 0)
|
|
end)
|
|
|
|
teardown(function()
|
|
function Device:initNetworkManager() end
|
|
function Device:hasWifiRestore() return false end
|
|
package.loaded["ui/network/manager"] = nil
|
|
end)
|
|
end)
|