{{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]
>>
endobj
% OpenAction action
{{object 10 0}} <<
  /Type /Action
  /S /JavaScript
  /JS 11 0 R
>>
endobj
% JS program to execute
{{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
