summaryrefslogtreecommitdiff
path: root/lib/epub.js/test/book.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/epub.js/test/book.js')
-rw-r--r--lib/epub.js/test/book.js66
1 files changed, 66 insertions, 0 deletions
diff --git a/lib/epub.js/test/book.js b/lib/epub.js/test/book.js
new file mode 100644
index 0000000..4575fb2
--- /dev/null
+++ b/lib/epub.js/test/book.js
@@ -0,0 +1,66 @@
+import Book from '../src/book';
+import assert from 'assert';
+
+describe('Book', function() {
+
+ describe('Unarchived', function() {
+ var book = new Book("/fixtures/alice/OPS/package.opf");
+ it('should open a epub', async function() {
+ await book.opened
+ assert.equal(book.isOpen, true, "book is opened");
+ assert.equal( book.url.toString(), "http://localhost:9876/fixtures/alice/OPS/package.opf", "book url is passed to new Book" );
+ });
+ it('should have a local coverUrl', async function() {
+ assert.equal( await book.coverUrl(), "http://localhost:9876/fixtures/alice/OPS/images/cover_th.jpg", "cover url is available" );
+ });
+ });
+
+ describe('Archived epub', function() {
+ var book = new Book("/fixtures/alice.epub");
+
+ it('should open a archived epub', async function() {
+ await book.opened
+ assert.equal(book.isOpen, true, "book is opened");
+ assert(book.archive, "book is unarchived");
+ });
+ it('should have a blob coverUrl', async function() {
+ let coverUrl = await book.coverUrl()
+ assert( /^blob:http:\/\/localhost:9876\/[^\/]+$/.test(coverUrl), "cover url is available and a blob: url" );
+ });
+ });
+
+ describe('Archived epub in array buffer without options', function() {
+ let book;
+
+ before(async function() {
+ const response = await fetch("/fixtures/alice.epub");
+ const buffer = await response.arrayBuffer()
+ book = new Book(buffer)
+ })
+
+ it('should open a archived epub', async function() {
+ await book.opened
+ assert.equal(book.isOpen, true, "book is opened");
+ assert(book.archive, "book is unarchived");
+ });
+
+ it('should have a blob coverUrl', async function() {
+ let coverUrl = await book.coverUrl()
+ assert( /^blob:http:\/\/localhost:9876\/[^\/]+$/.test(coverUrl), "cover url is available and a blob: url" );
+ });
+ });
+
+ describe('Archived epub without cover', function() {
+ var book = new Book("/fixtures/alice_without_cover.epub");
+
+ it('should open a archived epub', async function() {
+ await book.opened
+ assert.equal(book.isOpen, true, "book is opened");
+ assert(book.archive, "book is unarchived");
+ });
+ it('should have a empty coverUrl', async function() {
+ let coverUrl = await book.coverUrl()
+ assert.equal(coverUrl, null, "cover url should be null" );
+ });
+ });
+});