1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
var assert = require("assert");
var path = require("path");
var fs = require("fs");
var q = require("q");
var mammoth = require("../")
var htmlPaths = require("../lib/html-paths");
var testing = require("./testing");
var test = testing.test;
var testData = testing.testData;
var createFakeDocxFile = testing.createFakeDocxFile;
describe('mammoth', function() {
test('should convert docx containing one one paragraph to single p element', function() {
var docxPath = path.join(__dirname, "test-data/single-paragraph.docx");
var converter = new mammoth.Converter();
return converter.convertToHtml({path: docxPath}).then(function(result) {
assert.equal(result.value, "<p>Walking on imported air</p>");
assert.deepEqual(result.messages, []);
});
});
test('should convert Uint8Array containing one one paragraph to single p element', function() {
var docxPath = path.join(__dirname, "test-data/single-paragraph.docx");
return q.nfcall(fs.readFile, docxPath).then(function(buffer) {
var array = new Uint8Array(buffer.length);
for (var i = 0; i < buffer.length; i++) {
array[i] = buffer[i];
}
var converter = new mammoth.Converter();
return converter.convertToHtml({uint8Array: array}).then(function(result) {
assert.equal("<p>Walking on imported air</p>", result.value);
});
});
});
test('options are passed to document converter when creating Converter', function() {
var docxFile = createFakeDocxFile({
"word/document.xml": testData("simple/word/document.xml")
});
var converter = new mammoth.Converter({
defaultParagraphStyle: htmlPaths.topLevelElement("h1")
});
return converter.convertToHtml({file: docxFile}).then(function(result) {
assert.equal("<h1>Hello.</h1>", result.value);
});
});
test('options are passed to document converter when calling mammoth.convertToHtml', function() {
var docxFile = createFakeDocxFile({
"word/document.xml": testData("simple/word/document.xml")
});
var options = {
defaultParagraphStyle: htmlPaths.topLevelElement("h1")
};
return mammoth.convertToHtml({file: docxFile}, options).then(function(result) {
assert.equal("<h1>Hello.</h1>", result.value);
});
});
test('inline images are included in output', function() {
var converter = new mammoth.Converter();
var docxPath = path.join(__dirname, "test-data/tiny-picture.docx");
return converter.convertToHtml({path: docxPath}).then(function(result) {
assert.equal(result.value, '<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAIAAAACUFjqAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAOvgAADr4B6kKxwAAAABNJREFUKFNj/M+ADzDhlWUYqdIAQSwBE8U+X40AAAAASUVORK5CYII=" /></p>');
});
});
test('simple list is converted to list elements', function() {
var converter = new mammoth.Converter();
var docxPath = path.join(__dirname, "test-data/simple-list.docx");
return converter.convertToHtml({path: docxPath}).then(function(result) {
assert.equal(result.value, '<ul><li>Apple</li><li>Banana</li></ul>');
});
});
})
|