summaryrefslogtreecommitdiff
path: root/testing
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2015-02-06 15:58:40 -0800
committerTom Sepez <tsepez@chromium.org>2015-02-06 15:58:40 -0800
commit72feb27fc174c2139b642eb7390fffac608f6c87 (patch)
tree1423f0204b98980faa56a95d095f9f3536158e6c /testing
parent6d407bc8ce708f28a20001dbded1f67ee2c169dd (diff)
downloadpdfium-72feb27fc174c2139b642eb7390fffac608f6c87.tar.xz
First JavaScript testing implementation.
This is a plan for testing JS inside of pdf files under pdfium: Communication of results will be done via app.alert(), rather than console.println(), since the latter is not hooked up to any API callbacks. pdfium_test.cc is modified to be more careful about use of stdout/stderr, so that only the app.alert() and the unsupported feature callback use stdout. Diffing stdout against ..._expected.txt files gives the result. I added a /javascript directory to separate these from the embeddertest resources. The alert callback is backported from XFA. This was an omission. BUG=https://code.google.com/p/pdfium/issues/detail?id=62 R=jam@chromium.org, thestig@chromium.org Review URL: https://codereview.chromium.org/872103003
Diffstat (limited to 'testing')
-rw-r--r--testing/resources/javascript/app_alert.in45
-rw-r--r--testing/resources/javascript/app_alert.pdf60
-rw-r--r--testing/resources/javascript/app_alert_expected.txt1
3 files changed, 106 insertions, 0 deletions
diff --git a/testing/resources/javascript/app_alert.in b/testing/resources/javascript/app_alert.in
new file mode 100644
index 0000000000..42f970a402
--- /dev/null
+++ b/testing/resources/javascript/app_alert.in
@@ -0,0 +1,45 @@
+{{header}}
+{{object 1 0}} <<
+ /Type /Catalog
+ /Pages 2 0 R
+ /OpenAction 10 0 R
+>>
+endobj
+{{object 2 0}} <<
+ /Type /Pages
+ /Count 1
+ /Kids [
+ 3 0 R
+ ]
+>>
+endobj
+% Page number 0.
+{{object 3 0}} <<
+ /Type /Page
+ /Parent 2 0 R
+ /Resources <<
+ /Font <</F1 15 0 R>>
+ >>
+ /Contents [21 0 R]
+ /MediaBox [0 0 612 792]
+>>
+% OpenAction action
+{{object 10 0}} <<
+ /Type /Action
+ /S /JavaScript
+ /JS 11 0 R
+>>
+endobj
+% JS program to exexute
+{{object 11 0}} <<
+>>
+stream
+app.alert("This test passes if alert() logs output under the test utiltiy.");
+endstream
+endobj
+{{xref}}
+trailer <<
+ /Root 1 0 R
+>>
+{{startxref}}
+%%EOF
diff --git a/testing/resources/javascript/app_alert.pdf b/testing/resources/javascript/app_alert.pdf
new file mode 100644
index 0000000000..091992cbd7
--- /dev/null
+++ b/testing/resources/javascript/app_alert.pdf
@@ -0,0 +1,60 @@
+%PDF-1.7
+% ò¤ô
+1 0 obj <<
+ /Type /Catalog
+ /Pages 2 0 R
+ /OpenAction 10 0 R
+>>
+endobj
+2 0 obj <<
+ /Type /Pages
+ /Count 1
+ /Kids [
+ 3 0 R
+ ]
+>>
+endobj
+% Page number 0.
+3 0 obj <<
+ /Type /Page
+ /Parent 2 0 R
+ /Resources <<
+ /Font <</F1 15 0 R>>
+ >>
+ /Contents [21 0 R]
+ /MediaBox [0 0 612 792]
+>>
+% OpenAction action
+10 0 obj <<
+ /Type /Action
+ /S /JavaScript
+ /JS 11 0 R
+>>
+endobj
+% JS program to exexute
+11 0 obj <<
+>>
+stream
+app.alert("This test passes if alert() logs output under the test utiltiy.");
+endstream
+endobj
+xref
+0 12
+0000000000 65535 f
+0000000015 00000 n
+0000000089 00000 n
+0000000177 00000 n
+0000000000 65535 f
+0000000000 65535 f
+0000000000 65535 f
+0000000000 65535 f
+0000000000 65535 f
+0000000000 65535 f
+0000000334 00000 n
+0000000426 00000 n
+trailer <<
+ /Root 1 0 R
+>>
+startxref
+543
+%%EOF
diff --git a/testing/resources/javascript/app_alert_expected.txt b/testing/resources/javascript/app_alert_expected.txt
new file mode 100644
index 0000000000..ac46b62203
--- /dev/null
+++ b/testing/resources/javascript/app_alert_expected.txt
@@ -0,0 +1 @@
+Alert: This test passes if alert() logs output under the test utiltiy.