aboutsummaryrefslogtreecommitdiff
path: root/tests/docx/document-xml-reader.tests.js
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-06-14 12:57:55 +0100
committerMichael Williamson <mike@zwobble.org>2015-06-14 12:57:55 +0100
commit7fd0b913c41926a745331e26e779d6ee33e70ae0 (patch)
treeffcf9ac9619bb509152f35a4163b7bfd0b579e99 /tests/docx/document-xml-reader.tests.js
parentaaabb8c8d6d3f0f61064d906ea86342a87bb0c3f (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.js47
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)]);
}