From ff3dfe86e69ea8f3c8f308339ee5114003a530bf Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Mon, 3 Apr 2017 10:36:05 +0100 Subject: Read children of w:object elements --- NEWS | 4 ++++ lib/docx/body-reader.js | 1 + test/docx/body-reader.tests.js | 18 +++++++++++------- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/NEWS b/NEWS index 8d00efa..f484479 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,7 @@ +# 1.3.4 + +* Read children of w:object elements. + # 1.3.3 * Handle hyperlinks created with complex fields. diff --git a/lib/docx/body-reader.js b/lib/docx/body-reader.js index ab6a6e7..0bdd2a0 100644 --- a/lib/docx/body-reader.js +++ b/lib/docx/body-reader.js @@ -250,6 +250,7 @@ function BodyReader(options) { }, "w:ins": readChildElements, + "w:object": readChildElements, "w:smartTag": readChildElements, "w:drawing": readChildElements, "w:pict": function(element) { diff --git a/test/docx/body-reader.tests.js b/test/docx/body-reader.tests.js index c3d5556..1b9a392 100644 --- a/test/docx/body-reader.tests.js +++ b/test/docx/body-reader.tests.js @@ -834,18 +834,22 @@ test("no elements created if image cannot be found in wp:inline", function() { }); test("children of w:ins are converted normally", function() { - var runXml = new XmlElement("w:r", {}, []); - var insXml = new XmlElement("w:ins", {}, [runXml]); - var result = readXmlElement(insXml); - assert.deepEqual(result.value[0].type, "run"); + assertChildrenAreConvertedNormally("w:ins"); +}); + +test("children of w:object are converted normally", function() { + assertChildrenAreConvertedNormally("w:object"); }); test("children of w:smartTag are converted normally", function() { + assertChildrenAreConvertedNormally("w:smartTag"); +}); + +function assertChildrenAreConvertedNormally(tagName) { var runXml = new XmlElement("w:r", {}, []); - var smartTagXml = new XmlElement("w:smartTag", {}, [runXml]); - var result = readXmlElement(smartTagXml); + var result = readXmlElement(new XmlElement(tagName, {}, [runXml])); assert.deepEqual(result.value[0].type, "run"); -}); +} test("w:hyperlink is read as document hyperlink if it has a relationship ID", function() { var runXml = new XmlElement("w:r", {}, []); -- cgit v1.2.3