mirror of
https://github.com/koreader/koreader
synced 2024-11-11 19:11:14 +00:00
f7d538b108
* landscape FM / Refactor rotation refactor and simplify the orientation handling code. the user generally cares about the rotation (what direction the device is facing) and not about if koreader is displaying in portrait or landscape mode * bump base update luasocket, libjpeg-turbo, curl add logging to evernote-sdk-lua update framebuffer for proper rotation
104 lines
4.0 KiB
Lua
104 lines
4.0 KiB
Lua
describe("Readertoc module", function()
|
|
local DocumentRegistry, ReaderUI, Screen, DEBUG
|
|
local readerui, toc, toc_max_depth, title
|
|
|
|
setup(function()
|
|
require("commonrequire")
|
|
DocumentRegistry = require("document/documentregistry")
|
|
ReaderUI = require("apps/reader/readerui")
|
|
Screen = require("device").screen
|
|
DEBUG = require("dbg")
|
|
|
|
local sample_epub = "spec/front/unit/data/juliet.epub"
|
|
readerui = ReaderUI:new{
|
|
dimen = Screen:getSize(),
|
|
document = DocumentRegistry:openDocument(sample_epub),
|
|
}
|
|
-- reset book to first page
|
|
readerui.rolling:onGotoPage(0)
|
|
toc = readerui.toc
|
|
end)
|
|
|
|
it("should get max toc depth", function()
|
|
toc_max_depth = toc:getMaxDepth()
|
|
assert.are.same(2, toc_max_depth)
|
|
end)
|
|
it("should get toc title from page", function()
|
|
title = toc:getTocTitleByPage(60)
|
|
DEBUG("toc", toc.toc)
|
|
assert.is.equal("SCENE V. A hall in Capulet's house.", title)
|
|
title = toc:getTocTitleByPage(187)
|
|
assert.is.equal("SCENE I. Friar Laurence's cell.", title)
|
|
end)
|
|
describe("getTocTicks API", function()
|
|
local ticks_level_0 = nil
|
|
it("should get ticks of level 0", function()
|
|
ticks_level_0 = toc:getTocTicks(0)
|
|
--DEBUG("ticks", ticks_level_0)
|
|
assert.are.same(28, #ticks_level_0)
|
|
end)
|
|
local ticks_level_1 = nil
|
|
it("should get ticks of level 1", function()
|
|
ticks_level_1 = toc:getTocTicks(1)
|
|
assert.are.same(7, #ticks_level_1)
|
|
end)
|
|
local ticks_level_2 = nil
|
|
it("should get ticks of level 2", function()
|
|
ticks_level_2 = toc:getTocTicks(2)
|
|
assert.are.same(26, #ticks_level_2)
|
|
end)
|
|
local ticks_level_m1 = nil
|
|
it("should get ticks of level -1", function()
|
|
ticks_level_m1 = toc:getTocTicks(-1)
|
|
assert.are.same(26, #ticks_level_m1)
|
|
end)
|
|
it("should get the same ticks of level -1 and level 2", function()
|
|
if toc_max_depth == 2 then
|
|
assert.are.same(ticks_level_2, ticks_level_m1)
|
|
end
|
|
end)
|
|
end)
|
|
it("should get page of next chapter", function()
|
|
assert.truthy(toc:getNextChapter(10, 0) > 10)
|
|
assert.truthy(toc:getNextChapter(100, 0) > 100)
|
|
assert.are.same(nil, toc:getNextChapter(290, 0))
|
|
end)
|
|
it("should get page of previous chapter", function()
|
|
assert.truthy(toc:getPreviousChapter(10, 0) < 10)
|
|
assert.truthy(toc:getPreviousChapter(100, 0) < 100)
|
|
assert.truthy(toc:getPreviousChapter(200, 0) < 200)
|
|
end)
|
|
it("should get page left of chapter", function()
|
|
assert.truthy(toc:getChapterPagesLeft(10, 0) > 10)
|
|
assert.truthy(toc:getChapterPagesLeft(95, 0) > 10)
|
|
assert.are.same(nil, toc:getChapterPagesLeft(290, 0))
|
|
end)
|
|
it("should get page done of chapter", function()
|
|
assert.truthy(toc:getChapterPagesDone(11, 0) < 5)
|
|
assert.truthy(toc:getChapterPagesDone(88, 0) < 5)
|
|
assert.truthy(toc:getChapterPagesDone(290, 0) > 10)
|
|
end)
|
|
describe("collasible TOC", function()
|
|
it("should collapse the secondary toc nodes by default", function()
|
|
toc:onShowToc()
|
|
assert.are.same(7, #toc.collapsed_toc)
|
|
end)
|
|
it("should not expand toc nodes that have no child nodes", function()
|
|
toc:expandToc(2)
|
|
assert.are.same(7, #toc.collapsed_toc)
|
|
end)
|
|
it("should expand toc nodes that have child nodes", function()
|
|
toc:expandToc(3)
|
|
assert.are.same(13, #toc.collapsed_toc)
|
|
toc:expandToc(18)
|
|
assert.are.same(18, #toc.collapsed_toc)
|
|
end)
|
|
it("should collapse toc nodes that have been expanded", function()
|
|
toc:collapseToc(3)
|
|
assert.are.same(12, #toc.collapsed_toc)
|
|
toc:collapseToc(18)
|
|
assert.are.same(7, #toc.collapsed_toc)
|
|
end)
|
|
end)
|
|
end)
|