{{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
