Merge pull request #6239 from timvandermeij/annotation-rectangle

Refactor annotation rectangle code and add unit tests
This commit is contained in:
Jonas Jenwald 2015-07-20 23:25:49 +02:00
commit 862342189f
2 changed files with 36 additions and 2 deletions

View File

@ -75,10 +75,11 @@ var Annotation = (function AnnotationClosure() {
var data = this.data = {};
data.subtype = dict.get('Subtype').name;
var rect = dict.get('Rect') || [0, 0, 0, 0];
data.rect = Util.normalizeRect(rect);
data.annotationFlags = dict.get('F');
this.setRectangle(dict.get('Rect'));
data.rect = this.rectangle;
this.setColor(dict.get('C'));
data.color = this.color;
@ -91,6 +92,21 @@ var Annotation = (function AnnotationClosure() {
}
Annotation.prototype = {
/**
* Set the rectangle.
*
* @public
* @memberof Annotation
* @param {Array} rectangle - The rectangle array with exactly four entries
*/
setRectangle: function Annotation_setRectangle(rectangle) {
if (isArray(rectangle) && rectangle.length === 4) {
this.rectangle = Util.normalizeRect(rectangle);
} else {
this.rectangle = [0, 0, 0, 0];
}
},
/**
* Set the color and take care of color space conversion.
*

View File

@ -7,6 +7,24 @@
describe('Annotation layer', function() {
describe('Annotation', function() {
it('should set and get a valid rectangle', function() {
var dict = new Dict();
dict.set('Subtype', '');
var annotation = new Annotation({ dict: dict, ref: 0 });
annotation.setRectangle([117, 694, 164.298, 720]);
expect(annotation.rectangle).toEqual([117, 694, 164.298, 720]);
});
it('should not set and get an invalid rectangle', function() {
var dict = new Dict();
dict.set('Subtype', '');
var annotation = new Annotation({ dict: dict, ref: 0 });
annotation.setRectangle([117, 694, 164.298]);
expect(annotation.rectangle).toEqual([0, 0, 0, 0]);
});
it('should reject a color if it is not an array', function() {
var dict = new Dict();
dict.set('Subtype', '');