You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
112 lines
3.5 KiB
112 lines
3.5 KiB
var assert = require("assert");
|
|
|
|
var hamjest = require("hamjest");
|
|
var assertThat = hamjest.assertThat;
|
|
var contains = hamjest.contains;
|
|
var equalTo = hamjest.equalTo;
|
|
var hasProperties = hamjest.hasProperties;
|
|
|
|
var mammoth = require("../");
|
|
var documents = require("../lib/documents");
|
|
var promises = require("../lib/promises");
|
|
|
|
var test = require("./test")(module);
|
|
|
|
|
|
test('mammoth.images.inline() should be an alias of mammoth.images.imgElement()', function() {
|
|
assert.ok(mammoth.images.inline === mammoth.images.imgElement);
|
|
});
|
|
|
|
|
|
test('mammoth.images.dataUri() encodes images in base64', function() {
|
|
var imageBuffer = new Buffer("abc");
|
|
var image = new documents.Image({
|
|
readImage: function(encoding) {
|
|
return promises.when(imageBuffer.toString(encoding));
|
|
},
|
|
contentType: "image/jpeg"
|
|
});
|
|
|
|
return mammoth.images.dataUri(image).then(function(result) {
|
|
assertThat(result, contains(
|
|
hasProperties({tag: hasProperties({attributes: {"src": "data:image/jpeg;base64,YWJj"}})})
|
|
));
|
|
});
|
|
});
|
|
|
|
|
|
test('mammoth.images.imgElement()', {
|
|
'when element does not have alt text then alt attribute is not set': function() {
|
|
var imageBuffer = new Buffer("abc");
|
|
var image = new documents.Image({
|
|
readImage: function(encoding) {
|
|
return promises.when(imageBuffer.toString(encoding));
|
|
},
|
|
contentType: "image/jpeg"
|
|
});
|
|
|
|
var result = mammoth.images.imgElement(function(image) {
|
|
return {src: "<src>"};
|
|
})(image);
|
|
|
|
return result.then(function(result) {
|
|
assertThat(result, contains(
|
|
hasProperties({
|
|
tag: hasProperties({
|
|
attributes: equalTo({src: "<src>"})
|
|
})
|
|
})
|
|
));
|
|
});
|
|
},
|
|
|
|
'when element has alt text then alt attribute is set': function() {
|
|
var imageBuffer = new Buffer("abc");
|
|
var image = new documents.Image({
|
|
readImage: function(encoding) {
|
|
return promises.when(imageBuffer.toString(encoding));
|
|
},
|
|
contentType: "image/jpeg",
|
|
altText: "<alt>"
|
|
});
|
|
|
|
var result = mammoth.images.imgElement(function(image) {
|
|
return {src: "<src>"};
|
|
})(image);
|
|
|
|
return result.then(function(result) {
|
|
assertThat(result, contains(
|
|
hasProperties({
|
|
tag: hasProperties({
|
|
attributes: equalTo({alt: "<alt>", src: "<src>"})
|
|
})
|
|
})
|
|
));
|
|
});
|
|
},
|
|
|
|
'image alt text can be overridden by alt attribute returned from function': function() {
|
|
var imageBuffer = new Buffer("abc");
|
|
var image = new documents.Image({
|
|
readImage: function(encoding) {
|
|
return promises.when(imageBuffer.toString(encoding));
|
|
},
|
|
contentType: "image/jpeg",
|
|
altText: "<alt>"
|
|
});
|
|
|
|
var result = mammoth.images.imgElement(function(image) {
|
|
return {alt: "<alt override>", src: "<src>"};
|
|
})(image);
|
|
|
|
return result.then(function(result) {
|
|
assertThat(result, contains(
|
|
hasProperties({
|
|
tag: hasProperties({
|
|
attributes: equalTo({alt: "<alt override>", src: "<src>"})
|
|
})
|
|
})
|
|
));
|
|
});
|
|
}
|
|
});
|
|
|