pdfjs-dist 2.0.943 → 2.1.266
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pdfjs-dist might be problematic. Click here for more details.
- package/bower.json +1 -1
- package/build/pdf.js +15329 -11095
- package/build/pdf.js.map +1 -1
- package/build/pdf.min.js +1 -1
- package/build/pdf.worker.js +12497 -4184
- package/build/pdf.worker.js.map +1 -1
- package/build/pdf.worker.min.js +1 -1
- package/image_decoders/pdf.image_decoders.js +3438 -1209
- package/image_decoders/pdf.image_decoders.js.map +1 -1
- package/image_decoders/pdf.image_decoders.min.js +1 -1
- package/lib/core/annotation.js +335 -109
- package/lib/core/arithmetic_decoder.js +274 -244
- package/lib/core/bidi.js +64 -5
- package/lib/core/ccitt.js +172 -17
- package/lib/core/ccitt_stream.js +14 -5
- package/lib/core/cff_parser.js +304 -28
- package/lib/core/charsets.js +4 -3
- package/lib/core/chunked_stream.js +379 -149
- package/lib/core/cmap.js +210 -40
- package/lib/core/colorspace.js +332 -187
- package/lib/core/crypto.js +289 -44
- package/lib/core/document.js +508 -249
- package/lib/core/encodings.js +18 -9
- package/lib/core/evaluator.js +657 -119
- package/lib/core/font_renderer.js +217 -34
- package/lib/core/fonts.js +632 -41
- package/lib/core/function.js +252 -26
- package/lib/core/glyphlist.js +2 -1
- package/lib/core/image.js +124 -27
- package/lib/core/jbig2.js +425 -65
- package/lib/core/jbig2_stream.js +18 -7
- package/lib/core/jpeg_stream.js +24 -8
- package/lib/core/jpg.js +208 -16
- package/lib/core/jpx.js +395 -5
- package/lib/core/jpx_stream.js +17 -5
- package/lib/core/metrics.js +3 -3
- package/lib/core/murmurhash3.js +23 -5
- package/lib/core/obj.js +625 -132
- package/lib/core/operator_list.js +104 -3
- package/lib/core/parser.js +262 -25
- package/lib/core/pattern.js +144 -12
- package/lib/core/pdf_manager.js +104 -70
- package/lib/core/primitives.js +74 -21
- package/lib/core/ps_parser.js +133 -44
- package/lib/core/standard_fonts.js +9 -9
- package/lib/core/stream.js +283 -31
- package/lib/core/type1_parser.js +138 -6
- package/lib/core/unicode.js +28 -1
- package/lib/core/worker.js +192 -57
- package/lib/display/annotation_layer.js +303 -123
- package/lib/display/api.js +1073 -574
- package/lib/display/api_compatibility.js +4 -1
- package/lib/display/canvas.js +314 -18
- package/lib/display/content_disposition.js +70 -23
- package/lib/display/dom_utils.js +112 -59
- package/lib/display/fetch_stream.js +95 -50
- package/lib/display/font_loader.js +250 -132
- package/lib/display/metadata.js +37 -15
- package/lib/display/network.js +123 -34
- package/lib/display/network_utils.js +23 -10
- package/lib/display/node_stream.js +162 -65
- package/lib/display/pattern_helper.js +57 -6
- package/lib/display/svg.js +194 -18
- package/lib/display/text_layer.js +128 -14
- package/lib/display/transport_stream.js +83 -27
- package/lib/display/webgl.js +63 -17
- package/lib/display/worker_options.js +4 -3
- package/lib/display/xml_parser.js +162 -52
- package/lib/examples/node/domstubs.js +56 -3
- package/lib/pdf.js +15 -2
- package/lib/pdf.worker.js +4 -2
- package/lib/shared/compatibility.js +129 -26
- package/lib/shared/global_scope.js +1 -1
- package/lib/shared/is_node.js +3 -3
- package/lib/shared/message_handler.js +103 -45
- package/lib/shared/streams_polyfill.js +20 -16
- package/lib/shared/url_polyfill.js +8 -2
- package/lib/shared/util.js +246 -84
- package/lib/test/unit/annotation_spec.js +99 -73
- package/lib/test/unit/api_spec.js +347 -113
- package/lib/test/unit/bidi_spec.js +6 -6
- package/lib/test/unit/cff_parser_spec.js +17 -5
- package/lib/test/unit/clitests_helper.js +7 -8
- package/lib/test/unit/cmap_spec.js +79 -25
- package/lib/test/unit/colorspace_spec.js +65 -18
- package/lib/test/unit/crypto_spec.js +16 -4
- package/lib/test/unit/custom_spec.js +40 -52
- package/lib/test/unit/display_svg_spec.js +32 -16
- package/lib/test/unit/document_spec.js +2 -2
- package/lib/test/unit/dom_utils_spec.js +8 -8
- package/lib/test/unit/encodings_spec.js +24 -44
- package/lib/test/unit/evaluator_spec.js +15 -8
- package/lib/test/unit/function_spec.js +16 -4
- package/lib/test/unit/jasmine-boot.js +29 -16
- package/lib/test/unit/message_handler_spec.js +19 -6
- package/lib/test/unit/metadata_spec.js +64 -11
- package/lib/test/unit/murmurhash3_spec.js +2 -2
- package/lib/test/unit/network_spec.js +19 -4
- package/lib/test/unit/network_utils_spec.js +6 -4
- package/lib/test/unit/node_stream_spec.js +50 -26
- package/lib/test/unit/parser_spec.js +13 -29
- package/lib/test/unit/pdf_find_controller_spec.js +144 -32
- package/lib/test/unit/pdf_find_utils_spec.js +10 -9
- package/lib/test/unit/pdf_history_spec.js +20 -8
- package/lib/test/unit/primitives_spec.js +23 -3
- package/lib/test/unit/stream_spec.js +8 -3
- package/lib/test/unit/test_utils.js +89 -26
- package/lib/test/unit/testreporter.js +19 -1
- package/lib/test/unit/type1_parser_spec.js +7 -5
- package/lib/test/unit/ui_utils_spec.js +162 -38
- package/lib/test/unit/unicode_spec.js +13 -10
- package/lib/test/unit/util_spec.js +89 -9
- package/lib/web/annotation_layer_builder.js +38 -21
- package/lib/web/app.js +610 -245
- package/lib/web/app_options.js +54 -34
- package/lib/web/base_viewer.js +359 -162
- package/lib/web/chromecom.js +159 -80
- package/lib/web/debugger.js +161 -17
- package/lib/web/download_manager.js +29 -11
- package/lib/web/firefox_print_service.js +16 -8
- package/lib/web/firefoxcom.js +127 -91
- package/lib/web/genericcom.js +50 -31
- package/lib/web/genericl10n.js +46 -34
- package/lib/web/grab_to_pan.js +25 -3
- package/lib/web/interfaces.js +108 -61
- package/lib/web/overlay_manager.js +67 -45
- package/lib/web/password_prompt.js +20 -12
- package/lib/web/pdf_attachment_viewer.js +37 -17
- package/lib/web/pdf_cursor_tools.js +38 -15
- package/lib/web/pdf_document_properties.js +65 -24
- package/lib/web/pdf_find_bar.js +48 -20
- package/lib/web/pdf_find_controller.js +290 -89
- package/lib/web/pdf_find_utils.js +19 -3
- package/lib/web/pdf_history.js +186 -49
- package/lib/web/pdf_link_service.js +127 -52
- package/lib/web/pdf_outline_viewer.js +71 -21
- package/lib/web/pdf_page_view.js +188 -63
- package/lib/web/pdf_presentation_mode.js +98 -33
- package/lib/web/pdf_print_service.js +54 -10
- package/lib/web/pdf_rendering_queue.js +26 -4
- package/lib/web/pdf_sidebar.js +116 -62
- package/lib/web/pdf_sidebar_resizer.js +41 -15
- package/lib/web/pdf_single_page_viewer.js +65 -68
- package/lib/web/pdf_thumbnail_view.js +102 -31
- package/lib/web/pdf_thumbnail_viewer.js +62 -22
- package/lib/web/pdf_viewer.component.js +111 -31
- package/lib/web/pdf_viewer.js +80 -60
- package/lib/web/preferences.js +61 -39
- package/lib/web/secondary_toolbar.js +101 -82
- package/lib/web/text_layer_builder.js +124 -69
- package/lib/web/toolbar.js +67 -27
- package/lib/web/ui_utils.js +284 -128
- package/lib/web/view_history.js +75 -51
- package/lib/web/viewer_compatibility.js +2 -1
- package/package.json +1 -1
- package/web/pdf_viewer.css +1 -1
- package/web/pdf_viewer.js +2200 -973
- package/web/pdf_viewer.js.map +1 -1
- package/lib/web/dom_events.js +0 -140
@@ -19,13 +19,13 @@
|
|
19
19
|
* @licend The above is the entire license notice for the
|
20
20
|
* Javascript code in this page
|
21
21
|
*/
|
22
|
-
|
22
|
+
"use strict";
|
23
23
|
|
24
|
-
var _crypto = require(
|
24
|
+
var _crypto = require("../../core/crypto");
|
25
25
|
|
26
|
-
var _primitives = require(
|
26
|
+
var _primitives = require("../../core/primitives");
|
27
27
|
|
28
|
-
var _util = require(
|
28
|
+
var _util = require("../../shared/util");
|
29
29
|
|
30
30
|
describe('crypto', function () {
|
31
31
|
function hex2binary(s) {
|
@@ -35,14 +35,17 @@ describe('crypto', function () {
|
|
35
35
|
i,
|
36
36
|
j;
|
37
37
|
var result = new Uint8Array(n);
|
38
|
+
|
38
39
|
for (i = 0, j = 0; i < n; ++i) {
|
39
40
|
var d1 = s.charAt(j++);
|
40
41
|
var d2 = s.charAt(j++);
|
41
42
|
var value = digits.indexOf(d1) << 4 | digits.indexOf(d2);
|
42
43
|
result[i] = value;
|
43
44
|
}
|
45
|
+
|
44
46
|
return result;
|
45
47
|
}
|
48
|
+
|
46
49
|
describe('calculateMD5', function () {
|
47
50
|
it('should pass RFC 1321 test #1', function () {
|
48
51
|
var input, result, expected;
|
@@ -357,11 +360,14 @@ describe('crypto', function () {
|
|
357
360
|
describe('CipherTransformFactory', function () {
|
358
361
|
function buildDict(map) {
|
359
362
|
var dict = new _primitives.Dict();
|
363
|
+
|
360
364
|
for (var key in map) {
|
361
365
|
dict.set(key, map[key]);
|
362
366
|
}
|
367
|
+
|
363
368
|
return dict;
|
364
369
|
}
|
370
|
+
|
365
371
|
function ensurePasswordCorrect(done, dict, fileId, password) {
|
366
372
|
try {
|
367
373
|
var factory = new _crypto.CipherTransformFactory(dict, fileId, password);
|
@@ -370,8 +376,10 @@ describe('CipherTransformFactory', function () {
|
|
370
376
|
done.fail('Password should be accepted: ' + ex);
|
371
377
|
return;
|
372
378
|
}
|
379
|
+
|
373
380
|
done();
|
374
381
|
}
|
382
|
+
|
375
383
|
function ensurePasswordNeeded(done, dict, fileId, password) {
|
376
384
|
try {
|
377
385
|
new _crypto.CipherTransformFactory(dict, fileId, password);
|
@@ -381,8 +389,10 @@ describe('CipherTransformFactory', function () {
|
|
381
389
|
done();
|
382
390
|
return;
|
383
391
|
}
|
392
|
+
|
384
393
|
done.fail('Password should be rejected.');
|
385
394
|
}
|
395
|
+
|
386
396
|
function ensurePasswordIncorrect(done, dict, fileId, password) {
|
387
397
|
try {
|
388
398
|
new _crypto.CipherTransformFactory(dict, fileId, password);
|
@@ -392,8 +402,10 @@ describe('CipherTransformFactory', function () {
|
|
392
402
|
done();
|
393
403
|
return;
|
394
404
|
}
|
405
|
+
|
395
406
|
done.fail('Password should be rejected.');
|
396
407
|
}
|
408
|
+
|
397
409
|
var fileId1, fileId2, dict1, dict2;
|
398
410
|
var aes256Dict, aes256IsoDict, aes256BlankDict, aes256IsoBlankDict;
|
399
411
|
beforeAll(function (done) {
|
@@ -19,17 +19,15 @@
|
|
19
19
|
* @licend The above is the entire license notice for the
|
20
20
|
* Javascript code in this page
|
21
21
|
*/
|
22
|
-
|
22
|
+
"use strict";
|
23
23
|
|
24
|
-
var _test_utils = require(
|
24
|
+
var _test_utils = require("./test_utils");
|
25
25
|
|
26
|
-
var _dom_utils = require(
|
26
|
+
var _dom_utils = require("../../display/dom_utils");
|
27
27
|
|
28
|
-
var _api = require(
|
28
|
+
var _api = require("../../display/api");
|
29
29
|
|
30
|
-
var _is_node = require(
|
31
|
-
|
32
|
-
var _is_node2 = _interopRequireDefault(_is_node);
|
30
|
+
var _is_node = _interopRequireDefault(require("../../shared/is_node"));
|
33
31
|
|
34
32
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
35
33
|
|
@@ -42,24 +40,26 @@ function getTopLeftPixel(canvasContext) {
|
|
42
40
|
a: imgData.data[3]
|
43
41
|
};
|
44
42
|
}
|
43
|
+
|
45
44
|
describe('custom canvas rendering', function () {
|
46
45
|
var transparentGetDocumentParams = (0, _test_utils.buildGetDocumentParams)('transparent.pdf');
|
47
|
-
var CanvasFactory
|
48
|
-
var loadingTask
|
49
|
-
var page
|
46
|
+
var CanvasFactory;
|
47
|
+
var loadingTask;
|
48
|
+
var page;
|
50
49
|
beforeAll(function (done) {
|
51
|
-
if ((0,
|
50
|
+
if ((0, _is_node.default)()) {
|
51
|
+
CanvasFactory = new _test_utils.NodeCanvasFactory();
|
52
|
+
} else {
|
52
53
|
CanvasFactory = new _dom_utils.DOMCanvasFactory();
|
53
54
|
}
|
55
|
+
|
54
56
|
loadingTask = (0, _api.getDocument)(transparentGetDocumentParams);
|
55
57
|
loadingTask.promise.then(function (doc) {
|
56
58
|
return doc.getPage(1);
|
57
59
|
}).then(function (data) {
|
58
60
|
page = data;
|
59
61
|
done();
|
60
|
-
}).catch(
|
61
|
-
done.fail(reason);
|
62
|
-
});
|
62
|
+
}).catch(done.fail);
|
63
63
|
});
|
64
64
|
afterAll(function (done) {
|
65
65
|
CanvasFactory = null;
|
@@ -67,56 +67,44 @@ describe('custom canvas rendering', function () {
|
|
67
67
|
loadingTask.destroy().then(done);
|
68
68
|
});
|
69
69
|
it('renders to canvas with a default white background', function (done) {
|
70
|
-
|
71
|
-
|
72
|
-
}
|
73
|
-
var viewport = page.getViewport(1);
|
70
|
+
var viewport = page.getViewport({
|
71
|
+
scale: 1
|
72
|
+
});
|
74
73
|
var canvasAndCtx = CanvasFactory.create(viewport.width, viewport.height);
|
75
|
-
page.render({
|
74
|
+
var renderTask = page.render({
|
76
75
|
canvasContext: canvasAndCtx.context,
|
77
76
|
viewport: viewport
|
78
|
-
})
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
77
|
+
});
|
78
|
+
renderTask.promise.then(function () {
|
79
|
+
expect(getTopLeftPixel(canvasAndCtx.context)).toEqual({
|
80
|
+
r: 255,
|
81
|
+
g: 255,
|
82
|
+
b: 255,
|
83
|
+
a: 255
|
84
|
+
});
|
85
85
|
CanvasFactory.destroy(canvasAndCtx);
|
86
|
-
expect(r).toEqual(255);
|
87
|
-
expect(g).toEqual(255);
|
88
|
-
expect(b).toEqual(255);
|
89
|
-
expect(a).toEqual(255);
|
90
86
|
done();
|
91
|
-
}).catch(
|
92
|
-
done(reason);
|
93
|
-
});
|
87
|
+
}).catch(done.fail);
|
94
88
|
});
|
95
89
|
it('renders to canvas with a custom background', function (done) {
|
96
|
-
|
97
|
-
|
98
|
-
}
|
99
|
-
var viewport = page.getViewport(1);
|
90
|
+
var viewport = page.getViewport({
|
91
|
+
scale: 1
|
92
|
+
});
|
100
93
|
var canvasAndCtx = CanvasFactory.create(viewport.width, viewport.height);
|
101
|
-
page.render({
|
94
|
+
var renderTask = page.render({
|
102
95
|
canvasContext: canvasAndCtx.context,
|
103
96
|
viewport: viewport,
|
104
97
|
background: 'rgba(255,0,0,1.0)'
|
105
|
-
})
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
98
|
+
});
|
99
|
+
renderTask.promise.then(function () {
|
100
|
+
expect(getTopLeftPixel(canvasAndCtx.context)).toEqual({
|
101
|
+
r: 255,
|
102
|
+
g: 0,
|
103
|
+
b: 0,
|
104
|
+
a: 255
|
105
|
+
});
|
112
106
|
CanvasFactory.destroy(canvasAndCtx);
|
113
|
-
expect(r).toEqual(255);
|
114
|
-
expect(g).toEqual(0);
|
115
|
-
expect(b).toEqual(0);
|
116
|
-
expect(a).toEqual(255);
|
117
107
|
done();
|
118
|
-
}).catch(
|
119
|
-
done(reason);
|
120
|
-
});
|
108
|
+
}).catch(done.fail);
|
121
109
|
});
|
122
110
|
});
|
@@ -19,55 +19,64 @@
|
|
19
19
|
* @licend The above is the entire license notice for the
|
20
20
|
* Javascript code in this page
|
21
21
|
*/
|
22
|
-
|
22
|
+
"use strict";
|
23
23
|
|
24
|
-
var _domstubs = require(
|
24
|
+
var _domstubs = require("../../examples/node/domstubs");
|
25
25
|
|
26
|
-
var _test_utils = require(
|
26
|
+
var _test_utils = require("./test_utils");
|
27
27
|
|
28
|
-
var _api = require(
|
28
|
+
var _api = require("../../display/api");
|
29
29
|
|
30
|
-
var _is_node = require(
|
30
|
+
var _is_node = _interopRequireDefault(require("../../shared/is_node"));
|
31
31
|
|
32
|
-
var
|
32
|
+
var _util = require("../../shared/util");
|
33
33
|
|
34
|
-
var
|
35
|
-
|
36
|
-
var _svg = require('../../display/svg');
|
34
|
+
var _svg = require("../../display/svg");
|
37
35
|
|
38
36
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
39
37
|
|
40
38
|
var XLINK_NS = 'http://www.w3.org/1999/xlink';
|
39
|
+
|
41
40
|
function withZlib(isZlibRequired, callback) {
|
42
41
|
if (isZlibRequired) {
|
43
|
-
if (!(0,
|
42
|
+
if (!(0, _is_node.default)()) {
|
44
43
|
throw new Error('zlib test can only be run in Node.js');
|
45
44
|
}
|
45
|
+
|
46
46
|
return callback();
|
47
47
|
}
|
48
|
-
|
48
|
+
|
49
|
+
if (!(0, _is_node.default)()) {
|
49
50
|
return callback();
|
50
51
|
}
|
52
|
+
|
51
53
|
var zlib = require('zlib');
|
54
|
+
|
52
55
|
var deflateSync = zlib.deflateSync;
|
53
56
|
zlib.deflateSync = disabledDeflateSync;
|
57
|
+
|
54
58
|
function disabledDeflateSync() {
|
55
59
|
throw new Error('zlib.deflateSync is explicitly disabled for testing.');
|
56
60
|
}
|
61
|
+
|
57
62
|
function restoreDeflateSync() {
|
58
63
|
if (zlib.deflateSync === disabledDeflateSync) {
|
59
64
|
zlib.deflateSync = deflateSync;
|
60
65
|
}
|
61
66
|
}
|
67
|
+
|
62
68
|
var promise = callback();
|
63
69
|
promise.then(restoreDeflateSync, restoreDeflateSync);
|
64
70
|
return promise;
|
65
71
|
}
|
72
|
+
|
66
73
|
describe('SVGGraphics', function () {
|
67
74
|
var loadingTask;
|
68
75
|
var page;
|
69
76
|
beforeAll(function (done) {
|
70
|
-
loadingTask = (0, _api.getDocument)((0, _test_utils.buildGetDocumentParams)('xobject-image.pdf', {
|
77
|
+
loadingTask = (0, _api.getDocument)((0, _test_utils.buildGetDocumentParams)('xobject-image.pdf', {
|
78
|
+
nativeImageDecoderSupport: _util.NativeImageDecoding.DISPLAY
|
79
|
+
}));
|
71
80
|
loadingTask.promise.then(function (doc) {
|
72
81
|
doc.getPage(1).then(function (firstPage) {
|
73
82
|
page = firstPage;
|
@@ -93,35 +102,42 @@ describe('SVGGraphics', function () {
|
|
93
102
|
}
|
94
103
|
};
|
95
104
|
var xobjectObjId = 'img_p0_1';
|
96
|
-
|
105
|
+
|
106
|
+
if ((0, _is_node.default)()) {
|
97
107
|
(0, _domstubs.setStubs)(global);
|
98
108
|
}
|
109
|
+
|
99
110
|
try {
|
100
111
|
var imgData = svgGfx.objs.get(xobjectObjId);
|
101
112
|
svgGfx.paintInlineImageXObject(imgData, elementContainer);
|
102
113
|
} finally {
|
103
|
-
if ((0,
|
114
|
+
if ((0, _is_node.default)()) {
|
104
115
|
(0, _domstubs.unsetStubs)(global);
|
105
116
|
}
|
106
117
|
}
|
118
|
+
|
107
119
|
return svgImg;
|
108
120
|
});
|
109
121
|
}
|
122
|
+
|
110
123
|
it('should fail require("zlib") unless in Node.js', function () {
|
111
124
|
function testFunc() {
|
112
125
|
require('zlib');
|
113
126
|
}
|
127
|
+
|
114
128
|
expect(testFunc.toString()).toMatch(/\srequire\(["']zlib["']\)/);
|
115
|
-
|
129
|
+
|
130
|
+
if ((0, _is_node.default)()) {
|
116
131
|
expect(testFunc).not.toThrow();
|
117
132
|
} else {
|
118
133
|
expect(testFunc).toThrow();
|
119
134
|
}
|
120
135
|
});
|
121
136
|
it('should produce a reasonably small svg:image', function (done) {
|
122
|
-
if (!(0,
|
137
|
+
if (!(0, _is_node.default)()) {
|
123
138
|
pending('zlib.deflateSync is not supported in non-Node environments.');
|
124
139
|
}
|
140
|
+
|
125
141
|
withZlib(true, getSVGImage).then(function (svgImg) {
|
126
142
|
expect(svgImg.nodeName).toBe('svg:image');
|
127
143
|
expect(svgImg.getAttributeNS(null, 'width')).toBe('200px');
|
@@ -19,9 +19,9 @@
|
|
19
19
|
* @licend The above is the entire license notice for the
|
20
20
|
* Javascript code in this page
|
21
21
|
*/
|
22
|
-
|
22
|
+
"use strict";
|
23
23
|
|
24
|
-
var _document = require(
|
24
|
+
var _document = require("../../core/document");
|
25
25
|
|
26
26
|
describe('document', function () {
|
27
27
|
describe('Page', function () {
|
@@ -19,19 +19,17 @@
|
|
19
19
|
* @licend The above is the entire license notice for the
|
20
20
|
* Javascript code in this page
|
21
21
|
*/
|
22
|
-
|
22
|
+
"use strict";
|
23
23
|
|
24
|
-
var _dom_utils = require(
|
24
|
+
var _dom_utils = require("../../display/dom_utils");
|
25
25
|
|
26
|
-
var _is_node = require(
|
27
|
-
|
28
|
-
var _is_node2 = _interopRequireDefault(_is_node);
|
26
|
+
var _is_node = _interopRequireDefault(require("../../shared/is_node"));
|
29
27
|
|
30
28
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
31
29
|
|
32
30
|
describe('dom_utils', function () {
|
33
31
|
describe('DOMSVGFactory', function () {
|
34
|
-
var svgFactory
|
32
|
+
var svgFactory;
|
35
33
|
beforeAll(function (done) {
|
36
34
|
svgFactory = new _dom_utils.DOMSVGFactory();
|
37
35
|
done();
|
@@ -48,9 +46,10 @@ describe('dom_utils', function () {
|
|
48
46
|
}).toThrow(new Error('Invalid SVG dimensions'));
|
49
47
|
});
|
50
48
|
it('`create` should return an SVG element if the dimensions are valid', function () {
|
51
|
-
if ((0,
|
49
|
+
if ((0, _is_node.default)()) {
|
52
50
|
pending('Document is not supported in Node.js.');
|
53
51
|
}
|
52
|
+
|
54
53
|
var svg = svgFactory.create(20, 40);
|
55
54
|
expect(svg instanceof SVGSVGElement).toBe(true);
|
56
55
|
expect(svg.getAttribute('version')).toBe('1.1');
|
@@ -65,9 +64,10 @@ describe('dom_utils', function () {
|
|
65
64
|
}).toThrow(new Error('Invalid SVG element type'));
|
66
65
|
});
|
67
66
|
it('`createElement` should return an SVG element if the type is valid', function () {
|
68
|
-
if ((0,
|
67
|
+
if ((0, _is_node.default)()) {
|
69
68
|
pending('Document is not supported in Node.js.');
|
70
69
|
}
|
70
|
+
|
71
71
|
var svg = svgFactory.createElement('svg:rect');
|
72
72
|
expect(svg instanceof SVGRectElement).toBe(true);
|
73
73
|
});
|
@@ -19,65 +19,45 @@
|
|
19
19
|
* @licend The above is the entire license notice for the
|
20
20
|
* Javascript code in this page
|
21
21
|
*/
|
22
|
-
|
22
|
+
"use strict";
|
23
23
|
|
24
|
-
var
|
24
|
+
var _encodings = require("../../core/encodings");
|
25
25
|
|
26
|
-
|
26
|
+
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
27
27
|
|
28
28
|
describe('encodings', function () {
|
29
29
|
describe('getEncoding', function () {
|
30
30
|
it('fetches a valid array for known encoding names', function () {
|
31
31
|
var knownEncodingNames = ['ExpertEncoding', 'MacExpertEncoding', 'MacRomanEncoding', 'StandardEncoding', 'SymbolSetEncoding', 'WinAnsiEncoding', 'ZapfDingbatsEncoding'];
|
32
|
-
var _iteratorNormalCompletion = true;
|
33
|
-
var _didIteratorError = false;
|
34
|
-
var _iteratorError = undefined;
|
35
32
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
var _didIteratorError2 = false;
|
45
|
-
var _iteratorError2 = undefined;
|
33
|
+
for (var _i = 0; _i < knownEncodingNames.length; _i++) {
|
34
|
+
var knownEncodingName = knownEncodingNames[_i];
|
35
|
+
var encoding = (0, _encodings.getEncoding)(knownEncodingName);
|
36
|
+
expect(Array.isArray(encoding)).toEqual(true);
|
37
|
+
expect(encoding.length).toEqual(256);
|
38
|
+
var _iteratorNormalCompletion = true;
|
39
|
+
var _didIteratorError = false;
|
40
|
+
var _iteratorError = undefined;
|
46
41
|
|
42
|
+
try {
|
43
|
+
for (var _iterator = encoding[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
44
|
+
var item = _step.value;
|
45
|
+
expect(_typeof(item)).toEqual('string');
|
46
|
+
}
|
47
|
+
} catch (err) {
|
48
|
+
_didIteratorError = true;
|
49
|
+
_iteratorError = err;
|
50
|
+
} finally {
|
47
51
|
try {
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
expect(typeof item === 'undefined' ? 'undefined' : _typeof(item)).toEqual('string');
|
52
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
53
|
+
_iterator.return();
|
52
54
|
}
|
53
|
-
} catch (err) {
|
54
|
-
_didIteratorError2 = true;
|
55
|
-
_iteratorError2 = err;
|
56
55
|
} finally {
|
57
|
-
|
58
|
-
|
59
|
-
_iterator2.return();
|
60
|
-
}
|
61
|
-
} finally {
|
62
|
-
if (_didIteratorError2) {
|
63
|
-
throw _iteratorError2;
|
64
|
-
}
|
56
|
+
if (_didIteratorError) {
|
57
|
+
throw _iteratorError;
|
65
58
|
}
|
66
59
|
}
|
67
60
|
}
|
68
|
-
} catch (err) {
|
69
|
-
_didIteratorError = true;
|
70
|
-
_iteratorError = err;
|
71
|
-
} finally {
|
72
|
-
try {
|
73
|
-
if (!_iteratorNormalCompletion && _iterator.return) {
|
74
|
-
_iterator.return();
|
75
|
-
}
|
76
|
-
} finally {
|
77
|
-
if (_didIteratorError) {
|
78
|
-
throw _iteratorError;
|
79
|
-
}
|
80
|
-
}
|
81
61
|
}
|
82
62
|
});
|
83
63
|
it('fetches `null` for unknown encoding names', function () {
|
@@ -19,26 +19,27 @@
|
|
19
19
|
* @licend The above is the entire license notice for the
|
20
20
|
* Javascript code in this page
|
21
21
|
*/
|
22
|
-
|
22
|
+
"use strict";
|
23
23
|
|
24
|
-
var _primitives = require(
|
24
|
+
var _primitives = require("../../core/primitives");
|
25
25
|
|
26
|
-
var _util = require(
|
26
|
+
var _util = require("../../shared/util");
|
27
27
|
|
28
|
-
var _stream = require(
|
28
|
+
var _stream = require("../../core/stream");
|
29
29
|
|
30
|
-
var _operator_list = require(
|
30
|
+
var _operator_list = require("../../core/operator_list");
|
31
31
|
|
32
|
-
var _evaluator = require(
|
32
|
+
var _evaluator = require("../../core/evaluator");
|
33
33
|
|
34
|
-
var _worker = require(
|
34
|
+
var _worker = require("../../core/worker");
|
35
35
|
|
36
|
-
var _test_utils = require(
|
36
|
+
var _test_utils = require("./test_utils");
|
37
37
|
|
38
38
|
describe('evaluator', function () {
|
39
39
|
function HandlerMock() {
|
40
40
|
this.inputs = [];
|
41
41
|
}
|
42
|
+
|
42
43
|
HandlerMock.prototype = {
|
43
44
|
send: function send(name, data) {
|
44
45
|
this.inputs.push({
|
@@ -47,13 +48,17 @@ describe('evaluator', function () {
|
|
47
48
|
});
|
48
49
|
}
|
49
50
|
};
|
51
|
+
|
50
52
|
function ResourcesMock() {}
|
53
|
+
|
51
54
|
ResourcesMock.prototype = {
|
52
55
|
get: function get(name) {
|
53
56
|
return this[name];
|
54
57
|
}
|
55
58
|
};
|
59
|
+
|
56
60
|
function PdfManagerMock() {}
|
61
|
+
|
57
62
|
function runOperatorListCheck(evaluator, stream, resources, callback) {
|
58
63
|
var result = new _operator_list.OperatorList();
|
59
64
|
var task = new _worker.WorkerTask('OperatorListCheck');
|
@@ -68,6 +73,7 @@ describe('evaluator', function () {
|
|
68
73
|
callback(reason);
|
69
74
|
});
|
70
75
|
}
|
76
|
+
|
71
77
|
var partialEvaluator;
|
72
78
|
beforeAll(function (done) {
|
73
79
|
partialEvaluator = new _evaluator.PartialEvaluator({
|
@@ -298,6 +304,7 @@ describe('evaluator', function () {
|
|
298
304
|
});
|
299
305
|
describe('operator list', function () {
|
300
306
|
function MessageHandlerMock() {}
|
307
|
+
|
301
308
|
MessageHandlerMock.prototype = {
|
302
309
|
send: function send() {}
|
303
310
|
};
|
@@ -19,13 +19,13 @@
|
|
19
19
|
* @licend The above is the entire license notice for the
|
20
20
|
* Javascript code in this page
|
21
21
|
*/
|
22
|
-
|
22
|
+
"use strict";
|
23
23
|
|
24
|
-
var _function = require(
|
24
|
+
var _function = require("../../core/function");
|
25
25
|
|
26
|
-
var _ps_parser = require(
|
26
|
+
var _ps_parser = require("../../core/ps_parser");
|
27
27
|
|
28
|
-
var _stream = require(
|
28
|
+
var _stream = require("../../core/stream");
|
29
29
|
|
30
30
|
describe('function', function () {
|
31
31
|
beforeEach(function () {
|
@@ -34,23 +34,29 @@ describe('function', function () {
|
|
34
34
|
return {
|
35
35
|
compare: function compare(actual, expected) {
|
36
36
|
var result = {};
|
37
|
+
|
37
38
|
if (actual.length !== expected.length) {
|
38
39
|
result.pass = false;
|
39
40
|
result.message = 'Array length: ' + actual.length + ', expected: ' + expected.length;
|
40
41
|
return result;
|
41
42
|
}
|
43
|
+
|
42
44
|
result.pass = true;
|
45
|
+
|
43
46
|
for (var i = 0; i < expected.length; i++) {
|
44
47
|
var a = actual[i],
|
45
48
|
b = expected[i];
|
49
|
+
|
46
50
|
if (Array.isArray(b)) {
|
47
51
|
if (a.length !== b.length) {
|
48
52
|
result.pass = false;
|
49
53
|
break;
|
50
54
|
}
|
55
|
+
|
51
56
|
for (var j = 0; j < a.length; j++) {
|
52
57
|
var suba = a[j],
|
53
58
|
subb = b[j];
|
59
|
+
|
54
60
|
if (suba !== subb) {
|
55
61
|
result.pass = false;
|
56
62
|
break;
|
@@ -63,6 +69,7 @@ describe('function', function () {
|
|
63
69
|
}
|
64
70
|
}
|
65
71
|
}
|
72
|
+
|
66
73
|
return result;
|
67
74
|
}
|
68
75
|
};
|
@@ -75,6 +82,7 @@ describe('function', function () {
|
|
75
82
|
var parser = new _ps_parser.PostScriptParser(new _ps_parser.PostScriptLexer(stream));
|
76
83
|
return parser.parse();
|
77
84
|
}
|
85
|
+
|
78
86
|
it('parses empty programs', function () {
|
79
87
|
var output = parse('{}');
|
80
88
|
expect(output.length).toEqual(0);
|
@@ -133,6 +141,7 @@ describe('function', function () {
|
|
133
141
|
var output = evaluator.execute();
|
134
142
|
return output;
|
135
143
|
}
|
144
|
+
|
136
145
|
it('pushes stack', function () {
|
137
146
|
var stack = evaluate('{ 99 }');
|
138
147
|
var expectedStack = [99];
|
@@ -448,11 +457,13 @@ describe('function', function () {
|
|
448
457
|
function check(code, domain, range, samples) {
|
449
458
|
var compiler = new _function.PostScriptCompiler();
|
450
459
|
var compiledCode = compiler.compile(code, domain, range);
|
460
|
+
|
451
461
|
if (samples === null) {
|
452
462
|
expect(compiledCode).toBeNull();
|
453
463
|
} else {
|
454
464
|
expect(compiledCode).not.toBeNull();
|
455
465
|
var fn = new Function('src', 'srcOffset', 'dest', 'destOffset', compiledCode);
|
466
|
+
|
456
467
|
for (var i = 0; i < samples.length; i++) {
|
457
468
|
var out = new Float32Array(samples[i].output.length);
|
458
469
|
fn(samples[i].input, 0, out, 0);
|
@@ -460,6 +471,7 @@ describe('function', function () {
|
|
460
471
|
}
|
461
472
|
}
|
462
473
|
}
|
474
|
+
|
463
475
|
it('check compiled add', function () {
|
464
476
|
check([0.25, 0.5, 'add'], [], [0, 1], [{
|
465
477
|
input: [],
|