mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-20 15:18:08 +02:00
Merge pull request #8691 from timvandermeij/square-circle-annotations
Implement support for square and circle annotations
This commit is contained in:
commit
320779e6ed
9 changed files with 267 additions and 55 deletions
1
test/pdfs/.gitignore
vendored
1
test/pdfs/.gitignore
vendored
|
@ -284,6 +284,7 @@
|
|||
!annotation-squiggly.pdf
|
||||
!annotation-highlight.pdf
|
||||
!annotation-line.pdf
|
||||
!annotation-square-circle.pdf
|
||||
!annotation-fileattachment.pdf
|
||||
!annotation-text-widget.pdf
|
||||
!annotation-choice-widget.pdf
|
||||
|
|
BIN
test/pdfs/annotation-square-circle.pdf
Executable file
BIN
test/pdfs/annotation-square-circle.pdf
Executable file
Binary file not shown.
|
@ -3560,6 +3560,13 @@
|
|||
"type": "eq",
|
||||
"annotations": true
|
||||
},
|
||||
{ "id": "annotation-square-circle",
|
||||
"file": "pdfs/annotation-square-circle.pdf",
|
||||
"md5": "cfd3c302f68d61e1d55ed9c7896046c3",
|
||||
"rounds": 1,
|
||||
"type": "eq",
|
||||
"annotations": true
|
||||
},
|
||||
{ "id": "annotation-fileattachment",
|
||||
"file": "pdfs/annotation-fileattachment.pdf",
|
||||
"md5": "d20ecee4b53c81b2dd44c8715a1b4a83",
|
||||
|
|
|
@ -14,11 +14,72 @@
|
|||
*/
|
||||
|
||||
import {
|
||||
getFilenameFromUrl, isExternalLinkTargetSet, LinkTarget
|
||||
DOMSVGFactory, getFilenameFromUrl, isExternalLinkTargetSet, LinkTarget
|
||||
} from '../../src/display/dom_utils';
|
||||
import { isNodeJS } from '../../src/shared/util';
|
||||
import { PDFJS } from '../../src/display/global';
|
||||
|
||||
describe('dom_utils', function() {
|
||||
describe('DOMSVGFactory', function() {
|
||||
let svgFactory;
|
||||
|
||||
beforeAll(function (done) {
|
||||
svgFactory = new DOMSVGFactory();
|
||||
done();
|
||||
});
|
||||
|
||||
afterAll(function () {
|
||||
svgFactory = null;
|
||||
});
|
||||
|
||||
it('`create` should throw an error if the dimensions are invalid',
|
||||
function() {
|
||||
// Invalid width.
|
||||
expect(function() {
|
||||
return svgFactory.create(-1, 0);
|
||||
}).toThrow(new Error('Invalid SVG dimensions'));
|
||||
|
||||
// Invalid height.
|
||||
expect(function() {
|
||||
return svgFactory.create(0, -1);
|
||||
}).toThrow(new Error('Invalid SVG dimensions'));
|
||||
});
|
||||
|
||||
it('`create` should return an SVG element if the dimensions are valid',
|
||||
function() {
|
||||
if (isNodeJS()) {
|
||||
pending('Document is not supported in Node.js.');
|
||||
}
|
||||
|
||||
let svg = svgFactory.create(20, 40);
|
||||
|
||||
expect(svg instanceof SVGSVGElement).toBe(true);
|
||||
expect(svg.getAttribute('version')).toBe('1.1');
|
||||
expect(svg.getAttribute('width')).toBe('20px');
|
||||
expect(svg.getAttribute('height')).toBe('40px');
|
||||
expect(svg.getAttribute('preserveAspectRatio')).toBe('none');
|
||||
expect(svg.getAttribute('viewBox')).toBe('0 0 20 40');
|
||||
});
|
||||
|
||||
it('`createElement` should throw an error if the type is not a string',
|
||||
function() {
|
||||
expect(function() {
|
||||
return svgFactory.createElement(true);
|
||||
}).toThrow(new Error('Invalid SVG element type'));
|
||||
});
|
||||
|
||||
it('`createElement` should return an SVG element if the type is valid',
|
||||
function() {
|
||||
if (isNodeJS()) {
|
||||
pending('Document is not supported in Node.js.');
|
||||
}
|
||||
|
||||
let svg = svgFactory.createElement('svg:rect');
|
||||
|
||||
expect(svg instanceof SVGRectElement).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe('getFilenameFromUrl', function() {
|
||||
it('should get the filename from an absolute URL', function() {
|
||||
var url = 'http://server.org/filename.pdf';
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue