aboutsummaryrefslogtreecommitdiff
path: root/tests/docx-reader.tests.js
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2013-04-01 17:35:15 +0100
committerMichael Williamson <mike@zwobble.org>2013-04-01 17:35:15 +0100
commitbd8b2786247308c7bd82dc3cda627a23b4898958 (patch)
treee30fc62c22bbb0dc358155c5c0caebb126688091 /tests/docx-reader.tests.js
parent25109ca7e318e188229cac92552ba0dcd7e897a1 (diff)
Implement reading of hyperlink elements
Diffstat (limited to 'tests/docx-reader.tests.js')
-rw-r--r--tests/docx-reader.tests.js30
1 files changed, 19 insertions, 11 deletions
diff --git a/tests/docx-reader.tests.js b/tests/docx-reader.tests.js
index ef880f8..68efb0a 100644
--- a/tests/docx-reader.tests.js
+++ b/tests/docx-reader.tests.js
@@ -37,48 +37,56 @@ describe("docx-reader", function() {
});
});
- test("paragraph properties are not included as child of paragraph", function() {
+ test("hyperlink hrefs are read from relationships file", function() {
var docxFile = createFakeDocxFile({
- "word/document.xml": testData("paragraphStyles/word/document.xml")
+ "word/document.xml": testData("hyperlinks/word/document.xml"),
+ "word/_rels/document.xml.rels": testData("hyperlinks/word/_rels/document.xml.rels")
});
return docxReader.read(docxFile).then(function(result) {
var paragraph = result.document.children[0];
assert.equal(1, paragraph.children.length);
+ var hyperlink = paragraph.children[0];
+ assert.equal(hyperlink.href, "http://www.example.com");
+ assert.equal(hyperlink.children.length, 1);
});
});
});
+function readXmlElement(element) {
+ return new docxReader.DocumentReader({}).readXmlElement(element);
+}
+
describe("readElement", function() {
test("reads styles from run properties", function() {
var runStyleXml = new XmlElement("w:rStyle", {"w:val": "Emphasis"});
var runPropertiesXml = createRunPropertiesXml([runStyleXml]);
- var result = docxReader.readXmlElement(runPropertiesXml);
+ var result = readXmlElement(runPropertiesXml);
assert.equal(result.value.styleName, "Emphasis");
});
test("isBold is false if bold element is not present", function() {
var runPropertiesXml = createRunPropertiesXml([]);
- var result = docxReader.readXmlElement(runPropertiesXml);
+ var result = 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 result = docxReader.readXmlElement(runPropertiesXml);
+ var result = readXmlElement(runPropertiesXml);
assert.equal(result.value.isBold, true);
});
test("isItalic is false if bold element is not present", function() {
var runPropertiesXml = createRunPropertiesXml([]);
- var result = docxReader.readXmlElement(runPropertiesXml);
+ var result = 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 result = docxReader.readXmlElement(runPropertiesXml);
+ var result = readXmlElement(runPropertiesXml);
assert.equal(result.value.isItalic, true);
});
@@ -86,7 +94,7 @@ describe("readElement", 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 result = docxReader.readXmlElement(runXml);
+ var result = readXmlElement(runXml);
assert.equal(result.value.properties.styleName, "Emphasis");
});
@@ -94,13 +102,13 @@ describe("readElement", 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 result = docxReader.readXmlElement(runXml);
+ var result = 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);
+ var result = readXmlElement(unrecognisedElement);
assert.deepEqual(
result.messages,
[{
@@ -112,7 +120,7 @@ describe("readElement", function() {
test("w:bookmarkStart is ignored without warning", function() {
var ignoredElement = new XmlElement("w:bookmarkStart");
- var result = docxReader.readXmlElement(ignoredElement);
+ var result = readXmlElement(ignoredElement);
assert.deepEqual(result.messages, []);
assert.equal(null, result.value);
});