mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-20 15:18:08 +02:00
Adds thread abort capabilities.
This commit is contained in:
parent
59c13b32aa
commit
58c3ea0820
6 changed files with 186 additions and 53 deletions
|
@ -1,13 +1,13 @@
|
|||
/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
|
||||
/* globals expect, it, describe, PartialEvaluator, StringStream, OPS,
|
||||
OperatorList, waitsFor, runs, Dict, Name, Stream */
|
||||
OperatorList, waitsFor, runs, Dict, Name, Stream, WorkerTask */
|
||||
|
||||
'use strict';
|
||||
|
||||
describe('evaluator', function() {
|
||||
function XrefMock(queue) {
|
||||
this.queue = queue;
|
||||
this.queue = queue || [];
|
||||
}
|
||||
XrefMock.prototype = {
|
||||
fetchIfRef: function() {
|
||||
|
@ -35,7 +35,9 @@ describe('evaluator', function() {
|
|||
var done = false;
|
||||
runs(function () {
|
||||
var result = new OperatorList();
|
||||
evaluator.getOperatorList(stream, resources, result).then(function () {
|
||||
var task = new WorkerTask('OperatorListCheck');
|
||||
evaluator.getOperatorList(stream, task, resources, result).then(
|
||||
function () {
|
||||
check(result);
|
||||
done = true;
|
||||
});
|
||||
|
@ -259,4 +261,48 @@ describe('evaluator', function() {
|
|||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('thread control', function() {
|
||||
it('should abort operator list parsing', function () {
|
||||
var evaluator = new PartialEvaluator(new PdfManagerMock(),
|
||||
new XrefMock(), new HandlerMock(),
|
||||
'prefix');
|
||||
var stream = new StringStream('qqQQ');
|
||||
var resources = new ResourcesMock();
|
||||
var done = false;
|
||||
runs(function () {
|
||||
var result = new OperatorList();
|
||||
var task = new WorkerTask('OperatorListAbort');
|
||||
task.terminate();
|
||||
evaluator.getOperatorList(stream, task, resources, result).catch(
|
||||
function () {
|
||||
done = true;
|
||||
expect(!!result.fnArray && !!result.argsArray).toEqual(true);
|
||||
expect(result.fnArray.length).toEqual(0);
|
||||
});
|
||||
});
|
||||
waitsFor(function () {
|
||||
return done;
|
||||
});
|
||||
});
|
||||
it('should abort text parsing parsing', function () {
|
||||
var resources = new ResourcesMock();
|
||||
var evaluator = new PartialEvaluator(new PdfManagerMock(),
|
||||
new XrefMock(), new HandlerMock(),
|
||||
'prefix');
|
||||
var stream = new StringStream('qqQQ');
|
||||
var done = false;
|
||||
runs(function () {
|
||||
var task = new WorkerTask('TextContentAbort');
|
||||
task.terminate();
|
||||
evaluator.getTextContent(stream, task, resources).catch(
|
||||
function () {
|
||||
done = true;
|
||||
});
|
||||
});
|
||||
waitsFor(function () {
|
||||
return done;
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue