Use the DOMCanvasFactory
in the API unit-tests
There's still some work necessary if we want to be able to run (even a subset of) the API unit-tests on Travis. However, this patch could be considered a small first step, since the relevant unit-tests will now rely on a `CanvasFactory` rather than using `document.createElement('canvas')` directly.
This commit is contained in:
parent
d37d271afa
commit
e6db75b2ef
@ -33,6 +33,7 @@
|
|||||||
|
|
||||||
var PDFJS = displayGlobal.PDFJS;
|
var PDFJS = displayGlobal.PDFJS;
|
||||||
var createPromiseCapability = sharedUtil.createPromiseCapability;
|
var createPromiseCapability = sharedUtil.createPromiseCapability;
|
||||||
|
var DOMCanvasFactory = displayDOMUtils.DOMCanvasFactory;
|
||||||
var RenderingCancelledException = displayDOMUtils.RenderingCancelledException;
|
var RenderingCancelledException = displayDOMUtils.RenderingCancelledException;
|
||||||
var PDFDocumentProxy = displayApi.PDFDocumentProxy;
|
var PDFDocumentProxy = displayApi.PDFDocumentProxy;
|
||||||
var InvalidPDFException = sharedUtil.InvalidPDFException;
|
var InvalidPDFException = sharedUtil.InvalidPDFException;
|
||||||
@ -46,6 +47,16 @@ var FontType = sharedUtil.FontType;
|
|||||||
describe('api', function() {
|
describe('api', function() {
|
||||||
var basicApiUrl = new URL('../pdfs/basicapi.pdf', window.location).href;
|
var basicApiUrl = new URL('../pdfs/basicapi.pdf', window.location).href;
|
||||||
var basicApiFileLength = 105779; // bytes
|
var basicApiFileLength = 105779; // bytes
|
||||||
|
var CanvasFactory;
|
||||||
|
|
||||||
|
beforeAll(function(done) {
|
||||||
|
CanvasFactory = new DOMCanvasFactory();
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
afterAll(function () {
|
||||||
|
CanvasFactory = null;
|
||||||
|
});
|
||||||
|
|
||||||
function waitSome(callback) {
|
function waitSome(callback) {
|
||||||
var WAIT_TIMEOUT = 10;
|
var WAIT_TIMEOUT = 10;
|
||||||
@ -1006,11 +1017,11 @@ describe('api', function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('cancels rendering of page', function(done) {
|
it('cancels rendering of page', function(done) {
|
||||||
var canvas = document.createElement('canvas');
|
|
||||||
var viewport = page.getViewport(1);
|
var viewport = page.getViewport(1);
|
||||||
|
var canvasAndCtx = CanvasFactory.create(viewport.width, viewport.height);
|
||||||
|
|
||||||
var renderTask = page.render({
|
var renderTask = page.render({
|
||||||
canvasContext: canvas.getContext('2d'),
|
canvasContext: canvasAndCtx.context,
|
||||||
viewport: viewport,
|
viewport: viewport,
|
||||||
});
|
});
|
||||||
renderTask.cancel();
|
renderTask.cancel();
|
||||||
@ -1020,6 +1031,7 @@ describe('api', function() {
|
|||||||
}).catch(function (error) {
|
}).catch(function (error) {
|
||||||
expect(error instanceof RenderingCancelledException).toEqual(true);
|
expect(error instanceof RenderingCancelledException).toEqual(true);
|
||||||
expect(error.type).toEqual('canvas');
|
expect(error.type).toEqual('canvas');
|
||||||
|
CanvasFactory.destroy(canvasAndCtx);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -1045,15 +1057,16 @@ describe('api', function() {
|
|||||||
pdfDocuments.push(pdf);
|
pdfDocuments.push(pdf);
|
||||||
return pdf.getPage(1);
|
return pdf.getPage(1);
|
||||||
}).then(function(page) {
|
}).then(function(page) {
|
||||||
var c = document.createElement('canvas');
|
var viewport = page.getViewport(1.2);
|
||||||
var v = page.getViewport(1.2);
|
var canvasAndCtx = CanvasFactory.create(viewport.width,
|
||||||
c.width = v.width;
|
viewport.height);
|
||||||
c.height = v.height;
|
|
||||||
return page.render({
|
return page.render({
|
||||||
canvasContext: c.getContext('2d'),
|
canvasContext: canvasAndCtx.context,
|
||||||
viewport: v,
|
viewport: viewport,
|
||||||
}).then(function() {
|
}).then(function() {
|
||||||
return c.toDataURL();
|
var data = canvasAndCtx.canvas.toDataURL();
|
||||||
|
CanvasFactory.destroy(canvasAndCtx);
|
||||||
|
return data;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user