Merge pull request #9415 from Snuffleupagus/clitests-PDFNodeStream

Utilize `PDFNodeStream` to run more API unit-tests on Node.js/Travis
This commit is contained in:
Tim van der Meij 2018-01-28 18:24:59 +01:00 committed by GitHub
commit 55e3f97aa9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 42 additions and 13 deletions

View File

@ -61,9 +61,6 @@ describe('api', function() {
describe('PDFJS', function() { describe('PDFJS', function() {
describe('getDocument', function() { describe('getDocument', function() {
it('creates pdf doc from URL', function(done) { it('creates pdf doc from URL', function(done) {
if (isNodeJS()) {
pending('XMLHttpRequest is not supported in Node.js.');
}
var loadingTask = getDocument(basicApiGetDocumentParams); var loadingTask = getDocument(basicApiGetDocumentParams);
var isProgressReportedResolved = false; var isProgressReportedResolved = false;
@ -93,9 +90,6 @@ describe('api', function() {
}); });
it('creates pdf doc from URL and aborts before worker initialized', it('creates pdf doc from URL and aborts before worker initialized',
function(done) { function(done) {
if (isNodeJS()) {
pending('XMLHttpRequest is not supported in Node.js.');
}
var loadingTask = getDocument(basicApiGetDocumentParams); var loadingTask = getDocument(basicApiGetDocumentParams);
let destroyed = loadingTask.destroy(); let destroyed = loadingTask.destroy();
@ -108,9 +102,6 @@ describe('api', function() {
}); });
it('creates pdf doc from URL and aborts loading after worker initialized', it('creates pdf doc from URL and aborts loading after worker initialized',
function(done) { function(done) {
if (isNodeJS()) {
pending('XMLHttpRequest is not supported in Node.js.');
}
var loadingTask = getDocument(basicApiGetDocumentParams); var loadingTask = getDocument(basicApiGetDocumentParams);
// This can be somewhat random -- we cannot guarantee perfect // This can be somewhat random -- we cannot guarantee perfect
// 'Terminate' message to the worker before/after setting up pdfManager. // 'Terminate' message to the worker before/after setting up pdfManager.

View File

@ -1,5 +1,10 @@
{ {
"spec_dir": "build/lib/test/unit", "spec_dir": "build/lib/test/unit",
"helpers": [
"clitests_helper.js"
],
"spec_files": [ "spec_files": [
"annotation_spec.js", "annotation_spec.js",
"api_spec.js", "api_spec.js",

View File

@ -0,0 +1,29 @@
/* Copyright 2018 Mozilla Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import isNodeJS from '../../src/shared/is_node';
import { PDFNodeStream } from '../../src/display/node_stream';
import { setPDFNetworkStreamFactory } from '../../src/display/api';
// Ensure that this script only runs in Node.js environments.
if (!isNodeJS()) {
throw new Error('The `gulp unittestcli` command can only be used in ' +
'Node.js environments.');
}
// Set the network stream factory for the unit-tests.
setPDFNetworkStreamFactory(function(params) {
return new PDFNodeStream(params);
});

View File

@ -46,6 +46,7 @@ function initializePDFJS(callback) {
'pdfjs/display/api', 'pdfjs/display/api',
'pdfjs/display/network', 'pdfjs/display/network',
'pdfjs/display/fetch_stream', 'pdfjs/display/fetch_stream',
'pdfjs/shared/is_node',
'pdfjs-test/unit/annotation_spec', 'pdfjs-test/unit/annotation_spec',
'pdfjs-test/unit/api_spec', 'pdfjs-test/unit/api_spec',
'pdfjs-test/unit/bidi_spec', 'pdfjs-test/unit/bidi_spec',
@ -81,8 +82,13 @@ function initializePDFJS(callback) {
var displayApi = modules[1]; var displayApi = modules[1];
var PDFNetworkStream = modules[2].PDFNetworkStream; var PDFNetworkStream = modules[2].PDFNetworkStream;
var PDFFetchStream = modules[3].PDFFetchStream; var PDFFetchStream = modules[3].PDFFetchStream;
const isNodeJS = modules[4];
// Set network stream class for unit tests. if (isNodeJS()) {
throw new Error('The `gulp unittest` command cannot be used in ' +
'Node.js environments.');
}
// Set the network stream factory for unit-tests.
if (typeof Response !== 'undefined' && 'body' in Response.prototype && if (typeof Response !== 'undefined' && 'body' in Response.prototype &&
typeof ReadableStream !== 'undefined') { typeof ReadableStream !== 'undefined') {
displayApi.setPDFNetworkStreamFactory(function(params) { displayApi.setPDFNetworkStreamFactory(function(params) {

View File

@ -33,9 +33,7 @@ const TEST_PDFS_PATH = {
function buildGetDocumentParams(filename, options) { function buildGetDocumentParams(filename, options) {
let params = Object.create(null); let params = Object.create(null);
if (isNodeJS()) { if (isNodeJS()) {
params.data = NodeFileReaderFactory.fetch({ params.url = TEST_PDFS_PATH.node + filename;
path: TEST_PDFS_PATH.node + filename,
});
} else { } else {
params.url = new URL(TEST_PDFS_PATH.dom + filename, window.location).href; params.url = new URL(TEST_PDFS_PATH.dom + filename, window.location).href;
} }