From 8866a7bf4e5e30dacff86236bb99e1172fe41281 Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Fri, 12 Oct 2018 19:09:28 +0000 Subject: Add test for CJS_Annot JS callbacks. Change-Id: I8ef9bb333e786e833faca75566730a5b441d63c2 Reviewed-on: https://pdfium-review.googlesource.com/c/43830 Reviewed-by: Lei Zhang Commit-Queue: Tom Sepez --- testing/resources/javascript/annot_props.in | 92 ++++++++++++++++++++++ .../resources/javascript/annot_props_expected.txt | 16 ++++ 2 files changed, 108 insertions(+) create mode 100644 testing/resources/javascript/annot_props.in create mode 100644 testing/resources/javascript/annot_props_expected.txt diff --git a/testing/resources/javascript/annot_props.in b/testing/resources/javascript/annot_props.in new file mode 100644 index 0000000000..9c50e7252f --- /dev/null +++ b/testing/resources/javascript/annot_props.in @@ -0,0 +1,92 @@ +{{header}} +{{object 1 0}} << + /Type /Catalog + /Pages 2 0 R + /OpenAction 20 0 R +>> +endobj +{{object 2 0}} << + /Type /Pages + /Count 1 + /Kids [10 0 R] +>> +endobj +{{object 10 0}} << + /Type /Page + /Parent 2 0 R + /MediaBox [0 0 612 792] + /Annots [22 0 R] + /Tabs /R +>> +endobj +{{object 20 0}} << + /Type /Action + /S /JavaScript + /JS 21 0 R +>> +endobj +{{object 21 0}} << +>> +stream +app.alert("Test that non-existent annot fetch gives error"); +try { + var nonesuch = this.getAnnot(0, "nonesuch"); + app.alert("nonesuch: " + typeof nonesuch); +} catch (e) { + app.alert("SUCCESS: " + e); +} +app.alert("Test initial cases"); +try { + var annot = this.getAnnot(0, "Annot-1"); + app.alert("annot: " + typeof annot); + app.alert("hidden: " + annot.hidden); + app.alert("name: " + annot.name); + app.alert("type: " + annot.type); + + annot.hidden = true; + app.alert("hidden now: " + annot.hidden); + annot.hidden = false; + app.alert("hidden now: " + annot.hidden); + + annot.name = "nonesuch"; + app.alert("name now: " + annot.name); +} catch (e) { + app.alert("ERROR: " + e); +} +app.alert("Test assigment to read-only property gives error"); +try { + annot.type = 42; +} catch (e) { + app.alert("SUCCESS: " + e); +} +app.alert("Test lookup after name change gives error"); +try { + annot = this.getAnnot(0, "Annot-1"); + app.alert("annot after name change: " + typeof annot); +} catch (e) { + app.alert("SUCCESS: " + e); +} +app.alert("Test lookup under changed name"); +try { + nonesuch = this.getAnnot(0, "nonesuch"); + app.alert("nonesuch after name change: " + typeof nonesuch); +} catch (e) { + app.alert("ERROR: " + e); +} +endstream +endobj +{{object 22 0}} << + /Type /Annot + /Subtype /Highlight + /Rect [475 681 512 690] + /NM (Annot-1) + /F 2 + /QuadPoints [475 688 512 688 475 679 512 679] + /C [0.0001108646 0.001760244 0.9982184] + /Contents () +>> +endobj +{{xref}} +{{trailer}} +{{startxref}} +%%EOF diff --git a/testing/resources/javascript/annot_props_expected.txt b/testing/resources/javascript/annot_props_expected.txt new file mode 100644 index 0000000000..54548e670e --- /dev/null +++ b/testing/resources/javascript/annot_props_expected.txt @@ -0,0 +1,16 @@ +Alert: Test that non-existent annot fetch gives error +Alert: SUCCESS: Document.getAnnot: Object no longer exists. +Alert: Test initial cases +Alert: annot: object +Alert: hidden: true +Alert: name: Annot-1 +Alert: type: Highlight +Alert: hidden now: true +Alert: hidden now: false +Alert: name now: nonesuch +Alert: Test assigment to read-only property gives error +Alert: SUCCESS: Annot.type: Cannot assign to readonly property. +Alert: Test lookup after name change gives error +Alert: SUCCESS: Document.getAnnot: Object no longer exists. +Alert: Test lookup under changed name +Alert: nonesuch after name change: object -- cgit v1.2.3