summaryrefslogtreecommitdiff
path: root/testing/resources
diff options
context:
space:
mode:
authortsepez <tsepez@chromium.org>2016-03-25 10:00:11 -0700
committerCommit bot <commit-bot@chromium.org>2016-03-25 10:00:11 -0700
commit86a61dc374e8abe351df03a1aa6665013cc39345 (patch)
tree12e70780099343259eb24730744f53900643d181 /testing/resources
parent65ea3949de6536b1c122eadb4ac7828323fbc408 (diff)
downloadpdfium-86a61dc374e8abe351df03a1aa6665013cc39345.tar.xz
util.printd() replaces specified date with current date.
Added test case. Several bugs going on here: JS_LocalTime() ignoring argument and returning current time and not factoring in the time zone adjustment. Use of FXSYS_floor() silently casts result to float, losing precision required to extract minutes and seconds. Pre-existing wcsftime escapes not stripped. BUG=pdfium:413 Review URL: https://codereview.chromium.org/1833053002
Diffstat (limited to 'testing/resources')
-rw-r--r--testing/resources/javascript/util_printd.in104
-rw-r--r--testing/resources/javascript/util_printd_expected.txt40
2 files changed, 144 insertions, 0 deletions
diff --git a/testing/resources/javascript/util_printd.in b/testing/resources/javascript/util_printd.in
new file mode 100644
index 0000000000..f098187cf0
--- /dev/null
+++ b/testing/resources/javascript/util_printd.in
@@ -0,0 +1,104 @@
+{{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
+function TestOneFormat(str, d) {
+ try {
+ app.alert(str + ": " + util.printd(str, d));
+ }
+ catch (e) {
+ app.alert(str + ": Caught error: " + e);
+ }
+}
+function TestOneXFAFormat(str, d, flag) {
+ try {
+ app.alert(str + ": " + util.printd(str, d, flag));
+ }
+ catch (e) {
+ app.alert(str + ": Caught error: " + e);
+ }
+}
+// July 4th, 2014 11:59:59 AM local time.
+var d1 = new Date(2014, 06, 04, 15, 59, 58);
+TestOneFormat("mm/dd/yyyy HH:MM:ss", d1);
+TestOneFormat(0, d1);
+TestOneFormat(1, d1);
+TestOneFormat(2, d1);
+TestOneFormat(3, d1);
+TestOneFormat("mmmm", d1);
+TestOneFormat("mmm", d1);
+TestOneFormat("mm", d1);
+TestOneFormat("m", d1);
+TestOneFormat("dddd", d1);
+TestOneFormat("ddd", d1);
+TestOneFormat("dd", d1);
+TestOneFormat("d", d1);
+TestOneFormat("yyyy", d1);
+TestOneFormat("yy", d1);
+TestOneFormat("HH", d1);
+TestOneFormat("H", d1);
+TestOneFormat("hh", d1);
+// "h" is inconsitent between platforms: " 3" vs. "3"
+TestOneFormat("MM", d1);
+TestOneFormat("M", d1);
+TestOneFormat("ss", d1);
+TestOneFormat("s", d1);
+// "tt" is inconsitent between platforms: "PM" vs, "pm" vs. "P"
+TestOneFormat("t", d1);
+TestOneFormat("abc.efg.i.kl.nopqr..uvwxyzABC.EFG.I.KL.NOPQR..UVWXYZ0123456780", d1);
+TestOneFormat("!@#$^&*()-_<>[];:~", d1);
+TestOneFormat("%z %d %%z %%d %%%z %%%d %%% hh:MM", d1);
+TestOneFormat("", d1);
+TestOneFormat("mm/dd/yyyy", d1);
+TestOneFormat("mm/dd/yyyy", new Date(1850, 0, 1));
+TestOneFormat("mm/dd/yyyy", new Date(2525, 11, 31));
+TestOneFormat("mm/dd/yyyy");
+TestOneFormat();
+TestOneFormat("mm/dd/yyyy", 42);
+TestOneFormat("mm/dd/yyyy", "clams");
+TestOneFormat("mm/dd/yyyy", {"clams": 3});
+TestOneFormat("mm/dd/yyyy", ["clams", 3]);
+TestOneFormat({"clams": 3}, d1);
+TestOneFormat(["clams", 3], d1);
+TestOneXFAFormat("mm", d1, false);
+TestOneXFAFormat("mm", d1, true);
+endstream
+endobj
+{{xref}}
+trailer <<
+ /Root 1 0 R
+>>
+{{startxref}}
+%%EOF
diff --git a/testing/resources/javascript/util_printd_expected.txt b/testing/resources/javascript/util_printd_expected.txt
new file mode 100644
index 0000000000..47abb2fd42
--- /dev/null
+++ b/testing/resources/javascript/util_printd_expected.txt
@@ -0,0 +1,40 @@
+Alert: mm/dd/yyyy HH:MM:ss: 07/04/2014 15:59:58
+Alert: 0: D:20140704155958
+Alert: 1: 2014.07.04 15:59:58
+Alert: 2: 2014/07/04 15:59:58
+Alert: 3: Caught error: util.printd: Incorrect parameter value.
+Alert: mmmm: July
+Alert: mmm: Jul
+Alert: mm: 07
+Alert: m: 7
+Alert: dddd: Sunday
+Alert: ddd: Sun
+Alert: dd: 04
+Alert: d: 4
+Alert: yyyy: 2014
+Alert: yy: 14
+Alert: HH: 15
+Alert: H: 15
+Alert: hh: 03
+Alert: MM: 59
+Alert: M: 59
+Alert: ss: 58
+Alert: s: 58
+Alert: t: t
+Alert: abc.efg.i.kl.nopqr..uvwxyzABC.EFG.I.KL.NOPQR..UVWXYZ0123456780: abc.efg.i.kl.nopqr..uvwxyzABC.EFG.I.KL.NOPQR..UVWXYZ0123456780
+Alert: !@#$^&*()-_<>[];:~: !@#$^&*()-_<>[];:~
+Alert: %z %d %%z %%d %%%z %%%d %%% hh:MM: z 4 z 4 z 4 03:59
+Alert: :
+Alert: mm/dd/yyyy: 07/04/2014
+Alert: mm/dd/yyyy: 01/01/1850
+Alert: mm/dd/yyyy: 12/31/2525
+Alert: mm/dd/yyyy: Caught error: util.printd: The second parameter can't be converted to a Date.
+Alert: undefined: Caught error: util.printd: The second parameter can't be converted to a Date.
+Alert: mm/dd/yyyy: Caught error: util.printd: The second parameter can't be converted to a Date.
+Alert: mm/dd/yyyy: Caught error: util.printd: The second parameter can't be converted to a Date.
+Alert: mm/dd/yyyy: Caught error: util.printd: The second parameter can't be converted to a Date.
+Alert: mm/dd/yyyy: Caught error: util.printd: The second parameter can't be converted to a Date.
+Alert: [object Object]: Caught error: util.printd: Incorrect parameter type.
+Alert: clams,3: Caught error: util.printd: Incorrect parameter type.
+Alert: mm: 07
+Alert: mm: Caught error: util.printd: Operation not supported.