1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-20 15:18:08 +02:00

Handle nested post script arguments in the preprocessor

Fix for issue #4785
This commit is contained in:
Christian Krebs 2014-05-15 08:07:43 +02:00
parent 6d330250da
commit 3e7bcaa892
2 changed files with 30 additions and 4 deletions

View file

@ -18,7 +18,7 @@ describe('evaluator', function() {
}
HandlerMock.prototype = {
send: function(name, data) {
this.inputs({name: name, data: data});
this.inputs.push({name: name, data: data});
}
};
function ResourcesMock() { }
@ -149,11 +149,25 @@ describe('evaluator', function() {
'prefix');
var stream = new StringStream('5 1 4 d0');
var result = evaluator.getOperatorList(stream, new ResourcesMock());
expect(result.argsArray[0][0]).toEqual(5);
expect(result.argsArray[0][1]).toEqual(1);
expect(result.argsArray[0][2]).toEqual(4);
expect(result.argsArray[0][0]).toEqual(1);
expect(result.argsArray[0][1]).toEqual(4);
expect(result.fnArray[0]).toEqual(OPS.setCharWidth);
});
it('should execute if nested commands', function() {
var evaluator = new PartialEvaluator(new PdfManagerMock(),
new XrefMock(), new HandlerMock(),
'prefix');
var stream = new StringStream('/F2 /GS2 gs 5.711 Tf');
var result = evaluator.getOperatorList(stream, new ResourcesMock());
expect(result.fnArray.length).toEqual(3);
expect(result.fnArray[0]).toEqual(OPS.setGState);
expect(result.fnArray[1]).toEqual(OPS.dependency);
expect(result.fnArray[2]).toEqual(OPS.setFont);
expect(result.argsArray.length).toEqual(3);
expect(result.argsArray[0].length).toEqual(1);
expect(result.argsArray[1].length).toEqual(1);
expect(result.argsArray[2].length).toEqual(2);
});
it('should skip if too few arguments', function() {
var evaluator = new PartialEvaluator(new PdfManagerMock(),
new XrefMock(), new HandlerMock(),