diff options
author | Samy Pessé <samypesse@gmail.com> | 2015-03-24 16:26:19 +0100 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2015-03-24 16:26:19 +0100 |
commit | c31acef47a734ade930aaaa0efa86ec01527a065 (patch) | |
tree | 236c35565a8f8381877c899de73584b6b6f710fb /test/images.js | |
parent | e9a573e18ae73c01d4b81a6458f67b0054dc7346 (diff) | |
download | gitbook-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.js | 56 |
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 + } + }); + }); +}); |