summaryrefslogtreecommitdiffstats
path: root/test/images.js
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2015-03-24 16:26:19 +0100
committerSamy Pessé <samypesse@gmail.com>2015-03-24 16:26:19 +0100
commitc31acef47a734ade930aaaa0efa86ec01527a065 (patch)
tree236c35565a8f8381877c899de73584b6b6f710fb /test/images.js
parente9a573e18ae73c01d4b81a6458f67b0054dc7346 (diff)
downloadgitbook-c31acef47a734ade930aaaa0efa86ec01527a065.zip
gitbook-c31acef47a734ade930aaaa0efa86ec01527a065.tar.gz
gitbook-c31acef47a734ade930aaaa0efa86ec01527a065.tar.bz2
Add tests for images in ebook
Diffstat (limited to 'test/images.js')
-rw-r--r--test/images.js56
1 files changed, 56 insertions, 0 deletions
diff --git a/test/images.js b/test/images.js
new file mode 100644
index 0000000..75bc529
--- /dev/null
+++ b/test/images.js
@@ -0,0 +1,56 @@
+var fs = require('fs');
+var _ = require('lodash');
+var path = require('path');
+var cheerio = require('cheerio');
+
+describe('Images', function () {
+ var book, readme, $, $img, srcs;
+
+ before(function() {
+ return books.generate("images", "ebook")
+ .then(function(_book) {
+ book = _book;
+
+ readme = fs.readFileSync(
+ path.join(book.options.output, "index.html"),
+ { encoding: "utf-8" }
+ );
+ $ = cheerio.load(readme);
+ $img = $("img");
+ srcs = $img.map(function() { return $(this).attr("src"); })
+ });
+ });
+
+ it('should detect all images', function() {
+ _.uniq(srcs).should.have.lengthOf(4);
+ });
+
+ it('should keep image tags', function() {
+ srcs.should.have.lengthOf(5);
+ });
+
+ it('should not have .svg files', function() {
+ _.each(srcs, function(src) {
+ path.extname(src).should.not.equal(".svg");
+ });
+ });
+
+ it('should correctly convert svg images to png', function() {
+ _.each(srcs, function(src) {
+ book.should.have.file(src);
+ });
+ });
+
+ it('should handle relative paths', function() {
+ var PAGE = fs.readFileSync(
+ path.join(book.options.output, "folder/PAGE.html"),
+ { encoding: "utf-8" }
+ );
+
+ PAGE.should.be.html({
+ "img[src='../test.png']": {
+ count: 1
+ }
+ });
+ });
+});