Implement unit and reference testing for FileAttachment annotations

This commit is contained in:
Tim van der Meij 2016-02-14 21:27:53 +01:00
parent 6a33dfd13a
commit 10902fd882
4 changed files with 54 additions and 1 deletions

View File

@ -217,3 +217,4 @@
!annotation-strikeout.pdf !annotation-strikeout.pdf
!annotation-squiggly.pdf !annotation-squiggly.pdf
!annotation-highlight.pdf !annotation-highlight.pdf
!annotation-fileattachment.pdf

Binary file not shown.

View File

@ -2764,6 +2764,13 @@
"type": "eq", "type": "eq",
"annotations": true "annotations": true
}, },
{ "id": "annotation-fileattachment",
"file": "pdfs/annotation-fileattachment.pdf",
"md5": "d20ecee4b53c81b2dd44c8715a1b4a83",
"rounds": 1,
"type": "eq",
"annotations": true
},
{ "id": "issue6108", { "id": "issue6108",
"file": "pdfs/issue6108.pdf", "file": "pdfs/issue6108.pdf",
"md5": "8961cb55149495989a80bf0487e0f076", "md5": "8961cb55149495989a80bf0487e0f076",

View File

@ -1,9 +1,25 @@
/* globals expect, it, describe, Dict, Name, Annotation, AnnotationBorderStyle, /* globals expect, it, describe, Dict, Name, Annotation, AnnotationBorderStyle,
AnnotationBorderStyleType, AnnotationFlag */ AnnotationBorderStyleType, AnnotationFlag, PDFJS, combineUrl,
waitsFor, beforeEach, afterEach, stringToBytes */
'use strict'; 'use strict';
describe('Annotation layer', function() { describe('Annotation layer', function() {
function waitsForPromiseResolved(promise, successCallback) {
var resolved = false;
promise.then(function(val) {
resolved = true;
successCallback(val);
},
function(error) {
// Shouldn't get here.
expect(error).toEqual('the promise should not have been rejected');
});
waitsFor(function() {
return resolved;
}, 20000);
}
describe('Annotation', function() { describe('Annotation', function() {
it('should set and get flags', function() { it('should set and get flags', function() {
var dict = new Dict(); var dict = new Dict();
@ -172,4 +188,33 @@ describe('Annotation layer', function() {
expect(borderStyle.verticalCornerRadius).toEqual(0); expect(borderStyle.verticalCornerRadius).toEqual(0);
}); });
}); });
describe('FileAttachmentAnnotation', function() {
var loadingTask;
var annotations;
beforeEach(function() {
var pdfUrl = combineUrl(window.location.href,
'../pdfs/annotation-fileattachment.pdf');
loadingTask = PDFJS.getDocument(pdfUrl);
waitsForPromiseResolved(loadingTask.promise, function(pdfDocument) {
waitsForPromiseResolved(pdfDocument.getPage(1), function(pdfPage) {
waitsForPromiseResolved(pdfPage.getAnnotations(),
function (pdfAnnotations) {
annotations = pdfAnnotations;
});
});
});
});
afterEach(function() {
loadingTask.destroy();
});
it('should correctly parse a file attachment', function() {
var annotation = annotations[0];
expect(annotation.file.filename).toEqual('Test.txt');
expect(annotation.file.content).toEqual(stringToBytes('Test attachment'));
});
});
}); });