From 310102bdac9a4258abc99447a7decd7024ca0667 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Tue, 22 Apr 2014 11:47:31 +0100 Subject: Pass options object into DocumentXmlReader --- lib/docx/document-xml-reader.js | 8 +++++++- lib/docx/docx-reader.js | 7 ++++++- tests/docx/document-xml-reader.tests.js | 35 +++++++++++++++------------------ 3 files changed, 29 insertions(+), 21 deletions(-) diff --git a/lib/docx/document-xml-reader.js b/lib/docx/document-xml-reader.js index 15a2dae..fc4b630 100644 --- a/lib/docx/document-xml-reader.js +++ b/lib/docx/document-xml-reader.js @@ -8,7 +8,13 @@ var Result = require("../results").Result; var warning = require("../results").warning; -function DocumentXmlReader(relationships, contentTypes, docxFile, numbering) { +function DocumentXmlReader(options) { + var relationships = options.relationships; + var contentTypes = options.contentTypes; + var docxFile = options.docxFile; + var numbering = options.numbering; + + function convertXmlToDocument(documentXml) { var body = documentXml.root.first("w:body"); diff --git a/lib/docx/docx-reader.js b/lib/docx/docx-reader.js index 82a647c..20c4834 100644 --- a/lib/docx/docx-reader.js +++ b/lib/docx/docx-reader.js @@ -20,7 +20,12 @@ function read(options) { readNumberingFromZipFile(docxFile), readXmlFromZipFile(docxFile, "word/document.xml") ]).spread(function(relationships, contentTypes, numbering, documentXml) { - var reader = new DocumentXmlReader(relationships, contentTypes, docxFile, numbering); + var reader = new DocumentXmlReader({ + relationships: relationships, + contentTypes: contentTypes, + docxFile: docxFile, + numbering: numbering + }); return reader.convertXmlToDocument(documentXml); }); }); diff --git a/tests/docx/document-xml-reader.tests.js b/tests/docx/document-xml-reader.tests.js index 714134e..9a96d1e 100644 --- a/tests/docx/document-xml-reader.tests.js +++ b/tests/docx/document-xml-reader.tests.js @@ -11,7 +11,7 @@ var createFakeDocxFile = testing.createFakeDocxFile; function readXmlElement(element, options) { options = options || {} - return new DocumentXmlReader(options.relationships || {}).readXmlElement(element); + return new DocumentXmlReader(options).readXmlElement(element); } function readXmlElementValue(element) { @@ -59,12 +59,9 @@ describe("readXmlElement: ", function() { var numbering = new Numbering({"42": {"1": {isOrdered: true, level: "1"}}}); - var reader = new DocumentXmlReader( - {}, - null, - null, - numbering - ); + var reader = new DocumentXmlReader({ + numbering: numbering + }); var paragraph = reader.readXmlElement(paragraphXml).value; assert.deepEqual(paragraph.numbering, {level: "1", isOrdered: true}); }); @@ -148,15 +145,15 @@ describe("readXmlElement: ", function() { }); var imageBuffer = new Buffer("Not an image at all!"); - var reader = new DocumentXmlReader( - { + var reader = new DocumentXmlReader({ + relationships: { "rId5": {target: "media/hat.png"} }, - fakeContentTypes, - createFakeDocxFile({ + contentTypes: fakeContentTypes, + docxFile: createFakeDocxFile({ "word/media/hat.png": imageBuffer }) - ); + }); var result = reader.readXmlElement(drawing); assert.deepEqual(result.messages, []); var element = single(result.value); @@ -186,15 +183,15 @@ describe("readXmlElement: ", function() { ]); var imageBuffer = new Buffer("Not an image at all!"); - var reader = new DocumentXmlReader( - { + var reader = new DocumentXmlReader({ + relationships: { "rId5": {target: "media/hat.png"} }, - fakeContentTypes, - createFakeDocxFile({ + contentTypes: fakeContentTypes, + docxFile: createFakeDocxFile({ "word/media/hat.png": imageBuffer }) - ); + }); var result = reader.readXmlElement(drawing); assert.deepEqual(result.messages, []); var element = single(result.value); @@ -209,7 +206,7 @@ describe("readXmlElement: ", function() { test("no elements created if image cannot be found in w:drawing", function() { var drawing = new XmlElement("w:drawing", {}, []); - var reader = new DocumentXmlReader(); + var reader = new DocumentXmlReader({}); var result = reader.readXmlElement(drawing); assert.deepEqual(result.messages, []); assert.deepEqual(result.value, []); @@ -218,7 +215,7 @@ describe("readXmlElement: ", function() { test("no elements created if image cannot be found in wp:inline", function() { var drawing = new XmlElement("wp:inline", {}, []); - var reader = new DocumentXmlReader(); + var reader = new DocumentXmlReader({}); var result = reader.readXmlElement(drawing); assert.deepEqual(result.messages, []); assert.deepEqual(result.value, []); -- cgit v1.2.3