summaryrefslogtreecommitdiffstats
path: root/test/images.js
diff options
context:
space:
mode:
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
+ }
+ });
+ });
+});