[Pkg-javascript-commits] [pdf.js] 308/414: Add unit-tests for destionations in /Names (NameTree) dictionaries where all entries are indirect objects
David Prévot
taffit at moszumanska.debian.org
Tue Jun 28 17:12:34 UTC 2016
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository pdf.js.
commit ac772017b6a567c1aad52b3c16495e87c4d08065
Author: Jonas Jenwald <jonas.jenwald at gmail.com>
Date: Tue Mar 29 15:46:21 2016 +0200
Add unit-tests for destionations in /Names (NameTree) dictionaries where all entries are indirect objects
Re: issue 6204 and PR 6208.
---
test/pdfs/.gitignore | 1 +
test/pdfs/issue6204.pdf | 217 ++++++++++++++++++++++++++++++++++++++++++++++++
test/unit/api_spec.js | 60 ++++++++++++-
3 files changed, 275 insertions(+), 3 deletions(-)
diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore
index a86090e..b675adf 100644
--- a/test/pdfs/.gitignore
+++ b/test/pdfs/.gitignore
@@ -17,6 +17,7 @@
!issue5946.pdf
!issue5972.pdf
!issue5874.pdf
+!issue6204.pdf
!issue6782.pdf
!issue6961.pdf
!issue7020.pdf
diff --git a/test/pdfs/issue6204.pdf b/test/pdfs/issue6204.pdf
new file mode 100644
index 0000000..c61c6d9
--- /dev/null
+++ b/test/pdfs/issue6204.pdf
@@ -0,0 +1,217 @@
+%PDF-1.5
+%����
+1 0 obj
+<<
+/Parent 2 0 R
+/Annots [3 0 R]
+/MediaBox [0 0 325 375]
+/Resources 4 0 R
+/Contents 5 0 R
+/Type /Page
+>>
+endobj
+2 0 obj
+<<
+/Kids [1 0 R 6 0 R]
+/Count 2
+/Type /Pages
+>>
+endobj
+3 0 obj
+<<
+/Border [0 0 1]
+/Subtype /Link
+/C [1 0 0]
+/A
+<<
+/D (Page.2)
+/S /GoTo
+>>
+/Type /Annot
+/Rect [205 345 310 320]
+/H /I
+>>
+endobj
+4 0 obj
+<<
+/Font
+<<
+/F1 7 0 R
+>>
+>>
+endobj
+5 0 obj
+<<
+/Length 77
+>>
+stream
+BT
+1 0 0 1 10 325 Tm
+/F1 20 Tf
+(This is page 1. Goto the second page.) Tj
+ET
+
+endstream
+endobj
+6 0 obj
+<<
+/Parent 2 0 R
+/Annots [8 0 R]
+/MediaBox [0 0 325 375]
+/Resources 9 0 R
+/Contents 10 0 R
+/Type /Page
+>>
+endobj
+7 0 obj
+<<
+/BaseFont /Times-Roman
+/Subtype /Type1
+/Type /Font
+/Encoding /WinAnsiEncoding
+>>
+endobj
+11 0 obj
+<<
+/D 12 0 R
+>>
+endobj
+12 0 obj [1 0 R /XYZ 0 375 null]
+endobj
+8 0 obj
+<<
+/Border [0 0 1]
+/Subtype /Link
+/C [1 0 0]
+/A
+<<
+/D (Page.1)
+/S /GoTo
+>>
+/Type /Annot
+/Rect [205 345 290 320]
+/H /I
+>>
+endobj
+9 0 obj
+<<
+/Font
+<<
+/F1 7 0 R
+>>
+>>
+endobj
+10 0 obj
+<<
+/Length 76
+>>
+stream
+BT
+1 0 0 1 10 325 Tm
+/F1 20 Tf
+(This is page 2. Goto the first page.) Tj
+ET
+
+endstream
+endobj
+13 0 obj
+<<
+/D 14 0 R
+>>
+endobj
+14 0 obj [6 0 R /XYZ 0 375 null]
+endobj
+15 0 obj
+<<
+/Names 16 0 R
+/Limits 17 0 R
+>>
+endobj
+16 0 obj [18 0 R 11 0 R 19 0 R 13 0 R]
+endobj
+17 0 obj [20 0 R 21 0 R]
+endobj
+22 0 obj
+<<
+/Dests 23 0 R
+>>
+endobj
+24 0 obj
+<<
+/Names 22 0 R
+/Pages 2 0 R
+/Type /Catalog
+>>
+endobj
+18 0 obj (Page.1)
+endobj
+19 0 obj (Page.2)
+endobj
+20 0 obj (Page.1)
+endobj
+21 0 obj (Page.2)
+endobj
+23 0 obj
+<<
+/Limits 25 0 R
+/Kids 26 0 R
+>>
+endobj
+25 0 obj [20 0 R 21 0 R]
+endobj
+26 0 obj [15 0 R]
+endobj
+27 0 obj
+<<
+/Author (Jonas Jenwald)
+/Producer (pdfTeX-1.40.16)
+/Creator (LaTeX with hyperref package)
+/Trapped /False
+/Keywords ()
+/ModDate (D:20160329133418+02'00')
+/PTEX.Fullbanner (This is MiKTeX-pdfTeX 2.9.5840 \(1.40.16\))
+/Title (Issue 6204 - reduced)
+/Subject ()
+/CreationDate (D:20160329133418+02'00')
+>>
+endobj xref
+0 28
+0000000000 65535 f
+0000000015 00000 n
+0000000137 00000 n
+0000000202 00000 n
+0000000341 00000 n
+0000000387 00000 n
+0000000517 00000 n
+0000000640 00000 n
+0000000816 00000 n
+0000000955 00000 n
+0000001001 00000 n
+0000000741 00000 n
+0000000775 00000 n
+0000001131 00000 n
+0000001165 00000 n
+0000001206 00000 n
+0000001259 00000 n
+0000001306 00000 n
+0000001443 00000 n
+0000001469 00000 n
+0000001495 00000 n
+0000001521 00000 n
+0000001339 00000 n
+0000001547 00000 n
+0000001377 00000 n
+0000001599 00000 n
+0000001632 00000 n
+0000001658 00000 n
+trailer
+
+<<
+/Info 27 0 R
+/Root 24 0 R
+/Size 28
+/ID [<540bf4f50da824e0b40f8749e21d3a3a> <540bf4f50da824e0b40f8749e21d3a3a>]
+>>
+startxref
+1979
+%%EOF
diff --git a/test/unit/api_spec.js b/test/unit/api_spec.js
index 3ef16be..0e77220 100644
--- a/test/unit/api_spec.js
+++ b/test/unit/api_spec.js
@@ -360,7 +360,8 @@ describe('api', function() {
done.fail(reason);
});
});
- it('gets destinations', function(done) {
+
+ it('gets destinations, from /Dests dictionary', function(done) {
var promise = doc.getDestinations();
promise.then(function(data) {
expect(data).toEqual({ chapter1: [{ gen: 0, num: 17 }, { name: 'XYZ' },
@@ -370,7 +371,7 @@ describe('api', function() {
done.fail(reason);
});
});
- it('gets a destination', function(done) {
+ it('gets a destination, from /Dests dictionary', function(done) {
var promise = doc.getDestination('chapter1');
promise.then(function(data) {
expect(data).toEqual([{ gen: 0, num: 17 }, { name: 'XYZ' },
@@ -380,7 +381,8 @@ describe('api', function() {
done.fail(reason);
});
});
- it('gets a non-existent destination', function(done) {
+ it('gets a non-existent destination, from /Dests dictionary',
+ function(done) {
var promise = doc.getDestination('non-existent-named-destination');
promise.then(function(data) {
expect(data).toEqual(null);
@@ -389,6 +391,58 @@ describe('api', function() {
done.fail(reason);
});
});
+
+ it('gets destinations, from /Names (NameTree) dictionary', function(done) {
+ var url = combineUrl(window.location.href, '../pdfs/issue6204.pdf');
+ var loadingTask = PDFJS.getDocument(url);
+ var promise = loadingTask.promise.then(function (pdfDocument) {
+ return pdfDocument.getDestinations();
+ });
+ promise.then(function (destinations) {
+ expect(destinations).toEqual({
+ 'Page.1': [{ num: 1, gen: 0}, { name: 'XYZ' }, 0, 375, null],
+ 'Page.2': [{ num: 6, gen: 0}, { name: 'XYZ' }, 0, 375, null],
+ });
+
+ loadingTask.destroy();
+ done();
+ }).catch(function (reason) {
+ done.fail(reason);
+ });
+ });
+ it('gets a destination, from /Names (NameTree) dictionary', function(done) {
+ var url = combineUrl(window.location.href, '../pdfs/issue6204.pdf');
+ var loadingTask = PDFJS.getDocument(url);
+ var promise = loadingTask.promise.then(function (pdfDocument) {
+ return pdfDocument.getDestination('Page.1');
+ });
+ promise.then(function (destination) {
+ expect(destination).toEqual([{ num: 1, gen: 0}, { name: 'XYZ' },
+ 0, 375, null]);
+
+ loadingTask.destroy();
+ done();
+ }).catch(function (reason) {
+ done.fail(reason);
+ });
+ });
+ it('gets a non-existent destination, from /Names (NameTree) dictionary',
+ function(done) {
+ var url = combineUrl(window.location.href, '../pdfs/issue6204.pdf');
+ var loadingTask = PDFJS.getDocument(url);
+ var promise = loadingTask.promise.then(function (pdfDocument) {
+ return pdfDocument.getDestination('non-existent-named-destination');
+ });
+ promise.then(function (destination) {
+ expect(destination).toEqual(null);
+
+ loadingTask.destroy();
+ done();
+ }).catch(function (reason) {
+ done.fail(reason);
+ });
+ });
+
it('gets non-existent page labels', function (done) {
var promise = doc.getPageLabels();
promise.then(function (data) {
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/pdf.js.git
More information about the Pkg-javascript-commits
mailing list