test(chore): remove side effects

pull/2522/head
Qingping Hou 7 years ago
parent 0bbb4bbc16
commit 0b9c9d6ddb

@ -1,6 +1,8 @@
require("commonrequire")
describe("eink optimization setting", function()
setup(function()
require("commonrequire")
end)
it("should be correctly loaded", function()
G_reader_settings:saveSetting("eink", true)
assert.Equals(require("device").screen.eink, true)

@ -1,9 +1,11 @@
require("commonrequire")
local GestureRange = require("ui/gesturerange")
local Geom = require("ui/geometry")
describe("gesturerange module", function()
local GestureRange, Geom
setup(function()
require("commonrequire")
GestureRange = require("ui/gesturerange")
Geom = require("ui/geometry")
end)
it("should match tap event within range", function()
local g = GestureRange:new{
ges = "tap",

@ -1,12 +1,13 @@
require("commonrequire")
local UIManager = require("ui/uimanager")
local DEBUG = require("dbg")
--DEBUG:turnOn()
-- set true to test httpclient
DUSE_TURBO_LIB = false
describe("HTTP client module #notest #nocov", function()
local UIManager
setup(function()
require("commonrequire")
UIManager = require("ui/uimanager")
end)
local requests = 0
local function response_callback(res)
requests = requests - 1
@ -14,6 +15,7 @@ describe("HTTP client module #notest #nocov", function()
assert(not res.error, "error occurs")
assert(res.body)
end
it("should get response from async GET request", function()
local HTTPClient = require("httpclient")
local async_client = HTTPClient:new()

@ -1,9 +1,3 @@
require("commonrequire")
local UIManager = require("ui/uimanager")
local DEBUG = require("dbg")
local md5 = require("ffi/MD5")
--DEBUG:turnOn()
local service = [[
{
"base_url" : "https://vislab.bjmu.edu.cn:7200",
@ -57,26 +51,36 @@ local service = [[
]]
describe("KOSync modules #notest #nocov", function()
local HTTPClient = require("httpclient")
local Spore = require("Spore")
local client = Spore.new_from_string(service)
package.loaded['Spore.Middleware.GinClient'] = {}
require('Spore.Middleware.GinClient').call = function(self, req)
req.headers['accept'] = "application/vnd.koreader.v1+json"
end
package.loaded['Spore.Middleware.KOSyncAuth'] = {}
require('Spore.Middleware.KOSyncAuth').call = function(args, req)
req.headers['x-auth-user'] = args.username
req.headers['x-auth-key'] = args.userkey
end
-- password should be hashed before submitting to server
local username, password = "koreader", md5.sum("koreader")
-- fake progress data
local doc, percentage, progress, device =
"41cce710f34e5ec21315e19c99821415", -- fast digest of the document
0.356, -- percentage of the progress
"69", -- page number or xpointer
"my kpw" -- device name
local UIManager, logger, md5, client
local username, password, doc, percentage, progress, device
setup(function()
require("commonrequire")
UIManager = require("ui/uimanager")
logger = require("logger")
md5 = require("ffi/MD5")
local HTTPClient = require("httpclient")
local Spore = require("Spore")
client = Spore.new_from_string(service)
package.loaded['Spore.Middleware.GinClient'] = {}
require('Spore.Middleware.GinClient').call = function(self, req)
req.headers['accept'] = "application/vnd.koreader.v1+json"
end
package.loaded['Spore.Middleware.KOSyncAuth'] = {}
require('Spore.Middleware.KOSyncAuth').call = function(args, req)
req.headers['x-auth-user'] = args.username
req.headers['x-auth-key'] = args.userkey
end
-- password should be hashed before submitting to server
username, password = "koreader", md5.sum("koreader")
-- fake progress data
doc, percentage, progress, device =
"41cce710f34e5ec21315e19c99821415", -- fast digest of the document
0.356, -- percentage of the progress
"69", -- page number or xpointer
"my kpw" -- device name
end)
it("should create new user", function()
client:reset_middlewares()
client:enable('Format.JSON')
@ -89,14 +93,15 @@ describe("KOSync modules #notest #nocov", function()
end)
if ok then
if res.status == 200 then
DEBUG("register successful to ", res.body.username)
logger.dbg("register successful to ", res.body.username)
elseif res.status == 402 then
DEBUG("register unsuccessful: ", res.body.message)
logger.dbg("register unsuccessful: ", res.body.message)
end
else
DEBUG("Please retry later", res)
logger.dbg("Please retry later", res)
end
end)
it("should authorize user", function()
client:reset_middlewares()
client:enable('Format.JSON')
@ -112,12 +117,13 @@ describe("KOSync modules #notest #nocov", function()
if res.status == 200 then
assert.are.same("OK", res.body.authorized)
else
DEBUG(res.body)
logger.dbg(res.body)
end
else
DEBUG("Please retry later", res)
logger.dbg("Please retry later", res)
end
end)
it("should update progress", function()
client:reset_middlewares()
client:enable('Format.JSON')
@ -141,12 +147,13 @@ describe("KOSync modules #notest #nocov", function()
assert.are.same(percentage, result.percentage)
assert.are.same(device, result.device)
else
DEBUG(res.body.message)
logger.dbg(res.body.message)
end
else
DEBUG("Please retry later", res)
logger.dbg("Please retry later", res)
end
end)
it("should get progress", function()
client:reset_middlewares()
client:enable('Format.JSON')
@ -167,10 +174,10 @@ describe("KOSync modules #notest #nocov", function()
assert.are.same(percentage, result.percentage)
assert.are.same(device, result.device)
else
DEBUG(res.body.message)
logger.dbg(res.body.message)
end
else
DEBUG("Please retry later", res)
logger.dbg("Please retry later", res)
end
end)

@ -1,4 +1,3 @@
local navigation_sample = [[
<?xml version="1.0" encoding="utf-8"?>
<!--
@ -227,11 +226,15 @@ local facet_sample = [[
</feed>
]]
require("commonrequire")
local OPDSParser = require("ui/opdsparser")
local DEBUG = require("dbg")
describe("OPDS module #nocov", function()
local OPDSParser, OPDSBrowser
setup(function()
require("commonrequire")
OPDSParser = require("ui/opdsparser")
OPDSBrowser = require("ui/widget/opdsbrowser")
end)
describe("OPDS parser module", function()
it("should parse OPDS navigation catalog", function()
local catalog = OPDSParser:parse(navigation_sample)
@ -260,14 +263,12 @@ describe("OPDS module #nocov", function()
assert.are.same(entry.link[1].href, "//www.gutenberg.org/ebooks/42474.epub.images")
end)
end)
describe("OPDS browser module", function()
local OPDSBrowser = require("ui/widget/opdsbrowser")
describe("OPDS browser module", function()
describe("URL generation", function()
it("should generate URL on rel=subsection", function()
local catalog = OPDSParser:parse(navigation_sample)
local item_table = OPDSBrowser:genItemTableFromCatalog(catalog, "http://m.gutenberg.org/ebooks.opds/?format=opds")
--DEBUG(item_table)
assert.truthy(item_table)
assert.are.same(item_table[1].title, "Popular")
@ -276,7 +277,6 @@ describe("OPDS module #nocov", function()
it("should generate URL on rel=popular and rel=new", function()
local catalog = OPDSParser:parse(popular_new_sample)
local item_table = OPDSBrowser:genItemTableFromCatalog(catalog, "http://www.feedbooks.com/publicdomain/catalog.atom")
--DEBUG(item_table)
assert.truthy(item_table)
assert.are.same(item_table[1].title, "Most Popular")
@ -287,7 +287,6 @@ describe("OPDS module #nocov", function()
it("should use the main URL for faceted links as long as faceted links aren't properly supported", function()
local catalog = OPDSParser:parse(facet_sample)
local item_table = OPDSBrowser:genItemTableFromCatalog(catalog, "http://flibusta.net/opds")
--DEBUG(item_table)
assert.truthy(item_table)
assert.are.same(item_table[1].url, "http://flibusta.net/opds/author/75357")
@ -297,7 +296,6 @@ describe("OPDS module #nocov", function()
it("should not fill item table incorrectly with thumbnail or image URL", function()
local catalog = OPDSParser:parse(facet_sample)
local item_table = OPDSBrowser:genItemTableFromCatalog(catalog, "http://flibusta.net/opds")
--DEBUG(item_table)
assert.truthy(item_table)
assert.are_not.same(item_table[1].image, "http://flibusta.net/opds/author/75357")

@ -1,9 +1,3 @@
require("commonrequire")
local UIManager = require("ui/uimanager")
local HTTPClient = require("httpclient")
local DEBUG = require("dbg")
--DEBUG:turnOn()
local service = [[
{
"base_url" : "http://httpbin.org",
@ -38,14 +32,20 @@ local service = [[
]]
describe("Lua Spore modules #notest #nocov", function()
local Spore = require("Spore")
local client = Spore.new_from_string(service)
client:enable('Format.JSON')
local Spore, client
setup(function()
require("commonrequire")
Spore = require("Spore")
client = Spore.new_from_string(service)
client:enable('Format.JSON')
end)
it("should complete GET request", function()
local info = {user = 'john', age = '25'}
local res = client:get_info(info)
assert.are.same(res.body.args, info)
end)
it("should complete POST request", function()
local info = {user = 'sam', age = '26'}
local res = client:post_info(info)
@ -54,34 +54,42 @@ describe("Lua Spore modules #notest #nocov", function()
end)
describe("Lua Spore modules with async http request #notest #nocov", function()
local Spore = require("Spore")
local client = Spore.new_from_string(service)
local async_http_client = HTTPClient:new()
package.loaded['Spore.Middleware.AsyncHTTP'] = {}
require('Spore.Middleware.AsyncHTTP').call = function(args, req)
req:finalize()
local result
async_http_client:request({
url = req.url,
method = req.method,
body = req.env.spore.payload,
on_headers = function(headers)
for header, value in pairs(req.headers) do
if type(header) == 'string' then
headers:add(header, value)
local client, UIManager
setup(function()
require("commonrequire")
UIManager = require("ui/uimanager")
local HTTPClient = require("httpclient")
local Spore = require("Spore")
client = Spore.new_from_string(service)
local async_http_client = HTTPClient:new()
package.loaded['Spore.Middleware.AsyncHTTP'] = {}
require('Spore.Middleware.AsyncHTTP').call = function(args, req)
req:finalize()
local result
async_http_client:request({
url = req.url,
method = req.method,
body = req.env.spore.payload,
on_headers = function(headers)
for header, value in pairs(req.headers) do
if type(header) == 'string' then
headers:add(header, value)
end
end
end
end,
}, function(res)
result = res
-- Turbo HTTP client uses code instead of status
-- change to status so that Spore can understand
result.status = res.code
coroutine.resume(args.thread)
UIManager.INPUT_TIMEOUT = 100 -- no need in production
end)
return coroutine.create(function() coroutine.yield(result) end)
end
end,
}, function(res)
result = res
-- Turbo HTTP client uses code instead of status
-- change to status so that Spore can understand
result.status = res.code
coroutine.resume(args.thread)
UIManager.INPUT_TIMEOUT = 100 -- no need in production
end)
return coroutine.create(function() coroutine.yield(result) end)
end
end)
it("should complete GET request", function()
UIManager:quit()
local co = coroutine.create(function()
@ -96,6 +104,7 @@ describe("Lua Spore modules with async http request #notest #nocov", function()
coroutine.resume(co)
UIManager:runForever()
end)
it("should complete POST request", function()
UIManager:quit()
local co = coroutine.create(function()

Loading…
Cancel
Save