summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2015-02-06 16:05:23 -0800
committerTom Sepez <tsepez@chromium.org>2015-02-06 16:05:23 -0800
commit23b4e3f4b6859d80f1e4a840fd7a7dce0cf8526b (patch)
tree0b9ac3daf1b31893652e79621d1080d03ebc6702
parent385729be5d146a2b0dc10cb7f5c1718316bcb253 (diff)
downloadpdfium-23b4e3f4b6859d80f1e4a840fd7a7dce0cf8526b.tar.xz
Merge to XFA: First JavaScript testing implementation.
Original Review URL: https://codereview.chromium.org/872103003 TBR=jam@chromium.org TBR=thestig@chromium.org Review URL: https://codereview.chromium.org/901403004
-rw-r--r--samples/pdfium_test.cc31
-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
4 files changed, 123 insertions, 14 deletions
diff --git a/samples/pdfium_test.cc b/samples/pdfium_test.cc
index fc4bbe4aa4..a813c9c0b3 100644
--- a/samples/pdfium_test.cc
+++ b/samples/pdfium_test.cc
@@ -418,7 +418,7 @@ void Add_Segment(FX_DOWNLOADHINTS* pThis, size_t offset, size_t size) {
void RenderPdf(const std::string& name, const char* pBuf, size_t len,
const Options& options) {
- printf("Rendering PDF file %s.\n", name.c_str());
+ fprintf(stderr, "Rendering PDF file %s.\n", name.c_str());
IPDF_JSPLATFORM platform_callbacks;
memset(&platform_callbacks, '\0', sizeof(platform_callbacks));
@@ -454,10 +454,10 @@ void RenderPdf(const std::string& name, const char* pBuf, size_t len,
(void) FPDFAvail_IsDocAvail(pdf_avail, &hints);
if (!FPDFAvail_IsLinearized(pdf_avail)) {
- printf("Non-linearized path...\n");
+ fprintf(stderr, "Non-linearized path...\n");
doc = FPDF_LoadCustomDocument(&file_access, NULL);
} else {
- printf("Linearized path...\n");
+ fprintf(stderr, "Linearized path...\n");
doc = FPDFAvail_GetDocument(pdf_avail, NULL);
}
@@ -548,24 +548,27 @@ void RenderPdf(const std::string& name, const char* pBuf, size_t len,
FPDFDOC_ExitFormFillEnvironment(form);
FPDFAvail_Destroy(pdf_avail);
- printf("Loaded, parsed and rendered %" PRIuS " pages.\n", rendered_pages);
- printf("Skipped %" PRIuS " bad pages.\n", bad_pages);
+ fprintf(stderr, "Rendered %" PRIuS " pages.\n", rendered_pages);
+ fprintf(stderr, "Skipped %" PRIuS " bad pages.\n", bad_pages);
}
+static const char usage_string[] =
+ "Usage: pdfium_test [OPTION] [FILE]...\n"
+ " --bin-dir=<path> - override path to v8 external data\n"
+ " --scale=<number> - scale output size by number (e.g. 0.5)\n"
+#ifdef _WIN32
+ " --bmp - write page images <pdf-name>.<page-number>.bmp\n"
+ " --emf - write page meta files <pdf-name>.<page-number>.emf\n"
+#endif
+ " --png - write page images <pdf-name>.<page-number>.png\n"
+ " --ppm - write page images <pdf-name>.<page-number>.ppm\n";
+
int main(int argc, const char* argv[]) {
std::vector<std::string> args(argv, argv + argc);
Options options;
std::list<std::string> files;
if (!ParseCommandLine(args, &options, &files)) {
- printf("Usage: pdfium_test [OPTION] [FILE]...\n");
- printf("--bin-dir=<path> - override path to v8 external data\n");
- printf("--scale=<number> - scale output size by number (e.g. 0.5)\n");
- printf("--png - write page images <pdf-name>.<page-number>.png\n");
- printf("--ppm - write page images <pdf-name>.<page-number>.ppm\n");
-#ifdef _WIN32
- printf("--bmp - write page images <pdf-name>.<page-number>.bmp\n");
- printf("--emf - write page meta files <pdf-name>.<page-number>.emf\n");
-#endif
+ fprintf(stderr, "%s", usage_string);
return 1;
}
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.