| Index: testing/resources/javascript/document_methods.in
|
| diff --git a/testing/resources/javascript/document_methods.in b/testing/resources/javascript/document_methods.in
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..662c05c8e05bfb8f2f9a3d77e3405389d3b69128
|
| --- /dev/null
|
| +++ b/testing/resources/javascript/document_methods.in
|
| @@ -0,0 +1,340 @@
|
| +{{header}}
|
| +{{object 1 0}} <<
|
| + /Type /Catalog
|
| + /Pages 2 0 R
|
| + /OpenAction 10 0 R
|
| +>>
|
| +endobj
|
| +{{object 2 0}} <<
|
| + /Type /Pages
|
| + /Count 4
|
| + /Kids [
|
| + 3 0 R
|
| + 4 0 R
|
| + 5 0 R
|
| + 6 0 R
|
| + ]
|
| +>>
|
| +endobj
|
| +% Page number 0.
|
| +{{object 3 0}} <<
|
| + /Type /Page
|
| + /Parent 2 0 R
|
| + /Resources <<
|
| + /Font <</F1 15 0 R>>
|
| + >>
|
| + /MediaBox [0 0 612 792]
|
| + /Contents 8 0 R
|
| +>>
|
| +% Page number 1.
|
| +{{object 4 0}} <<
|
| + /Type /Page
|
| + /Parent 2 0 R
|
| + /Resources <<
|
| + /Font <</F1 15 0 R>>
|
| + >>
|
| + /MediaBox [0 0 612 792]
|
| +>>
|
| +% Page number 2.
|
| +{{object 5 0}} <<
|
| + /Type /Page
|
| + /Parent 2 0 R
|
| + /Resources <<
|
| + /Font <</F1 15 0 R>>
|
| + >>
|
| + /MediaBox [0 0 612 792]
|
| +>>
|
| +% Page number 3.
|
| +{{object 6 0}} <<
|
| + /Type /Page
|
| + /Parent 2 0 R
|
| + /Resources <<
|
| + /Font <</F1 15 0 R>>
|
| + >>
|
| + /MediaBox [0 0 612 792]
|
| +>>
|
| +% Contents of the page.
|
| +{{object 8 0}} <<
|
| +>>
|
| +stream
|
| +BT
|
| +20 50 Td
|
| +/F1 12 Tf
|
| +(Hello, world!) Tj
|
| +0 50 Td
|
| +endstream
|
| +endobj
|
| +% Info
|
| +{{object 9 0}} <<
|
| + /Author (Joe Random Author)
|
| + /Creator (Joe Random Creator)
|
| +>>
|
| +endobj
|
| +% OpenAction action
|
| +{{object 10 0}} <<
|
| + /Type /Action
|
| + /S /JavaScript
|
| + /JS 11 0 R
|
| +>>
|
| +endobj
|
| +% JS program to exexute
|
| +{{object 11 0}} <<
|
| +>>
|
| +stream
|
| +function expect(str, expected) {
|
| + try {
|
| + var result = eval(str);
|
| + if (result == expected) {
|
| + app.alert('PASS: ' + str + ' = ' + result);
|
| + } else {
|
| + app.alert('FAIL: ' + str + ' = ' + result + ', expected = ' + expected);
|
| + }
|
| + } catch (e) {
|
| + app.alert('ERROR: ' + e.toString());
|
| + }
|
| +}
|
| +
|
| +function expectError(str) {
|
| + try {
|
| + var result = eval(str);
|
| + app.alert('FAIL: ' + str + ' = ' + result + ', expected to throw error');
|
| + } catch (e) {
|
| + app.alert('PASS: ' + str + ' threw error ' + e.toString());
|
| + }
|
| +}
|
| +
|
| +// "Unsupported" methods are present in the document object, but not
|
| +// implemented. They always return |undefined| regardless of arguments.
|
| +function testUnsupported(str) {
|
| + expect('typeof ' + str, 'function');
|
| + expect(str + '()', undefined);
|
| + expect(str + '(1, 2, "clams", [1, 2, 3])', undefined);
|
| +}
|
| +
|
| +function testAddIcon() {
|
| + // Method is present.
|
| + expect('typeof this.addIcon', 'function');
|
| +
|
| + // Method takes exactly two arguments.
|
| + expectError('this.addIcon()');
|
| + expectError('this.addIcon(1)');
|
| + expectError('this.addIcon(1, 2, 3)');
|
| +
|
| + // Second argument must actually be an icon.
|
| + expectError('this.addIcon("myicon", 3)');
|
| +
|
| + // TODO(tsepez): test success cases.
|
| +}
|
| +
|
| +function testCalculateNow() {
|
| + // Method is present.
|
| + expect('typeof this.calculateNow', 'function');
|
| +
|
| + // TODO(tsepez): test with no permissions.
|
| + // TODO(tsepez): test success cases.
|
| +}
|
| +
|
| +function testDeletePages() {
|
| + // Method is present.
|
| + expect('typeof this.deletePages', 'function');
|
| +
|
| + // TODO(tsepez): test with no permissions.
|
| + // TODO(tsepez): test success cases.
|
| +}
|
| +
|
| +function testGetField() {
|
| + // Method is present.
|
| + expect('typeof this.getField', 'function');
|
| +
|
| + // Method needs at least one argument.
|
| + expectError('this.getField()');
|
| +
|
| + // TODO(tsepez): test success cases.
|
| +}
|
| +
|
| +function testGetIcon() {
|
| + // Method is present.
|
| + expect('typeof this.getIcon', 'function');
|
| +
|
| + // Method needs exactly one argument.
|
| + expectError('this.getIcon()');
|
| + expectError('this.getIcon(1, 2)');
|
| +
|
| + // TODO(tsepez): test success cases.
|
| +}
|
| +
|
| +function testGetNthFieldName() {
|
| + // Method is present.
|
| + expect('typeof this.getNthFieldName', 'function');
|
| +
|
| + // Method needs at least one argument.
|
| + expectError('this.getNthFieldName()');
|
| +
|
| + // Argument can not be negative.
|
| + expectError('this.getNthFieldName(-1)');
|
| +
|
| + // TODO(tsepez): test success cases.
|
| +}
|
| +
|
| +function testGetPageNthWord() {
|
| + // Method is present.
|
| + expect('typeof this.getPageNthWord', 'function');
|
| +
|
| + // Method accepts any number of parameters.
|
| + expect('this.getPageNthWord(0, 0, true, "clams", [1, 2])', 'Hello,');
|
| +
|
| + // Arguments can't be negative or out of range.
|
| + expectError('this.getPageNthWord(-1, 0, true)');
|
| + expectError('this.getPageNthWord(6, 0, true)');
|
| +
|
| + // TODO(tsepez): test with no permissions.
|
| + // TODO(tsepez): test success cases.
|
| +}
|
| +
|
| +function testGetPageNthWordQuads() {
|
| + // Method is present.
|
| + expect('typeof this.getPageNthWordQuads', 'function');
|
| +
|
| + // TODO(tsepez): test with no permissions.
|
| + // TODO(tsepez): test success cases.
|
| +}
|
| +
|
| +function testGetPageNumWords() {
|
| + // Method is present.
|
| + expect('typeof this.getPageNumWords', 'function');
|
| +
|
| + // Method accepts any number of parameters.
|
| + expect('this.getPageNumWords(0, "clams", [1, 2])', 2);
|
| +
|
| + // Arguments can't be negative or out of range.
|
| + expectError('this.getPageNumWords(-1)');
|
| + expectError('this.getPageNumWords(6)');
|
| +
|
| + // TODO(tsepez): test with no permissions.
|
| + // TODO(tsepez): test success cases.
|
| +}
|
| +
|
| +function testGetPrintParams() {
|
| + // Method is present.
|
| + expect('typeof this.getPrintParams', 'function');
|
| +
|
| + // TODO(tsepez): test success cases.
|
| +}
|
| +
|
| +function testMailDoc() {
|
| + // Method is present.
|
| + expect('typeof this.mailDoc', 'function');
|
| +
|
| + // TODO(tsepez): test with no permissions.
|
| + // TODO(tsepez): test success cases.
|
| +}
|
| +
|
| +function testMailForm() {
|
| + // Method is present.
|
| + expect('typeof this.mailForm', 'function');
|
| +
|
| + // TODO(tsepez): test with no permissions.
|
| + // TODO(tsepez): test success cases.
|
| +}
|
| +
|
| +function testPrint() {
|
| + // Method is present.
|
| + expect('typeof this.print', 'function');
|
| +
|
| + // TODO(tsepez): test success cases.
|
| +}
|
| +
|
| +function testRemoveField() {
|
| + // Method is present.
|
| + expect('typeof this.removeField', 'function');
|
| +
|
| + // Method requires at least one argument.
|
| + expectError('this.removeField()');
|
| +
|
| + // TODO(tsepez): test with no permissions.
|
| + // TODO(tsepez): test success cases.
|
| +}
|
| +
|
| +function testRemoveIcon() {
|
| + // Method is present.
|
| + expect('typeof this.removeIcon', 'function');
|
| +
|
| + // Method requires at least one argument.
|
| + expectError('this.removeIcon()');
|
| +
|
| + // TODO(tsepez): test success cases.
|
| +}
|
| +
|
| +function testResetForm() {
|
| + // Method is present.
|
| + expect('typeof this.resetForm', 'function');
|
| +
|
| + // TODO(tsepez): test with no permissions.
|
| + // TODO(tsepez): test success cases.
|
| +}
|
| +
|
| +function testSubmitForm() {
|
| + // Method is present.
|
| + expect('typeof this.submitForm', 'function');
|
| +
|
| + // Method requires at least one argument.
|
| + expectError('this.submitForm()');
|
| +
|
| + // TODO(tsepez): test success cases.
|
| +}
|
| +
|
| +try {
|
| + app.alert('*** Testing Unsupported Methods ***');
|
| + testUnsupported('this.addAnnot');
|
| + testUnsupported('this.addField');
|
| + testUnsupported('this.addLink');
|
| + testUnsupported('this.closeDoc');
|
| + testUnsupported('this.createDataObject');
|
| + testUnsupported('this.exportAsFDF');
|
| + testUnsupported('this.exportAsText');
|
| + testUnsupported('this.exportAsXFDF');
|
| + testUnsupported('this.extractPages');
|
| + testUnsupported('this.getAnnot');
|
| + testUnsupported('this.getAnnot3D');
|
| + testUnsupported('this.getAnnots');
|
| + testUnsupported('this.getLinks');
|
| + testUnsupported('this.getOCGs');
|
| + testUnsupported('this.getPageBox');
|
| + testUnsupported('this.getURL');
|
| + testUnsupported('this.importAnFDF');
|
| + testUnsupported('this.importAnXFDF');
|
| + testUnsupported('this.importTextData');
|
| + testUnsupported('this.insertPages');
|
| + testUnsupported('this.replacePages');
|
| + testUnsupported('this.saveAs');
|
| +
|
| + app.alert('*** Testing Supported Methods ***');
|
| + testAddIcon();
|
| + testCalculateNow();
|
| + testDeletePages();
|
| + testGetField();
|
| + testGetIcon();
|
| + testGetNthFieldName();
|
| + testGetPageNthWord();
|
| + testGetPageNthWordQuads();
|
| + testGetPageNumWords();
|
| + testGetPrintParams();
|
| + testMailDoc();
|
| + testMailForm();
|
| + testPrint();
|
| + testRemoveField();
|
| + testRemoveIcon();
|
| + testResetForm();
|
| + testSubmitForm();
|
| +} catch (e) {
|
| + app.alert('FATAL: ' + e.toString());
|
| +}
|
| +endstream
|
| +endobj
|
| +{{xref}}
|
| +trailer <<
|
| + /Root 1 0 R
|
| + /Info 9 0 R
|
| +>>
|
| +{{startxref}}
|
| +%%EOF
|
|
|