From 9ff57bb770e0296bb2f5b7a41711c53954eb8c4e Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 16 Aug 2015 14:21:25 +0100 Subject: Split xmlreader into nodes and reader modules --- tests/document-to-html.tests.js | 4 +- tests/docx/body-reader.tests.js | 2 +- tests/docx/content-types-reader.tests.js | 2 +- tests/docx/notes-reader.tests.js | 2 +- tests/docx/numbering-xml.tests.js | 2 +- tests/docx/styles-reader.tests.js | 2 +- tests/xml/reader.tests.js | 88 ++++++++++++++++++++++++++++++++ tests/xmlreader.tests.js | 88 -------------------------------- 8 files changed, 95 insertions(+), 95 deletions(-) create mode 100644 tests/xml/reader.tests.js delete mode 100644 tests/xmlreader.tests.js (limited to 'tests') diff --git a/tests/document-to-html.tests.js b/tests/document-to-html.tests.js index aef6dfb..323efb6 100644 --- a/tests/document-to-html.tests.js +++ b/tests/document-to-html.tests.js @@ -6,7 +6,7 @@ var documents = require("../lib/documents"); var DocumentConverter = require("../lib/document-to-html").DocumentConverter; var test = require("./testing").test; var htmlPaths = require("../lib/html-paths"); -var xmlreader = require("../lib/xmlreader"); +var xml = require("../lib/xml"); var results = require("../lib/results"); var documentMatchers = require("../lib/document-matchers"); @@ -459,7 +459,7 @@ describe('DocumentConverter', function() { var converter = new DocumentConverter(); return converter.convertToHtml(image) .then(function(result) { - return xmlreader.read(result.value); + return xml.readString(result.value); }) .then(function(htmlImageElementDocument) { var htmlImageElement = htmlImageElementDocument.root; diff --git a/tests/docx/body-reader.tests.js b/tests/docx/body-reader.tests.js index 172da76..ad2caa2 100644 --- a/tests/docx/body-reader.tests.js +++ b/tests/docx/body-reader.tests.js @@ -3,7 +3,7 @@ var path = require("path"); var BodyReader = require("../../lib/docx/body-reader").BodyReader; var documents = require("../../lib/documents"); -var XmlElement = require("../../lib/xmlreader").Element; +var XmlElement = require("../../lib/xml").Element; var Numbering = require("../../lib/docx/numbering-xml").Numbering; var Styles = require("../../lib/docx/styles-reader").Styles; var warning = require("../../lib/results").warning; diff --git a/tests/docx/content-types-reader.tests.js b/tests/docx/content-types-reader.tests.js index b0f135e..3b8c1d3 100644 --- a/tests/docx/content-types-reader.tests.js +++ b/tests/docx/content-types-reader.tests.js @@ -1,7 +1,7 @@ var assert = require("assert"); var readContentTypesFromXml = require("../../lib/docx/content-types-reader").readContentTypesFromXml; -var XmlElement = require("../../lib/xmlreader").Element; +var XmlElement = require("../../lib/xml").Element; var test = require("../testing").test; diff --git a/tests/docx/notes-reader.tests.js b/tests/docx/notes-reader.tests.js index 0cfb626..79ffed3 100644 --- a/tests/docx/notes-reader.tests.js +++ b/tests/docx/notes-reader.tests.js @@ -3,7 +3,7 @@ var assert = require("assert"); var createFootnotesReader = require("../../lib/docx/notes-reader").createFootnotesReader; var BodyReader = require("../../lib/docx/body-reader").BodyReader; var documents = require("../../lib/documents"); -var XmlElement = require("../../lib/xmlreader").Element; +var XmlElement = require("../../lib/xml").Element; var test = require("../testing").test; diff --git a/tests/docx/numbering-xml.tests.js b/tests/docx/numbering-xml.tests.js index 55c94e5..2fea5fb 100644 --- a/tests/docx/numbering-xml.tests.js +++ b/tests/docx/numbering-xml.tests.js @@ -1,7 +1,7 @@ var duck = require("duck"); var readNumberingXml = require("../../lib/docx/numbering-xml").readNumberingXml; -var XmlElement = require("../../lib/xmlreader").Element; +var XmlElement = require("../../lib/xml").Element; var test = require("../testing").test; diff --git a/tests/docx/styles-reader.tests.js b/tests/docx/styles-reader.tests.js index 73a9050..2bdda33 100644 --- a/tests/docx/styles-reader.tests.js +++ b/tests/docx/styles-reader.tests.js @@ -1,7 +1,7 @@ var assert = require("assert"); var readStylesXml = require("../../lib/docx/styles-reader").readStylesXml; -var XmlElement = require("../../lib/xmlreader").Element; +var XmlElement = require("../../lib/xml").Element; var test = require("../testing").test; diff --git a/tests/xml/reader.tests.js b/tests/xml/reader.tests.js new file mode 100644 index 0000000..49bcab5 --- /dev/null +++ b/tests/xml/reader.tests.js @@ -0,0 +1,88 @@ +var assert = require("assert"); + +var xmlreader = require("../../lib/xml/reader"); +var test = require("../testing").test; + + +describe('xmlreader.readString', function() { + test('should read self-closing element', function() { + return xmlreader.readString("").then(function(result) { + assert.deepEqual({type: "element", name: "body", attributes: {}, children: []}, result.root); + }); + }); + + test('should read empty element with separate closing tag', function() { + return xmlreader.readString("").then(function(result) { + assert.deepEqual({type: "element", name: "body", attributes: {}, children: []}, result.root); + }); + }); + + test('should read attributes of tags', function() { + return xmlreader.readString('').then(function(result) { + assert.deepEqual({name: "bob"}, result.root.attributes); + }); + }); + + test('can read text element', function() { + return xmlreader.readString('Hello!').then(function(result) { + assert.deepEqual({type: "text", value: "Hello!"}, result.root.children[0]); + }); + }); + + test('should read element with children', function() { + return xmlreader.readString("").then(function(result) { + var root = result.root; + assert.equal(2, root.children.length); + assert.equal("a", root.children[0].name); + assert.equal("b", root.children[1].name); + }); + }); + + test('unmapped namespaces URIs are included in braces as prefix', function() { + return xmlreader.readString('').then(function(result) { + assert.deepEqual(result.root.name, "{word}:body"); + }); + }); + + test('mapped namespaces URIs are translated using map', function() { + var namespaceMap = { + "word": "x" + }; + + return xmlreader.readString('', namespaceMap).then(function(result) { + assert.deepEqual(result.root.name, "x:body"); + }); + }); + + test('namespace of attributes is mapped to prefix', function() { + var namespaceMap = { + "word": "x" + }; + var xmlString = ''; + return xmlreader.readString(xmlString, namespaceMap).then(function(result) { + assert.deepEqual(result.root.attributes["x:val"], "Hello!"); + }); + }); + + test('can find first element with name', function() { + return xmlreader.readString('').then(function(result) { + var first = result.root.first("b"); + assert.equal("1", first.attributes.index); + }); + }); + + test('whitespace between xml declaration and root tag is ignored', function() { + return xmlreader.readString('\n').then(function(result) { + assert.deepEqual("body", result.root.name); + }); + }); + + test('error if XML is badly formed', function() { + return xmlreader.readString("").then(function(result) { - assert.deepEqual({type: "element", name: "body", attributes: {}, children: []}, result.root); - }); - }); - - test('should read empty element with separate closing tag', function() { - return xmlreader.read("").then(function(result) { - assert.deepEqual({type: "element", name: "body", attributes: {}, children: []}, result.root); - }); - }); - - test('should read attributes of tags', function() { - return xmlreader.read('').then(function(result) { - assert.deepEqual({name: "bob"}, result.root.attributes); - }); - }); - - test('can read text element', function() { - return xmlreader.read('Hello!').then(function(result) { - assert.deepEqual({type: "text", value: "Hello!"}, result.root.children[0]); - }); - }); - - test('should read element with children', function() { - return xmlreader.read("").then(function(result) { - var root = result.root; - assert.equal(2, root.children.length); - assert.equal("a", root.children[0].name); - assert.equal("b", root.children[1].name); - }); - }); - - test('unmapped namespaces URIs are included in braces as prefix', function() { - return xmlreader.read('').then(function(result) { - assert.deepEqual(result.root.name, "{word}:body"); - }); - }); - - test('mapped namespaces URIs are translated using map', function() { - var namespaceMap = { - "word": "x" - }; - - return xmlreader.read('', namespaceMap).then(function(result) { - assert.deepEqual(result.root.name, "x:body"); - }); - }); - - test('namespace of attributes is mapped to prefix', function() { - var namespaceMap = { - "word": "x" - }; - var xmlString = ''; - return xmlreader.read(xmlString, namespaceMap).then(function(result) { - assert.deepEqual(result.root.attributes["x:val"], "Hello!"); - }); - }); - - test('can find first element with name', function() { - return xmlreader.read('').then(function(result) { - var first = result.root.first("b"); - assert.equal("1", first.attributes.index); - }); - }); - - test('whitespace between xml declaration and root tag is ignored', function() { - return xmlreader.read('\n').then(function(result) { - assert.deepEqual("body", result.root.name); - }); - }); - - test('error if XML is badly formed', function() { - return xmlreader.read("