diff options
| author | Michael Williamson <mike@zwobble.org> | 2014-01-07 21:37:21 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2014-01-07 21:37:21 +0000 |
| commit | d9d55dece1861bbbf08f3688254447992cf1957f (patch) | |
| tree | 6c56fd5f00ebf4de9a8fbc0f202836dc262e84a3 /tests | |
| parent | 53e9f9200a781e488830c3c01ff58f50d667a812 (diff) | |
| parent | 51c625fb8474bcf790a0341ae5bbabb1316a2583 (diff) | |
Merge remote-tracking branch 'offlein/master'
Conflicts:
lib/index.js
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/style-applicator.tests.js | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/tests/style-applicator.tests.js b/tests/style-applicator.tests.js new file mode 100644 index 0000000..3164fa2 --- /dev/null +++ b/tests/style-applicator.tests.js @@ -0,0 +1,57 @@ +var assert = require("assert");
+
+var documents = require("../lib/documents");
+
+var testing = require("./testing");
+var test = testing.test;
+var style = require("../lib/style-reader").readStyle;
+
+
+describe("style-applicator", function() {
+ test("can use custom documentTransform to process styleless center-aligned paragraph into h2.centerAlign", function() {
+ var testOptions = {
+ styleMap: [
+ style("p.centerAligned => h2.sectionHeader:fresh")
+ ],
+ transformDocument: transformDocument
+ };
+ var testDocument = documents.Document([
+ documents.Paragraph([
+ documents.Run([
+ documents.Text("Test.")
+ ])
+ ], {alignment: 'center'})
+ ]);
+ var expectedDocument = documents.Document([
+ documents.Paragraph([
+ documents.Run([
+ documents.Text("Test.")
+ ])
+ ], {styleName: 'centerAligned', alignment: 'center'})
+ ]);
+
+ assert.deepEqual(expectedDocument, transformDocument(testDocument));
+ });
+});
+
+function transformDocument(document) {
+ if (document.children) {
+ for (var i = 0; i < document.children.length; i++) {
+ var element = document.children[i];
+ switch (element.type) {
+ case 'paragraph':
+ document.children[i] = processParagraphStyles(document.children[i]);
+ break;
+ }
+ }
+ }
+ return document;
+}
+function processParagraphStyles(element) {
+ if (!element.styleName) {
+ if (element.alignment) {
+ element.styleName = element.alignment+"Aligned";
+ }
+ }
+ return element;
+}
\ No newline at end of file |
