From 618cb1f3e561b5d2a1dea9ec4653804f0da7267c Mon Sep 17 00:00:00 2001 From: tonikitoo Date: Thu, 18 Aug 2016 20:10:17 -0700 Subject: Add initial Document::getAnnot support CL implements the first step in order to support Annotations manipulation in PDFium: Document::getAnnot. The method takes two arguments, an integer (page number) and a string (annotation name). When called, it iterates over the annotations on the given page number, searching for the one whose name matches the string in the second parameter. If found, then an Annot instance (see Annot.cpp/g added by this CL), is bound to a Javascript object and returned. With the use cases described in bug [1] as an initial test case, CL adds support to the following Annotation object properties: - hidden - name - type Idea is to keep evolving the implementation with more methods and properties in follow up CLs. [1] https://bugs.chromium.org/p/pdfium/issues/detail?id=492 BUG=pdfium:492 Review-Url: https://codereview.chromium.org/2260663002 --- testing/resources/javascript/document_methods.in | 14 +++++++++++++- testing/resources/javascript/document_methods_expected.txt | 7 ++++--- 2 files changed, 17 insertions(+), 4 deletions(-) (limited to 'testing/resources/javascript') diff --git a/testing/resources/javascript/document_methods.in b/testing/resources/javascript/document_methods.in index 1c53dc24b5..bc0f3f1126 100644 --- a/testing/resources/javascript/document_methods.in +++ b/testing/resources/javascript/document_methods.in @@ -135,6 +135,18 @@ function testCalculateNow() { // TODO(tsepez): test success cases. } +function testGetAnnot() { + // Method is present. + expect('typeof this.getAnnot', 'function'); + + // Method needs two arguments. + expectError('this.getAnnot()'); + expectError('this.getAnnot(0)'); + expectError('this.getAnnot(0, "test", 0)'); + + // TODO(tonikitoo): test success cases. +} + function testGetField() { // Method is present. expect('typeof this.getField', 'function'); @@ -289,7 +301,6 @@ try { testUnsupported('this.exportAsText'); testUnsupported('this.exportAsXFDF'); testUnsupported('this.extractPages'); - testUnsupported('this.getAnnot'); testUnsupported('this.getAnnot3D'); testUnsupported('this.getAnnots'); testUnsupported('this.getLinks'); @@ -307,6 +318,7 @@ try { app.alert('*** Testing Supported Methods ***'); testAddIcon(); testCalculateNow(); + testGetAnnot(); testGetField(); testGetIcon(); testGetNthFieldName(); diff --git a/testing/resources/javascript/document_methods_expected.txt b/testing/resources/javascript/document_methods_expected.txt index d66de8b119..ed601f279b 100644 --- a/testing/resources/javascript/document_methods_expected.txt +++ b/testing/resources/javascript/document_methods_expected.txt @@ -29,9 +29,6 @@ Alert: PASS: this.exportAsXFDF(1, 2, "clams", [1, 2, 3]) = undefined Alert: PASS: typeof this.extractPages = function Alert: PASS: this.extractPages() = undefined Alert: PASS: this.extractPages(1, 2, "clams", [1, 2, 3]) = undefined -Alert: PASS: typeof this.getAnnot = function -Alert: PASS: this.getAnnot() = undefined -Alert: PASS: this.getAnnot(1, 2, "clams", [1, 2, 3]) = undefined Alert: PASS: typeof this.getAnnot3D = function Alert: PASS: this.getAnnot3D() = undefined Alert: PASS: this.getAnnot3D(1, 2, "clams", [1, 2, 3]) = undefined @@ -79,6 +76,10 @@ Alert: PASS: this.addIcon(1, 2, 3) threw error Document.addIcon: Incorrect numbe Alert: PASS: this.addIcon("myicon", 3) threw error Document.addIcon: Incorrect parameter type. Alert: PASS: this.addIcon("myicon", undefined) threw error Document.addIcon: Incorrect parameter type. Alert: PASS: typeof this.calculateNow = function +Alert: PASS: typeof this.getAnnot = function +Alert: PASS: this.getAnnot() threw error Document.getAnnot: Incorrect number of parameters passed to function. +Alert: PASS: this.getAnnot(0) threw error Document.getAnnot: Incorrect number of parameters passed to function. +Alert: PASS: this.getAnnot(0, "test", 0) threw error Document.getAnnot: Incorrect number of parameters passed to function. Alert: PASS: typeof this.getField = function Alert: PASS: this.getField() threw error Document.getField: Incorrect number of parameters passed to function. Alert: PASS: typeof this.getIcon = function -- cgit v1.2.3