diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-06-14 12:57:55 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-06-14 12:57:55 +0100 |
| commit | 7fd0b913c41926a745331e26e779d6ee33e70ae0 (patch) | |
| tree | ffcf9ac9619bb509152f35a4163b7bfd0b579e99 /tests/docx/document-xml-reader.tests.js | |
| parent | aaabb8c8d6d3f0f61064d906ea86342a87bb0c3f (diff) | |
Add basic support for text boxes
Diffstat (limited to 'tests/docx/document-xml-reader.tests.js')
| -rw-r--r-- | tests/docx/document-xml-reader.tests.js | 47 |
1 files changed, 45 insertions, 2 deletions
diff --git a/tests/docx/document-xml-reader.tests.js b/tests/docx/document-xml-reader.tests.js index dabe530..4e1da69 100644 --- a/tests/docx/document-xml-reader.tests.js +++ b/tests/docx/document-xml-reader.tests.js @@ -13,7 +13,12 @@ var test = testing.test; var createFakeDocxFile = testing.createFakeDocxFile; function readXmlElement(element, options) { - options = options || {}; + var styles = { + findParagraphStyleById: function(id) { + return {}; + } + }; + options = options || {styles: styles}; return new DocumentXmlReader(options).readXmlElement(element); } @@ -396,7 +401,37 @@ describe("readXmlElement: ", function() { assert.deepEqual(result.value, []); assert.deepEqual(result.messages, [warning("Unsupported break type: page")]); }); - + + test("text boxes have content appended after containing paragraph", function() { + var textbox = new XmlElement("w:pict", {}, [ + new XmlElement("v:shape", {}, [ + new XmlElement("v:textbox", {}, [ + new XmlElement("w:txbxContent", {}, [ + paragraphWithStyleId("textbox-content") + ]) + ]) + ]) + ]); + var paragraph = new XmlElement("w:p", {}, [ + new XmlElement("w:r", {}, [textbox]) + ]); + var result = readXmlElement(paragraph); + assert.deepEqual(result.value[1].styleId, "textbox-content"); + }); + + test("mc:Fallback is used when mc:AlternateContent is read", function() { + var styles = new Styles({"first": {name: "First"}, "second": {name: "Second"}}, {}); + var textbox = new XmlElement("mc:AlternateContent", {}, [ + new XmlElement("mc:Choice", {"Requires": "wps"}, [ + paragraphWithStyleId("first") + ]), + new XmlElement("mc:Fallback", {}, [ + paragraphWithStyleId("second") + ]) + ]); + var result = readXmlElement(textbox, {styles: styles}); + assert.deepEqual(result.value[0].styleId, "second"); + }); }); describe("convertXmlToDocument: ", function() { @@ -415,6 +450,14 @@ describe("convertXmlToDocument: ", function() { }); }); +function paragraphWithStyleId(styleId) { + return new XmlElement("w:p", {}, [ + new XmlElement("w:pPr", {}, [ + new XmlElement("w:pStyle", {"w:val": styleId}, []) + ]) + ]); +} + function runWithProperties(children) { return new XmlElement("w:r", {}, [createRunPropertiesXml(children)]); } |
