summaryrefslogtreecommitdiff
path: root/lib/epub.js/test/section.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/epub.js/test/section.js')
-rw-r--r--lib/epub.js/test/section.js77
1 files changed, 77 insertions, 0 deletions
diff --git a/lib/epub.js/test/section.js b/lib/epub.js/test/section.js
new file mode 100644
index 0000000..5a2902e
--- /dev/null
+++ b/lib/epub.js/test/section.js
@@ -0,0 +1,77 @@
+import assert from 'assert';
+import ePub from '../src/epub';
+
+describe("section", function() {
+ it("finds a single result in a section", function() {
+ var book = ePub("./fixtures/alice/", {width: 400, height: 400});
+ return book.ready.then(function() {
+ var section = book.section("chapter_001.xhtml");
+ return section.load().then(function() {
+ const queryString = "they were filled with cupboards and book-shelves";
+ const findResults = section.find(queryString);
+ const searchResults = section.search(queryString);
+ [findResults , searchResults].forEach( (results)=>{
+ assert.equal(results.length, 1);
+ assert.equal(results[0].cfi, "epubcfi(/6/8[chapter_001]!/4/2/16,/1:275,/1:323)");
+ assert.equal(results[0].excerpt, "... see anything; then she looked at the sides of the well and\n\t\tnoticed that they were filled with cupboards and book-shelves; here and there she saw\n\t\t...");
+ });
+ });
+ });
+ });
+
+ it("finds multiple results in a section", function() {
+ var book = ePub("./fixtures/alice/", {width: 400, height: 400});
+ return book.ready.then(function() {
+ var section = book.section("chapter_001.xhtml");
+ return section.load().then(function() {
+ const queryString = "white rabbit";
+ const findResults = section.find(queryString);
+ const searchResults = section.search(queryString);
+ [findResults , searchResults].forEach( (results)=>{
+ assert.equal(results.length, 2);
+ assert.equal(results[0].cfi, "epubcfi(/6/8[chapter_001]!/4/2/8,/1:240,/1:252)");
+ assert.equal(results[0].excerpt, "...e worth the trouble of getting up and picking the daisies, when suddenly a White Rabbit with pink eyes ran close by her....");
+ assert.equal(results[1].cfi, "epubcfi(/6/8[chapter_001]!/4/2/20,/1:148,/1:160)");
+ assert.equal(results[1].excerpt, "...ut it was\n\t\tall dark overhead; before her was another long passage and the White Rabbit was still\n\t\tin sight, hurrying down it. There was not a moment...");
+ });
+ });
+ });
+
+ });
+
+ it("finds result that spanning multiple document nodes, tag at ending", function() {
+ var book = ePub("./fixtures/alice/", {width: 400, height: 400});
+ return book.ready.then(function() {
+ var section = book.section("chapter_010.xhtml");
+ return section.load().then(function() {
+ const queryString = "I beg";
+
+ const findResult = section.find(queryString);
+ assert.equal(findResult.length, 0);
+
+ const searchResults = section.search(queryString);
+ assert.equal(searchResults.length, 1);
+ assert.equal(searchResults[0].cfi, "epubcfi(/6/26[chapter_010]!/4/2/6,/1:5,/2/1:3)");
+ assert.equal(searchResults[0].excerpt,'"Oh, I beg');
+ });
+ });
+ });
+
+ it("finds result that spanning multiple document nodes, tag at middle", function() {
+ var book = ePub("./fixtures/alice/", {width: 400, height: 400});
+ return book.ready.then(function() {
+ var section = book.section("chapter_010.xhtml");
+ return section.load().then(function() {
+ const queryString = "I beg your pardon";
+
+ const findResult = section.find(queryString);
+ assert.equal(findResult.length, 0);
+
+ const searchResults = section.search(queryString);
+ assert.equal(searchResults.length, 1);
+ assert.equal(searchResults[0].cfi, "epubcfi(/6/26[chapter_010]!/4/2/6,/1:5,/3:12)");
+ assert.equal(searchResults[0].excerpt,'"Oh, I beg your pardon!" she exclaimed in a tone of great dismay.');
+ });
+ });
+ });
+});