aboutsummaryrefslogtreecommitdiff
path: root/tests/docx
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-09-07 20:04:58 +0100
committerMichael Williamson <mike@zwobble.org>2015-09-07 20:04:58 +0100
commite5e37a6f2cfa04e146d534028fbf291aac2a9fe2 (patch)
tree82f731589d4534b51b2dd1caf4b51848c0468eb1 /tests/docx
parent97144ee9f557ef4886456972d36583b6b62685d2 (diff)
Add support for external images
Diffstat (limited to 'tests/docx')
-rw-r--r--tests/docx/body-reader.tests.js42
1 files changed, 39 insertions, 3 deletions
diff --git a/tests/docx/body-reader.tests.js b/tests/docx/body-reader.tests.js
index ad2caa2..2e85d76 100644
--- a/tests/docx/body-reader.tests.js
+++ b/tests/docx/body-reader.tests.js
@@ -286,7 +286,7 @@ describe("readXmlElement: ", function() {
test("can read inline pictures", function() {
var drawing = createInlineImage({
- relationshipId: "rId5",
+ blip: createEmbeddedBlip("rId5"),
description: "It's a hat"
});
@@ -349,9 +349,37 @@ describe("readXmlElement: ", function() {
});
});
+ test("can read linked pictures", function() {
+ var drawing = createInlineImage({
+ blip: createLinkedBlip("rId5"),
+ description: "It's a hat"
+ });
+
+ var imageBuffer = new Buffer("Not an image at all!");
+ var reader = new BodyReader({
+ relationships: {
+ "rId5": {target: "file:///media/hat.png"}
+ },
+ contentTypes: fakeContentTypes,
+ files: testing.createFakeFiles({
+ "file:///media/hat.png": imageBuffer
+ })
+ });
+ var result = reader.readXmlElement(drawing);
+ assert.deepEqual(result.messages, []);
+ var element = single(result.value);
+ assert.equal("image", element.type);
+ assert.equal(element.altText, "It's a hat");
+ assert.equal(element.contentType, "image/png");
+ return element.read()
+ .then(function(readValue) {
+ assert.equal(readValue, imageBuffer);
+ });
+ });
+
test("warning if unsupported image type", function() {
var drawing = createInlineImage({
- relationshipId: "rId5",
+ blip: createEmbeddedBlip("rId5"),
description: "It's a hat"
});
@@ -514,7 +542,7 @@ function createInlineImage(options) {
new XmlElement("a:graphicData", {}, [
new XmlElement("pic:pic", {}, [
new XmlElement("pic:blipFill", {}, [
- new XmlElement("a:blip", {"r:embed": options.relationshipId})
+ options.blip
])
])
])
@@ -522,3 +550,11 @@ function createInlineImage(options) {
])
]);
}
+
+function createEmbeddedBlip(relationshipId) {
+ return new XmlElement("a:blip", {"r:embed": relationshipId});
+}
+
+function createLinkedBlip(relationshipId) {
+ return new XmlElement("a:blip", {"r:link": relationshipId});
+}