| {{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}} << | |
| {{streamlen}} | |
| >> | |
| 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); | |
| } | |
| } | |
| // Invalid arguments. | |
| try { | |
| util.printd(); | |
| } catch (e) { | |
| app.alert('PASS: ' + e); | |
| } | |
| try { | |
| util.printd('mm'); | |
| } catch (e) { | |
| app.alert('PASS: ' + e); | |
| } | |
| try { | |
| util.printd('mm', new Date(undefined)); | |
| } catch (e) { | |
| app.alert('PASS: ' + 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); | |
| // Date with year 0. | |
| // TODO(thestig): Why is the output different from Acrobat? | |
| TestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(0, 06, 04, 15, 59, 58)); | |
| // Date with month 20. | |
| TestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, 20, 04, 15, 59, 58)); | |
| // Date with day 100. | |
| TestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, 20, 100, 15, 59, 58)); | |
| // Date with hour 50 | |
| TestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, 06, 04, 50, 59, 58)); | |
| // Date with minute 1234. | |
| TestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, 06, 04, 15, 1234, 58)); | |
| // Date with second 65. | |
| TestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, 06, 04, 15, 59, 65)); | |
| // Date with April 31th. | |
| TestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, 03, 31, 15, 59, 58)); | |
| // Date with February 30th. | |
| TestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, 01, 30, 15, 59, 58)); | |
| // Date with negative year. | |
| // Acrobat prints out "07/04/-001 15:59:58" but handling this rarely used case | |
| // outside of FXSYS_wcsftime() is a lot of work. | |
| TestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(-1, 06, 04, 15, 59, 58)); | |
| // Date with negative month. | |
| TestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, -1, 30, 15, 59, 58)); | |
| // Date with negative day. | |
| TestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, 06, -1, 15, 59, 58)); | |
| // Date with negative hour. | |
| TestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, 06, 04, -1, 59, 58)); | |
| // Date with negative minute. | |
| TestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, 06, 04, 15, -1, 58)); | |
| // Date with negative second. | |
| TestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, 06, 04, 15, 59, -1)); | |
| endstream | |
| endobj | |
| {{xref}} | |
| {{trailer}} | |
| {{startxref}} | |
| %%EOF |