Updates Jasmine version.

This commit is contained in:
Yury Delendik 2016-03-29 09:34:13 -05:00
parent df7afcf004
commit 0a700fa29d
25 changed files with 876 additions and 3803 deletions

View file

@ -1,5 +1,5 @@
/* globals expect, it, describe, PartialEvaluator, StringStream, OPS,
OperatorList, waitsFor, runs, Dict, Name, Stream, WorkerTask */
OperatorList, Dict, Name, Stream, WorkerTask */
'use strict';
@ -29,24 +29,17 @@ describe('evaluator', function() {
function PdfManagerMock() { }
function runOperatorListCheck(evaluator, stream, resources, check) {
var done = false;
runs(function () {
var result = new OperatorList();
var task = new WorkerTask('OperatorListCheck');
evaluator.getOperatorList(stream, task, resources, result).then(
function () {
check(result);
done = true;
});
});
waitsFor(function () {
return done;
function runOperatorListCheck(evaluator, stream, resources, callback) {
var result = new OperatorList();
var task = new WorkerTask('OperatorListCheck');
evaluator.getOperatorList(stream, task, resources, result).then(
function () {
callback(result);
});
}
describe('splitCombinedOperations', function() {
it('should reject unknown operations', function() {
it('should reject unknown operations', function(done) {
var evaluator = new PartialEvaluator(new PdfManagerMock(),
new XrefMock(), new HandlerMock(),
'prefix');
@ -58,10 +51,11 @@ describe('evaluator', function() {
expect(result.fnArray.length).toEqual(1);
expect(result.fnArray[0]).toEqual(OPS.fill);
expect(result.argsArray[0]).toEqual(null);
done();
});
});
it('should handle one operations', function() {
it('should handle one operations', function(done) {
var evaluator = new PartialEvaluator(new PdfManagerMock(),
new XrefMock(), new HandlerMock(),
'prefix');
@ -71,10 +65,11 @@ describe('evaluator', function() {
expect(!!result.fnArray && !!result.argsArray).toEqual(true);
expect(result.fnArray.length).toEqual(1);
expect(result.fnArray[0]).toEqual(OPS.restore);
done();
});
});
it('should handle two glued operations', function() {
it('should handle two glued operations', function(done) {
var evaluator = new PartialEvaluator(new PdfManagerMock(),
new XrefMock(), new HandlerMock(),
'prefix');
@ -86,10 +81,11 @@ describe('evaluator', function() {
expect(result.fnArray.length).toEqual(2);
expect(result.fnArray[0]).toEqual(OPS.paintXObject);
expect(result.fnArray[1]).toEqual(OPS.restore);
done();
});
});
it('should handle tree glued operations', function() {
it('should handle tree glued operations', function(done) {
var evaluator = new PartialEvaluator(new PdfManagerMock(),
new XrefMock(), new HandlerMock(),
'prefix');
@ -101,10 +97,11 @@ describe('evaluator', function() {
expect(result.fnArray[0]).toEqual(OPS.fill);
expect(result.fnArray[1]).toEqual(OPS.fill);
expect(result.fnArray[2]).toEqual(OPS.fill);
done();
});
});
it('should handle three glued operations #2', function() {
it('should handle three glued operations #2', function(done) {
var evaluator = new PartialEvaluator(new PdfManagerMock(),
new XrefMock(), new HandlerMock(),
'prefix');
@ -117,10 +114,11 @@ describe('evaluator', function() {
expect(result.fnArray[0]).toEqual(OPS.eoFillStroke);
expect(result.fnArray[1]).toEqual(OPS.fillStroke);
expect(result.fnArray[2]).toEqual(OPS.eoFill);
done();
});
});
it('should handle glued operations and operands', function() {
it('should handle glued operations and operands', function(done) {
var evaluator = new PartialEvaluator(new PdfManagerMock(),
new XrefMock(), new HandlerMock(),
'prefix');
@ -134,10 +132,11 @@ describe('evaluator', function() {
expect(result.argsArray.length).toEqual(2);
expect(result.argsArray[1].length).toEqual(1);
expect(result.argsArray[1][0]).toEqual(5);
done();
});
});
it('should handle glued operations and literals', function() {
it('should handle glued operations and literals', function(done) {
var evaluator = new PartialEvaluator(new PdfManagerMock(),
new XrefMock(), new HandlerMock(),
'prefix');
@ -155,12 +154,13 @@ describe('evaluator', function() {
expect(result.argsArray[1].length).toEqual(1);
expect(result.argsArray[1][0]).toEqual(false);
expect(result.argsArray[2]).toEqual(null);
done();
});
});
});
describe('validateNumberOfArgs', function() {
it('should execute if correct number of arguments', function() {
it('should execute if correct number of arguments', function(done) {
var evaluator = new PartialEvaluator(new PdfManagerMock(),
new XrefMock(), new HandlerMock(),
'prefix');
@ -170,9 +170,10 @@ describe('evaluator', function() {
expect(result.argsArray[0][0]).toEqual(5);
expect(result.argsArray[0][1]).toEqual(1);
expect(result.fnArray[0]).toEqual(OPS.setCharWidth);
done();
});
});
it('should execute if too many arguments', function() {
it('should execute if too many arguments', function(done) {
var evaluator = new PartialEvaluator(new PdfManagerMock(),
new XrefMock(), new HandlerMock(),
'prefix');
@ -182,9 +183,10 @@ describe('evaluator', function() {
expect(result.argsArray[0][0]).toEqual(1);
expect(result.argsArray[0][1]).toEqual(4);
expect(result.fnArray[0]).toEqual(OPS.setCharWidth);
done();
});
});
it('should execute if nested commands', function() {
it('should execute if nested commands', function(done) {
var evaluator = new PartialEvaluator(new PdfManagerMock(),
new XrefMock(), new HandlerMock(),
'prefix');
@ -199,9 +201,10 @@ describe('evaluator', function() {
expect(result.argsArray[0].length).toEqual(1);
expect(result.argsArray[1].length).toEqual(1);
expect(result.argsArray[2].length).toEqual(2);
done();
});
});
it('should skip if too few arguments', function() {
it('should skip if too few arguments', function(done) {
var evaluator = new PartialEvaluator(new PdfManagerMock(),
new XrefMock(), new HandlerMock(),
'prefix');
@ -210,9 +213,10 @@ describe('evaluator', function() {
function (result) {
expect(result.argsArray).toEqual([]);
expect(result.fnArray).toEqual([]);
done();
});
});
it('should close opened saves', function() {
it('should close opened saves', function(done) {
var evaluator = new PartialEvaluator(new PdfManagerMock(),
new XrefMock(), new HandlerMock(),
'prefix');
@ -225,9 +229,10 @@ describe('evaluator', function() {
expect(result.fnArray[1]).toEqual(OPS.save);
expect(result.fnArray[2]).toEqual(OPS.restore);
expect(result.fnArray[3]).toEqual(OPS.restore);
done();
});
});
it('should skip paintXObject if name is missing', function() {
it('should skip paintXObject if name is missing', function(done) {
var evaluator = new PartialEvaluator(new PdfManagerMock(),
new XrefMock(), new HandlerMock(),
'prefix');
@ -236,9 +241,10 @@ describe('evaluator', function() {
function (result) {
expect(result.argsArray).toEqual([]);
expect(result.fnArray).toEqual([]);
done();
});
});
it('should skip paintXObject if subtype is PS', function() {
it('should skip paintXObject if subtype is PS', function(done) {
var evaluator = new PartialEvaluator(new PdfManagerMock(),
new XrefMock(), new HandlerMock(),
'prefix');
@ -256,51 +262,41 @@ describe('evaluator', function() {
runOperatorListCheck(evaluator, stream, resources, function (result) {
expect(result.argsArray).toEqual([]);
expect(result.fnArray).toEqual([]);
done();
});
});
});
describe('thread control', function() {
it('should abort operator list parsing', function () {
it('should abort operator list parsing', function (done) {
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;
});
var result = new OperatorList();
var task = new WorkerTask('OperatorListAbort');
task.terminate();
evaluator.getOperatorList(stream, task, resources, result).catch(
function () {
expect(!!result.fnArray && !!result.argsArray).toEqual(true);
expect(result.fnArray.length).toEqual(0);
done();
});
});
it('should abort text parsing parsing', function () {
it('should abort text parsing parsing', function (done) {
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;
});
var task = new WorkerTask('TextContentAbort');
task.terminate();
evaluator.getTextContent(stream, task, resources).catch(
function () {
expect(true).toEqual(true);
done();
});
});
});