From 7aecbe20f174100cdc6f72238f43ef3d96e7fb50 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Mon, 1 Apr 2013 15:50:24 +0100 Subject: Have docx-reader emit warnings when finding unrecognised elements --- tests/docx-reader.tests.js | 46 +++++++++++++++++++++++++++++----------------- 1 file changed, 29 insertions(+), 17 deletions(-) (limited to 'tests') diff --git a/tests/docx-reader.tests.js b/tests/docx-reader.tests.js index 005f808..3eee8f1 100644 --- a/tests/docx-reader.tests.js +++ b/tests/docx-reader.tests.js @@ -23,7 +23,7 @@ describe("docx-reader", function() { "word/document.xml": testData("simple/word/document.xml") }); return docxReader.read(docxFile).then(function(result) { - assert.deepEqual(expectedDocument, result); + assert.deepEqual(expectedDocument, result.value); }); }); @@ -32,7 +32,7 @@ describe("docx-reader", function() { "word/document.xml": testData("paragraphStyles/word/document.xml") }); return docxReader.read(docxFile).then(function(result) { - var paragraph = result.children[0]; + var paragraph = result.value.children[0]; assert.deepEqual("Heading1", paragraph.properties.styleName); }); }); @@ -42,7 +42,7 @@ describe("docx-reader", function() { "word/document.xml": testData("paragraphStyles/word/document.xml") }); return docxReader.read(docxFile).then(function(result) { - var paragraph = result.children[0]; + var paragraph = result.value.children[0]; assert.equal(1, paragraph.children.length); }); }); @@ -52,50 +52,62 @@ describe("readElement", function() { test("reads styles from run properties", function() { var runStyleXml = new XmlElement("w:rStyle", {"w:val": "Emphasis"}); var runPropertiesXml = createRunPropertiesXml([runStyleXml]); - var element = docxReader.readXmlElement(runPropertiesXml); - assert.equal(element.styleName, "Emphasis"); + var result = docxReader.readXmlElement(runPropertiesXml); + assert.equal(result.value.styleName, "Emphasis"); }); test("isBold is false if bold element is not present", function() { var runPropertiesXml = createRunPropertiesXml([]); - var element = docxReader.readXmlElement(runPropertiesXml); - assert.equal(element.isBold, false); + var result = docxReader.readXmlElement(runPropertiesXml); + assert.equal(result.value.isBold, false); }); test("isBold is true if bold element is present", function() { var boldXml = new XmlElement("w:b"); var runPropertiesXml = createRunPropertiesXml([boldXml]); - var element = docxReader.readXmlElement(runPropertiesXml); - assert.equal(element.isBold, true); + var result = docxReader.readXmlElement(runPropertiesXml); + assert.equal(result.value.isBold, true); }); test("isItalic is false if bold element is not present", function() { var runPropertiesXml = createRunPropertiesXml([]); - var element = docxReader.readXmlElement(runPropertiesXml); - assert.equal(element.isItalic, false); + var result = docxReader.readXmlElement(runPropertiesXml); + assert.equal(result.value.isItalic, false); }); test("isItalic is true if bold element is present", function() { var italicXml = new XmlElement("w:i"); var runPropertiesXml = createRunPropertiesXml([italicXml]); - var element = docxReader.readXmlElement(runPropertiesXml); - assert.equal(element.isItalic, true); + var result = docxReader.readXmlElement(runPropertiesXml); + assert.equal(result.value.isItalic, true); }); test("run properties are attached to run", function() { var runStyleXml = new XmlElement("w:rStyle", {"w:val": "Emphasis"}); var runPropertiesXml = new XmlElement("w:rPr", {}, [runStyleXml]); var runXml = new XmlElement("w:r", {}, [runPropertiesXml]); - var element = docxReader.readXmlElement(runXml); - assert.equal(element.properties.styleName, "Emphasis"); + var result = docxReader.readXmlElement(runXml); + assert.equal(result.value.properties.styleName, "Emphasis"); }); test("run properties not included as child of run", function() { var runStyleXml = new XmlElement("w:rStyle", {"w:val": "Emphasis"}); var runPropertiesXml = new XmlElement("w:rPr", {}, [runStyleXml]); var runXml = new XmlElement("w:r", {}, [runPropertiesXml]); - var element = docxReader.readXmlElement(runXml); - assert.deepEqual(element.children, []); + var result = docxReader.readXmlElement(runXml); + assert.deepEqual(result.value.children, []); + }); + + test("emits warning on unrecognised element", function() { + var unrecognisedElement = new XmlElement("w:not-an-element"); + var result = docxReader.readXmlElement(unrecognisedElement); + assert.deepEqual( + result.messages, + [{ + type: "warning", + message: "An unrecognised element was ignored: w:not-an-element" + }] + ); }); }); -- cgit v1.2.3