summaryrefslogtreecommitdiff
path: root/lib/epub.js/test/old/epub.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/epub.js/test/old/epub.js')
-rw-r--r--lib/epub.js/test/old/epub.js371
1 files changed, 371 insertions, 0 deletions
diff --git a/lib/epub.js/test/old/epub.js b/lib/epub.js/test/old/epub.js
new file mode 100644
index 0000000..8723114
--- /dev/null
+++ b/lib/epub.js/test/old/epub.js
@@ -0,0 +1,371 @@
+var domain = window.location.origin;
+
+module('Core');
+
+test("EPUBJS.core.resolveUrl", 1, function() {
+ var a = "http://example.com/fred/chasen/";
+ var b = "/chasen/derf.html";
+
+ var resolved = EPUBJS.core.resolveUrl(a, b);
+
+ equal( resolved, "http://example.com/fred/chasen/derf.html", "resolved" );
+
+});
+
+test("EPUBJS.core.resolveUrl ../", 1, function() {
+ var a = "http://example.com/fred/chasen/";
+ var b = "../derf.html";
+
+ var resolved = EPUBJS.core.resolveUrl(a, b);
+
+ equal( resolved, "http://example.com/fred/derf.html", "resolved" );
+});
+
+
+test("EPUBJS.core.resolveUrl folders", 1, function() {
+ var a = "/fred/chasen/";
+ var b = "/fred/chasen/derf.html";
+
+ var resolved = EPUBJS.core.resolveUrl(a, b);
+
+ equal( resolved, "/fred/chasen/derf.html", "resolved" );
+});
+
+test("EPUBJS.core.resolveUrl ../folders", 1, function() {
+ var a = "/fred/chasen/";
+ var b = "../../derf.html";
+
+ var resolved = EPUBJS.core.resolveUrl(a, b);
+
+ equal( resolved, "/derf.html", "resolved" );
+});
+
+module('Create');
+
+asyncTest("Create new ePub(/path/to/epub/)", 1, function() {
+
+ var book = ePub("../books/moby-dick/");
+ book.opened.then(function(){
+ equal( book.url, "../books/moby-dick/OPS/", "book url is passed to new EPUBJS.Book" );
+ start();
+ });
+
+});
+
+asyncTest("Create new ePub(/path/to/epub/package.opf)", 1, function() {
+
+ var book = ePub("../books/moby-dick/OPS/package.opf");
+ book.opened.then(function(){
+ equal( book.url, domain + "/books/moby-dick/OPS/", "bookPath is passed to new EPUBJS.Book" );
+ start();
+ });
+
+});
+
+asyncTest("Open using ePub(/path/to/epub/package.opf)", 1, function() {
+
+ var book = ePub("../books/moby-dick/OPS/package.opf");
+ book.opened.then(function(){
+ equal( book.packageUrl, "../books/moby-dick/OPS/package.opf", "packageUrl is set" );
+ start();
+ });
+
+});
+
+asyncTest("Open Remote ePub", 1, function() {
+
+ var book = ePub("https://s3.amazonaws.com/moby-dick/");
+ book.opened.then(function(){
+ equal( book.packageUrl, "https://s3.amazonaws.com/moby-dick/OPS/package.opf", "packageUrl is set" );
+ start();
+ });
+
+});
+
+asyncTest("Open Remote ePub from Package", 1, function() {
+
+ var book = ePub("https://s3.amazonaws.com/moby-dick/OPS/package.opf");
+ book.opened.then(function(){
+ equal( book.packageUrl, "https://s3.amazonaws.com/moby-dick/OPS/package.opf", "packageUrl is set" );
+ start();
+ });
+
+});
+
+asyncTest("Find Epub Package", 1, function() {
+
+ var book = ePub("../books/moby-dick/OPS/package.opf");
+ book.opened.then(function(){
+ equal( book.packageUrl, "../books/moby-dick/OPS/package.opf", "packageUrl is set" );
+ start();
+ });
+
+});
+
+module('Parse');
+
+//TODO: add mocked tests for parser
+
+asyncTest("Manifest", 1, function() {
+
+ var book = ePub("../books/moby-dick/OPS/package.opf");
+ book.opened.then(function(){
+ equal( Object.keys(book.package.manifest).length, 152, "Manifest is parsed" );
+ start();
+ });
+
+});
+
+asyncTest("Metadata", 3, function() {
+
+ var book = ePub("../books/moby-dick/OPS/package.opf");
+ book.opened.then(function(){
+ equal( book.package.metadata.creator, "Herman Melville", "Creator metadata is parsed" );
+ equal( book.package.metadata.title, "Moby-Dick", "Title metadata is parsed" );
+ equal( book.package.metadata.identifier, "code.google.com.epub-samples.moby-dick-basic", "Identifier metadata is parsed" );
+ start();
+ });
+
+});
+
+asyncTest("Spine", 1, function() {
+
+ var book = ePub("../books/moby-dick/OPS/package.opf");
+ book.opened.then(function(){
+ equal( book.package.spine.length, 144, "Spine is parsed" );
+ start();
+ });
+
+});
+
+asyncTest("Cover", 1, function() {
+
+ var book = ePub("../books/moby-dick/");
+ book.opened.then(function(){
+ equal( book.cover, "../books/moby-dick/OPS/images/9780316000000.jpg", "Cover is set" );
+ start();
+ });
+
+});
+
+module('Spine');
+
+asyncTest("Length", 1, function() {
+
+ var book = ePub("../books/moby-dick/OPS/package.opf");
+ book.opened.then(function(){
+ equal( book.spine.length, 144, "All spine items present" );
+ start();
+ });
+
+});
+
+asyncTest("Items", 1, function() {
+
+ var book = ePub("../books/moby-dick/OPS/package.opf");
+ book.opened.then(function(){
+ equal( book.spine.spineItems.length, 144, "All spine items added" );
+ start();
+ });
+
+});
+
+asyncTest("First Item", 2, function() {
+
+ var book = ePub("../books/moby-dick/OPS/package.opf");
+ book.opened.then(function(){
+ var section = book.spine.get(0);
+ equal( section.href, "cover.xhtml", "First spine item href found" );
+ equal( section.cfiBase, "/6/2[cover]", "First spine item cfi found" );
+
+ start();
+ });
+
+});
+
+asyncTest("Find Item by Href", 2, function() {
+
+ var book = ePub("../books/moby-dick/OPS/package.opf");
+ book.opened.then(function(){
+ var section = book.spine.get("chapter_001.xhtml");
+ equal( section.href, "chapter_001.xhtml", "chap 1 spine item href found" );
+ equal( section.cfiBase, "/6/14[xchapter_001]", "chap 1 spine item cfi found" );
+
+ start();
+ });
+
+});
+
+asyncTest("Find Item by ID", 2, function() {
+
+ var book = ePub("../books/moby-dick/OPS/package.opf");
+ book.opened.then(function(){
+ var section = book.spine.get("#xchapter_050");
+ equal( section.href, "chapter_050.xhtml", "chap 50 spine item href found" );
+ equal( section.cfiBase, "/6/112[xchapter_050]", "chap 50 spine item cfi found" );
+
+ start();
+ });
+
+});
+
+asyncTest("Render Spine Item", 1, function() {
+
+ var book = ePub("../books/moby-dick/OPS/package.opf");
+ book.opened.then(function(){
+ var section = book.spine.get("#xchapter_050");
+ section.render().then(function(content){
+ equal( content.substring(377, 429), "<h1>Chapter 50. Ahab’s Boat and Crew. Fedallah.</h1>", "Chapter text rendered as string" );
+ });
+
+ start();
+ });
+
+});
+
+module('Navigation');
+
+asyncTest("NCX & Nav", 2, function() {
+
+ var book = ePub("../books/moby-dick/");
+ book.opened.then(function(){
+ equal( book.navigation.navUrl, "../books/moby-dick/OPS/toc.xhtml", "Nav URL found" );
+ equal( book.navigation.ncxUrl, "../books/moby-dick/OPS/toc.ncx", "NCX URL found" );
+
+ start();
+ });
+
+});
+
+
+asyncTest("Load TOC Auto Pick", 1, function() {
+
+ var book = ePub("../books/moby-dick/");
+ book.opened.then(function(){
+ book.navigation.load().then(function(toc){
+ equal( toc.length, 141, "Full Nav toc parsed" );
+ start();
+ });
+ });
+
+});
+
+asyncTest("Load TOC from Nav", 1, function() {
+
+ var book = ePub("../books/moby-dick/OPS/package.opf");
+ book.opened.then(function(){
+ var nav = book.navigation.nav.load();
+ nav.then(function(toc){
+ equal( toc.length, 141, "Full Nav toc parsed" );
+ start();
+ });
+ });
+
+});
+
+asyncTest("Load TOC from NCX", 1, function() {
+
+ var book = ePub("../books/moby-dick/OPS/package.opf");
+ book.opened.then(function(){
+ var ncx = book.navigation.ncx.load();
+ ncx.then(function(toc){
+ equal( toc.length, 14, "Full NCX toc parsed" );
+ start();
+ });
+ });
+
+});
+
+asyncTest("Get all TOC", 1, function() {
+
+ var book = ePub("../books/moby-dick/OPS/package.opf");
+ book.loaded.navigation.then(function(){
+ equal( book.navigation.get().length, 141, "Full Nav toc parsed" );
+ start();
+ });
+
+});
+
+asyncTest("Get TOC item by href", 1, function() {
+
+ var book = ePub("../books/moby-dick/OPS/package.opf");
+ book.loaded.navigation.then(function(){
+ var item = book.navigation.get("chapter_001.xhtml");
+ equal( item.id, "toc-chapter_001", "Found TOC item" );
+ start();
+ });
+
+});
+
+asyncTest("Get TOC item by ID", 1, function() {
+
+ var book = ePub("../books/moby-dick/OPS/package.opf");
+ book.loaded.navigation.then(function(){
+ var item = book.navigation.get("#toc-chapter_001");
+ equal( item.href, "chapter_001.xhtml", "Found TOC item" );
+ start();
+ });
+
+});
+
+module('Hooks');
+
+asyncTest("Register a new hook", 1, function() {
+
+ var beforeDisplay = new EPUBJS.Hook();
+ beforeDisplay.register(function(args){
+ var defer = new RSVP.defer();
+ console.log("ran", 1);
+ defer.resolve();
+ return defer.promise;
+ });
+ equal( beforeDisplay.hooks.length, 1, "Registered a hook" );
+ start();
+
+// this.beforeDisplay.trigger(args).then(function(){});
+
+});
+
+asyncTest("Trigger all new hook", 4, function() {
+
+ var beforeDisplay = new EPUBJS.Hook(this);
+ this.testerObject = {tester: 1};
+
+ beforeDisplay.register(function(testerObject){
+ var defer = new RSVP.defer();
+
+ start();
+ equal( testerObject.tester, 1, "tester is 1" );
+ stop();
+
+ testerObject.tester += 1;
+
+ defer.resolve();
+ return defer.promise;
+ });
+
+ beforeDisplay.register(function(testerObject){
+ var defer = new RSVP.defer();
+
+ start();
+ equal(testerObject.tester, 2, "tester is 2" );
+ stop();
+
+ testerObject.tester += 1;
+
+ defer.resolve();
+ return defer.promise;
+ });
+
+ start();
+ equal( beforeDisplay.hooks.length, 2, "Added two hooks" );
+ stop();
+
+ beforeDisplay.trigger(this.testerObject).then(function(){
+
+ start();
+ equal( this.testerObject.tester, 3, "tester is 3" );
+
+ }.bind(this));
+
+});