From d0b4fa266541a15f39ea5ba9480953c8918f2365 Mon Sep 17 00:00:00 2001 From: chrox Date: Tue, 7 Oct 2014 13:06:06 +0800 Subject: [PATCH] refactoring unit testsuite --- .busted | 1 + spec/unit/benchmark.lua | 18 +----------------- spec/unit/cache_spec.lua | 19 +------------------ spec/unit/commonrequire.lua | 23 +++++++++++++++++++++++ spec/unit/document_spec.lua | 17 +---------------- spec/unit/opdsparser_spec.lua | 5 ++--- spec/unit/readerui_spec.lua | 28 ++++++++++++++++++++++++++++ 7 files changed, 57 insertions(+), 54 deletions(-) create mode 100644 spec/unit/commonrequire.lua create mode 100644 spec/unit/readerui_spec.lua diff --git a/.busted b/.busted index 4343ab3d9..65ee58b0d 100644 --- a/.busted +++ b/.busted @@ -2,5 +2,6 @@ return { default = { verbose = true, ROOT = "spec/front/unit", + lpath = "spec/front/unit/?.lua", }, } diff --git a/spec/unit/benchmark.lua b/spec/unit/benchmark.lua index 23ab4b9de..f468d8e30 100644 --- a/spec/unit/benchmark.lua +++ b/spec/unit/benchmark.lua @@ -1,22 +1,6 @@ -require "defaults" -package.path = "?.lua;common/?.lua;frontend/?.lua" -package.cpath = "?.so;common/?.so;/usr/lib/lua/?.so" - --- global einkfb for Screen -einkfb = require("ffi/framebuffer") --- do not show SDL window -einkfb.dummy = true -Blitbuffer = require("ffi/blitbuffer") - -local Screen = require("ui/screen") -local DocSettings = require("docsettings") -G_reader_settings = DocSettings:open(".reader") +require("commonrequire") local DocumentRegistry = require("document/documentregistry") local util = require("ffi/util") -local DEBUG = require("dbg") - --- screen should be inited for crengine -Screen:init() function logDuration(filename, pageno, dur) local file = io.open(filename, "a+") diff --git a/spec/unit/cache_spec.lua b/spec/unit/cache_spec.lua index d6f909173..2161d1703 100644 --- a/spec/unit/cache_spec.lua +++ b/spec/unit/cache_spec.lua @@ -1,24 +1,7 @@ -require "defaults" -package.path = "?.lua;common/?.lua;frontend/?.lua;" .. package.path -package.cpath = "?.so;common/?.so;/usr/lib/lua/?.so;" .. package.cpath - -require "libs/libkoreader-lfs" --- global einkfb for Screen -einkfb = require("ffi/framebuffer") --- do not show SDL window -einkfb.dummy = true -Blitbuffer = require("ffi/blitbuffer") - -local Screen = require("ui/screen") -local DocSettings = require("docsettings") -G_reader_settings = DocSettings:open(".reader") +require("commonrequire") local DocumentRegistry = require("document/documentregistry") local Cache = require("cache") local DEBUG = require("dbg") ---DEBUG:turnOn() - --- screen should be inited for crengine -Screen:init() describe("Cache module", function() local sample_pdf = "spec/front/unit/data/sample.pdf" diff --git a/spec/unit/commonrequire.lua b/spec/unit/commonrequire.lua new file mode 100644 index 000000000..7e1637612 --- /dev/null +++ b/spec/unit/commonrequire.lua @@ -0,0 +1,23 @@ +require "defaults" +package.path = "?.lua;common/?.lua;frontend/?.lua;" .. package.path +package.cpath = "?.so;common/?.so;/usr/lib/lua/?.so;" .. package.cpath + +-- global reader settings +local DocSettings = require("docsettings") +G_reader_settings = DocSettings:open(".reader") + +-- global einkfb for Screen (do not show SDL window) +einkfb = require("ffi/framebuffer") +einkfb.dummy = true + +-- init output device +local Screen = require("ui/screen") +Screen:init() + +-- init input device (do not show SDL window) +local Input = require("ui/input") +Input.dummy = true + +-- turn on debug +local DEBUG = require("dbg") +DEBUG:turnOn() diff --git a/spec/unit/document_spec.lua b/spec/unit/document_spec.lua index 53c454de3..b2b0383e2 100644 --- a/spec/unit/document_spec.lua +++ b/spec/unit/document_spec.lua @@ -1,20 +1,5 @@ -require "defaults" -package.path = "?.lua;common/?.lua;frontend/?.lua;" .. package.path -package.cpath = "?.so;common/?.so;/usr/lib/lua/?.so;" .. package.cpath - --- global einkfb for Screen -einkfb = require("ffi/framebuffer") --- do not show SDL window -einkfb.dummy = true - -local Screen = require("ui/screen") -local DocSettings = require("docsettings") -G_reader_settings = DocSettings:open(".reader") +require("commonrequire") local DocumentRegistry = require("document/documentregistry") -local DEBUG = require("dbg") - --- screen should be inited for crengine -Screen:init() describe("PDF document module", function() local sample_pdf = "spec/front/unit/data/tall.pdf" diff --git a/spec/unit/opdsparser_spec.lua b/spec/unit/opdsparser_spec.lua index ef4fca8f8..399490ba5 100644 --- a/spec/unit/opdsparser_spec.lua +++ b/spec/unit/opdsparser_spec.lua @@ -155,16 +155,15 @@ Title: ]] -package.path = "?.lua;common/?.lua;frontend/?.lua;" .. package.path - +require("commonrequire") local OPDSParser = require("ui/opdsparser") local DEBUG = require("dbg") -DEBUG:turnOn() describe("OPDS parser module #nocov", function() it("should parse OPDS navigation catalog", function() local catalog = OPDSParser:parse(navigation_sample) local feed = catalog.feed + --DEBUG(feed) assert.truthy(feed) assert.are.same(feed.title, "Project Gutenberg") local entries = feed.entry diff --git a/spec/unit/readerui_spec.lua b/spec/unit/readerui_spec.lua new file mode 100644 index 000000000..241797d20 --- /dev/null +++ b/spec/unit/readerui_spec.lua @@ -0,0 +1,28 @@ +require("commonrequire") +local DocumentRegistry = require("document/documentregistry") +local ReaderUI = require("apps/reader/readerui") +local DocSettings = require("docsettings") +local DEBUG = require("dbg") + +describe("Readerui module", function() + local sample_epub = "spec/front/unit/data/leaves.epub" + local readerui = ReaderUI:new{ + document = DocumentRegistry:openDocument(sample_epub), + } + it("should save settings", function() + -- remove history settings and sidecar settings + DocSettings:open(sample_epub):clear() + local doc_settings = DocSettings:open(sample_epub) + assert.are.same(doc_settings.data, {}) + readerui:saveSettings() + assert.are_not.same(readerui.doc_settings.data, {}) + doc_settings = DocSettings:open(sample_epub) + assert.truthy(doc_settings.data.last_xpointer) + assert.are.same(doc_settings.data.last_xpointer, + readerui.doc_settings.data.last_xpointer) + end) + it("should close document", function() + readerui:closeDocument() + assert(readerui.document == nil) + end) +end)