diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-05-28 12:24:16 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-05-28 12:24:16 +0100 |
| commit | b2b2c35715985f624e6b696fd87140fa6056318f (patch) | |
| tree | a8015940e1d4b4bae1422af8e99277126e1df029 /test | |
| parent | 1ce7c085668fd978f4f343b41db7f76f33145de5 (diff) | |
Avoid use of Buffer
Diffstat (limited to 'test')
| -rw-r--r-- | test/mammoth.tests.js | 46 | ||||
| -rw-r--r-- | test/testing.js | 6 |
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); } }); } |
