aboutsummaryrefslogtreecommitdiff
path: root/tests/documents.tests.js
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2013-04-01 15:24:41 +0100
committerMichael Williamson <mike@zwobble.org>2013-04-01 15:25:53 +0100
commit6fdee5a4b57832682e1c43156b2e075a5552f595 (patch)
treea10d7fd5c2a74102a5314678e55f906af8e0c0f5 /tests/documents.tests.js
parent5c7aa27a92265e0890f3b970ca8102751e0d7e01 (diff)
Move document conversion into document-to-html module
Diffstat (limited to 'tests/documents.tests.js')
-rw-r--r--tests/documents.tests.js146
1 files changed, 0 insertions, 146 deletions
diff --git a/tests/documents.tests.js b/tests/documents.tests.js
deleted file mode 100644
index d08500d..0000000
--- a/tests/documents.tests.js
+++ /dev/null
@@ -1,146 +0,0 @@
-var assert = require("assert");
-
-var documents = require("../lib/documents");
-var DocumentConverter = documents.DocumentConverter;
-var test = require("./testing").test;
-var styles = require("../lib/styles");
-
-
-describe('DocumentConverter', function() {
- test('should convert document containing one paragraph to single p element', function() {
- var document = new documents.Document([
- paragraphOfText("Hello.")
- ]);
- var converter = new DocumentConverter();
- return converter.convertToHtml(document).then(function(result) {
- assert.equal(result.html, "<p>Hello.</p>");
- });
- });
-
- test('ignores empty paragraphs', function() {
- var document = new documents.Document([
- paragraphOfText("")
- ]);
- var converter = new DocumentConverter();
- return converter.convertToHtml(document).then(function(result) {
- assert.equal(result.html, "");
- });
- });
-
- test('can use non-default HTML element for unstyled paragraphs', function() {
- var document = new documents.Document([
- paragraphOfText("Hello.")
- ]);
- var converter = new DocumentConverter({defaultParagraphStyle: styles.topLevelElement("h1")});
- return converter.convertToHtml(document).then(function(result) {
- assert.equal(result.html, "<h1>Hello.</h1>");
- });
- });
-
- test('text is HTML-escaped', function() {
- var document = new documents.Document([
- paragraphOfText("1 < 2")
- ]);
- var converter = new DocumentConverter();
- return converter.convertToHtml(document).then(function(result) {
- assert.equal(result.html, "<p>1 &lt; 2</p>");
- });
- });
-
- test('should convert document containing multiple paragraphs to multiple p elements', function() {
- var document = new documents.Document([
- paragraphOfText("Hello."),
- paragraphOfText("Goodbye.")
- ]);
- var converter = new DocumentConverter();
- return converter.convertToHtml(document).then(function(result) {
- assert.equal(result.html, "<p>Hello.</p><p>Goodbye.</p>");
- });
- });
-
- test('uses style mappings to pick HTML element for docx paragraph', function() {
- var document = new documents.Document([
- paragraphOfText("Hello.", "Heading1"),
- ]);
- var converter = new DocumentConverter({
- paragraphStyleMap: {
- "Heading1": styles.topLevelElement("h1")
- }
- });
- return converter.convertToHtml(document).then(function(result) {
- assert.equal(result.html, "<h1>Hello.</h1>");
- });
- });
-
- test('can use stacked styles to generate nested HTML elements', function() {
- var document = new documents.Document([
- paragraphOfText("Hello.", "Heading1")
- ]);
- var converter = new DocumentConverter({
- paragraphStyleMap: {
- "Heading1": styles.elements(["h1", "span"])
- }
- });
- return converter.convertToHtml(document).then(function(result) {
- assert.equal(result.html, "<h1><span>Hello.</span></h1>");
- });
- });
-
- test('bold runs are wrapped in <strong> tags', function() {
- var run = runOfText("Hello.", {isBold: true});
- var converter = new DocumentConverter();
- return converter.convertToHtml(run).then(function(result) {
- assert.equal(result.html, "<strong>Hello.</strong>");
- });
- });
-
- test('bold runs can exist inside other tags', function() {
- var run = new documents.Paragraph([
- runOfText("Hello.", {isBold: true})
- ]);
- var converter = new DocumentConverter();
- return converter.convertToHtml(run).then(function(result) {
- assert.equal(result.html, "<p><strong>Hello.</strong></p>");
- });
- });
-
- test('italic runs are wrapped in <em> tags', function() {
- var run = runOfText("Hello.", {isItalic: true});
- var converter = new DocumentConverter();
- return converter.convertToHtml(run).then(function(result) {
- assert.equal(result.html, "<em>Hello.</em>");
- });
- });
-
- test('run can be both bold and italic', function() {
- var run = runOfText("Hello.", {isBold: true, isItalic: true});
- var converter = new DocumentConverter();
- return converter.convertToHtml(run).then(function(result) {
- assert.equal(result.html, "<strong><em>Hello.</em></strong>");
- });
- });
-
- test('run styles are converted to HTML if mapping exists', function() {
- var run = runOfText("Hello.", {styleName: "Emphasis"});
- var converter = new DocumentConverter({
- runStyleMap: {
- "Emphasis": styles.elements(["strong"])
- }
- });
- return converter.convertToHtml(run).then(function(result) {
- assert.equal(result.html, "<strong>Hello.</strong>");
- });
- });
-});
-
-function paragraphOfText(text, styleName) {
- var run = runOfText(text);
- return new documents.Paragraph([run], {
- styleName: styleName
- });
-}
-
-function runOfText(text, properties) {
- var textElement = new documents.Text(text);
- return new documents.Run([textElement], properties);
-}