summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-05-28 12:24:16 +0100
committerMichael Williamson <mike@zwobble.org>2023-05-28 12:24:16 +0100
commitb2b2c35715985f624e6b696fd87140fa6056318f (patch)
treea8015940e1d4b4bae1422af8e99277126e1df029 /test
parent1ce7c085668fd978f4f343b41db7f76f33145de5 (diff)
Avoid use of Buffer
Diffstat (limited to 'test')
-rw-r--r--test/mammoth.tests.js46
-rw-r--r--test/testing.js6
2 files changed, 48 insertions, 4 deletions
diff --git a/test/mammoth.tests.js b/test/mammoth.tests.js
index 3ce96d4..bbbbe37 100644
--- a/test/mammoth.tests.js
+++ b/test/mammoth.tests.js
@@ -219,7 +219,7 @@ test('inline images referenced by path relative to base are included in output',
});
});
-test('src of inline images can be changed', function() {
+test('src of inline images can be changed using read("base64")', function() {
var docxPath = path.join(__dirname, "test-data/tiny-picture.docx");
var convertImage = mammoth.images.imgElement(function(element) {
return element.read("base64").then(function(encodedImage) {
@@ -227,6 +227,50 @@ test('src of inline images can be changed', function() {
});
});
return mammoth.convertToHtml({path: docxPath}, {convertImage: convertImage}).then(function(result) {
+ assert.deepEqual(result.messages, []);
+ assert.equal(result.value, '<p><img src="iV,image/png" /></p>');
+ });
+});
+
+test('src of inline images can be changed using readAsBase64String()', function() {
+ var docxPath = path.join(__dirname, "test-data/tiny-picture.docx");
+ var convertImage = mammoth.images.imgElement(function(element) {
+ return element.readAsBase64String().then(function(encodedImage) {
+ return {src: encodedImage.substring(0, 2) + "," + element.contentType};
+ });
+ });
+ return mammoth.convertToHtml({path: docxPath}, {convertImage: convertImage}).then(function(result) {
+ assert.deepEqual(result.messages, []);
+ assert.equal(result.value, '<p><img src="iV,image/png" /></p>');
+ });
+});
+
+test('src of inline images can be changed using readAsArrayBuffer()', function() {
+ var docxPath = path.join(__dirname, "test-data/tiny-picture.docx");
+ var convertImage = mammoth.images.imgElement(function(element) {
+ return element.readAsArrayBuffer().then(function(arrayBuffer) {
+ assert.ok(!Buffer.isBuffer(arrayBuffer));
+ var encodedImage = Buffer.from(arrayBuffer).toString("base64");
+ return {src: encodedImage.substring(0, 2) + "," + element.contentType};
+ });
+ });
+ return mammoth.convertToHtml({path: docxPath}, {convertImage: convertImage}).then(function(result) {
+ assert.deepEqual(result.messages, []);
+ assert.equal(result.value, '<p><img src="iV,image/png" /></p>');
+ });
+});
+
+test('src of inline images can be changed using read()', function() {
+ var docxPath = path.join(__dirname, "test-data/tiny-picture.docx");
+ var convertImage = mammoth.images.imgElement(function(element) {
+ return element.read().then(function(buffer) {
+ assert.ok(Buffer.isBuffer(buffer));
+ var encodedImage = buffer.toString("base64");
+ return {src: encodedImage.substring(0, 2) + "," + element.contentType};
+ });
+ });
+ return mammoth.convertToHtml({path: docxPath}, {convertImage: convertImage}).then(function(result) {
+ assert.deepEqual(result.messages, []);
assert.equal(result.value, '<p><img src="iV,image/png" /></p>');
});
});
diff --git a/test/testing.js b/test/testing.js
index cb37777..3948556 100644
--- a/test/testing.js
+++ b/test/testing.js
@@ -22,7 +22,7 @@ function createFakeDocxFile(files) {
function exists(path) {
return !!files[path];
}
-
+
return {
read: createRead(files),
exists: exists
@@ -41,13 +41,13 @@ function createRead(files) {
if (_.isString(buffer)) {
buffer = new Buffer(buffer);
}
-
+
if (!Buffer.isBuffer(buffer)) {
return promises.reject(new Error("file was not a buffer"));
} else if (encoding) {
return promises.when(buffer.toString(encoding));
} else {
- return promises.when(buffer);
+ return promises.when(buffer.buffer);
}
});
}