xref: /aosp_15_r20/external/pdfium/testing/resources/javascript/util_printd.in (revision 3ac0a46f773bac49fa9476ec2b1cf3f8da5ec3a4)
1*3ac0a46fSAndroid Build Coastguard Worker{{header}}
2*3ac0a46fSAndroid Build Coastguard Worker{{object 1 0}} <<
3*3ac0a46fSAndroid Build Coastguard Worker  /Type /Catalog
4*3ac0a46fSAndroid Build Coastguard Worker  /Pages 2 0 R
5*3ac0a46fSAndroid Build Coastguard Worker  /OpenAction 10 0 R
6*3ac0a46fSAndroid Build Coastguard Worker>>
7*3ac0a46fSAndroid Build Coastguard Workerendobj
8*3ac0a46fSAndroid Build Coastguard Worker{{object 2 0}} <<
9*3ac0a46fSAndroid Build Coastguard Worker  /Type /Pages
10*3ac0a46fSAndroid Build Coastguard Worker  /Count 1
11*3ac0a46fSAndroid Build Coastguard Worker  /Kids [
12*3ac0a46fSAndroid Build Coastguard Worker    3 0 R
13*3ac0a46fSAndroid Build Coastguard Worker  ]
14*3ac0a46fSAndroid Build Coastguard Worker>>
15*3ac0a46fSAndroid Build Coastguard Workerendobj
16*3ac0a46fSAndroid Build Coastguard Worker% Page number 0.
17*3ac0a46fSAndroid Build Coastguard Worker{{object 3 0}} <<
18*3ac0a46fSAndroid Build Coastguard Worker  /Type /Page
19*3ac0a46fSAndroid Build Coastguard Worker  /Parent 2 0 R
20*3ac0a46fSAndroid Build Coastguard Worker  /Resources <<
21*3ac0a46fSAndroid Build Coastguard Worker    /Font <</F1 15 0 R>>
22*3ac0a46fSAndroid Build Coastguard Worker  >>
23*3ac0a46fSAndroid Build Coastguard Worker  /Contents [21 0 R]
24*3ac0a46fSAndroid Build Coastguard Worker  /MediaBox [0 0 612 792]
25*3ac0a46fSAndroid Build Coastguard Worker>>
26*3ac0a46fSAndroid Build Coastguard Workerendobj
27*3ac0a46fSAndroid Build Coastguard Worker% OpenAction action
28*3ac0a46fSAndroid Build Coastguard Worker{{object 10 0}} <<
29*3ac0a46fSAndroid Build Coastguard Worker  /Type /Action
30*3ac0a46fSAndroid Build Coastguard Worker  /S /JavaScript
31*3ac0a46fSAndroid Build Coastguard Worker  /JS 11 0 R
32*3ac0a46fSAndroid Build Coastguard Worker>>
33*3ac0a46fSAndroid Build Coastguard Workerendobj
34*3ac0a46fSAndroid Build Coastguard Worker% JS program to execute
35*3ac0a46fSAndroid Build Coastguard Worker{{object 11 0}} <<
36*3ac0a46fSAndroid Build Coastguard Worker  {{streamlen}}
37*3ac0a46fSAndroid Build Coastguard Worker>>
38*3ac0a46fSAndroid Build Coastguard Workerstream
39*3ac0a46fSAndroid Build Coastguard Workerfunction TestOneFormat(str, d) {
40*3ac0a46fSAndroid Build Coastguard Worker  try {
41*3ac0a46fSAndroid Build Coastguard Worker    app.alert(str + ": " + util.printd(str, d));
42*3ac0a46fSAndroid Build Coastguard Worker  }
43*3ac0a46fSAndroid Build Coastguard Worker  catch (e) {
44*3ac0a46fSAndroid Build Coastguard Worker    app.alert(str + ": Caught error: " + e);
45*3ac0a46fSAndroid Build Coastguard Worker  }
46*3ac0a46fSAndroid Build Coastguard Worker}
47*3ac0a46fSAndroid Build Coastguard Workerfunction TestOneXFAFormat(str, d, flag) {
48*3ac0a46fSAndroid Build Coastguard Worker  try {
49*3ac0a46fSAndroid Build Coastguard Worker    app.alert(str + ": " + util.printd(str, d, flag));
50*3ac0a46fSAndroid Build Coastguard Worker  }
51*3ac0a46fSAndroid Build Coastguard Worker  catch (e) {
52*3ac0a46fSAndroid Build Coastguard Worker    app.alert(str + ": Caught error: " + e);
53*3ac0a46fSAndroid Build Coastguard Worker  }
54*3ac0a46fSAndroid Build Coastguard Worker}
55*3ac0a46fSAndroid Build Coastguard Worker
56*3ac0a46fSAndroid Build Coastguard Worker// Invalid arguments.
57*3ac0a46fSAndroid Build Coastguard Workertry {
58*3ac0a46fSAndroid Build Coastguard Worker  util.printd();
59*3ac0a46fSAndroid Build Coastguard Worker} catch (e) {
60*3ac0a46fSAndroid Build Coastguard Worker  app.alert('PASS: ' + e);
61*3ac0a46fSAndroid Build Coastguard Worker}
62*3ac0a46fSAndroid Build Coastguard Workertry {
63*3ac0a46fSAndroid Build Coastguard Worker  util.printd('mm');
64*3ac0a46fSAndroid Build Coastguard Worker} catch (e) {
65*3ac0a46fSAndroid Build Coastguard Worker  app.alert('PASS: ' + e);
66*3ac0a46fSAndroid Build Coastguard Worker}
67*3ac0a46fSAndroid Build Coastguard Workertry {
68*3ac0a46fSAndroid Build Coastguard Worker  util.printd('mm', new Date(undefined));
69*3ac0a46fSAndroid Build Coastguard Worker} catch (e) {
70*3ac0a46fSAndroid Build Coastguard Worker  app.alert('PASS: ' + e);
71*3ac0a46fSAndroid Build Coastguard Worker}
72*3ac0a46fSAndroid Build Coastguard Worker
73*3ac0a46fSAndroid Build Coastguard Worker// July 4th, 2014 11:59:59 AM local time.
74*3ac0a46fSAndroid Build Coastguard Workervar d1 = new Date(2014, 06, 04, 15, 59, 58);
75*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy HH:MM:ss", d1);
76*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat(0, d1);
77*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat(1, d1);
78*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat(2, d1);
79*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat(3, d1);
80*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mmmm", d1);
81*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mmm", d1);
82*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm", d1);
83*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("m", d1);
84*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("dddd", d1);
85*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("ddd", d1);
86*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("dd", d1);
87*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("d", d1);
88*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("yyyy", d1);
89*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("yy", d1);
90*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("HH", d1);
91*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("H", d1);
92*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("hh", d1);
93*3ac0a46fSAndroid Build Coastguard Worker// "h" is inconsitent between platforms: " 3" vs. "3"
94*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("MM", d1);
95*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("M", d1);
96*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("ss", d1);
97*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("s", d1);
98*3ac0a46fSAndroid Build Coastguard Worker// "tt" is inconsitent between platforms: "PM" vs, "pm" vs. "P"
99*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("t", d1);
100*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("abc.efg.i.kl.nopqr..uvwxyzABC.EFG.I.KL.NOPQR..UVWXYZ0123456780", d1);
101*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("!@#$^&*()-_<>[];:~", d1);
102*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("%z %d %%z %%d %%%z %%%d %%% hh:MM", d1);
103*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("", d1);
104*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy", d1);
105*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy", new Date(1850, 0, 1));
106*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy", new Date(2525, 11, 31));
107*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy");
108*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat();
109*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy", 42);
110*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy", "clams");
111*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy", {"clams": 3});
112*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy", ["clams", 3]);
113*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat({"clams": 3}, d1);
114*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat(["clams", 3], d1);
115*3ac0a46fSAndroid Build Coastguard WorkerTestOneXFAFormat("mm", d1, false);
116*3ac0a46fSAndroid Build Coastguard WorkerTestOneXFAFormat("mm", d1, true);
117*3ac0a46fSAndroid Build Coastguard Worker
118*3ac0a46fSAndroid Build Coastguard Worker// Date with year 0.
119*3ac0a46fSAndroid Build Coastguard Worker// TODO(thestig): Why is the output different from Acrobat?
120*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(0, 06, 04, 15, 59, 58));
121*3ac0a46fSAndroid Build Coastguard Worker// Date with month 20.
122*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, 20, 04, 15, 59, 58));
123*3ac0a46fSAndroid Build Coastguard Worker// Date with day 100.
124*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, 20, 100, 15, 59, 58));
125*3ac0a46fSAndroid Build Coastguard Worker// Date with hour 50
126*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, 06, 04, 50, 59, 58));
127*3ac0a46fSAndroid Build Coastguard Worker// Date with minute 1234.
128*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, 06, 04, 15, 1234, 58));
129*3ac0a46fSAndroid Build Coastguard Worker// Date with second 65.
130*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, 06, 04, 15, 59, 65));
131*3ac0a46fSAndroid Build Coastguard Worker// Date with April 31th.
132*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, 03, 31, 15, 59, 58));
133*3ac0a46fSAndroid Build Coastguard Worker// Date with February 30th.
134*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, 01, 30, 15, 59, 58));
135*3ac0a46fSAndroid Build Coastguard Worker// Date with negative year.
136*3ac0a46fSAndroid Build Coastguard Worker// Acrobat prints out "07/04/-001 15:59:58" but handling this rarely used case
137*3ac0a46fSAndroid Build Coastguard Worker// outside of FXSYS_wcsftime() is a lot of work.
138*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(-1, 06, 04, 15, 59, 58));
139*3ac0a46fSAndroid Build Coastguard Worker// Date with negative month.
140*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, -1, 30, 15, 59, 58));
141*3ac0a46fSAndroid Build Coastguard Worker// Date with negative day.
142*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, 06, -1, 15, 59, 58));
143*3ac0a46fSAndroid Build Coastguard Worker// Date with negative hour.
144*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, 06, 04, -1, 59, 58));
145*3ac0a46fSAndroid Build Coastguard Worker// Date with negative minute.
146*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, 06, 04, 15, -1, 58));
147*3ac0a46fSAndroid Build Coastguard Worker// Date with negative second.
148*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, 06, 04, 15, 59, -1));
149*3ac0a46fSAndroid Build Coastguard Workerendstream
150*3ac0a46fSAndroid Build Coastguard Workerendobj
151*3ac0a46fSAndroid Build Coastguard Worker{{xref}}
152*3ac0a46fSAndroid Build Coastguard Worker{{trailer}}
153*3ac0a46fSAndroid Build Coastguard Worker{{startxref}}
154*3ac0a46fSAndroid Build Coastguard Worker%%EOF
155