{{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
  /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
{{include expect.js}}

try {
  expect("app.alert('message', 1, 2, 'title')", 0);
  expect("app.alert({'cMsg': 'message', 'cTitle': 'title'})", 0);
  expect("app.alert({'cMsg': 'message', 'cTitle': 'title', 'nIcon': 3, 'nType': 4})", 0);
  expect("app.alert(undefined)", 0);
  expect("app.alert(null)", 0);
  expect("app.alert(true)", 0);
  expect("app.alert(false)", 0);
  expect("app.alert(42)", 0);
  expect("app.alert([1, 2, 3])", 0);
  expect("app.alert([1, 2, {'color': 'red'}])", 0);
  expect("app.alert({'color': 'red'}, 5, 6, 'title')", 0);
  expectError("app.alert()");
  expectError("app.alert({})");
  expectError("app.alert({'color': 'red', 'size': 42})");

  expect("app.beep(1)", undefined);

  expectError("app.browseForDoc()");
  expect("app.execDialog()", undefined);
  expectError("app.execMenuItem()");
  expect("app.findComponent()", undefined);
  expect("app.goBack()", undefined);
  expect("app.goForward()", undefined);
  expect("app.launchURL()", undefined);
  expectError("app.newDoc()");
  expect("app.newFDF()", undefined);
  expectError("app.openDoc()");
  expect("app.openFDF()", undefined);
  expectError("app.popUpMenuEx()");
  expectError("app.popUpMenu()");

  expect("app.mailMsg(true)", undefined);
  expect("app.mailMsg(false, 'user@example.com')", undefined);
  expect("app.mailMsg(false, 'user@example.com', 'cc@example.com', " +
         "'bcc@example.com', 'subject', 'body')", undefined);
  expect("app.mailMsg({'bUI': true})", undefined);
  expect("app.mailMsg({'bUI': false, 'cTo': 'user@example.com'})", undefined);
  expect("app.mailMsg({'bUI': false, 'cTo': 'user@example.com', " +
         "'cCc': 'cc@example.com', 'cBcc': 'bcc@example.com', " +
         "'cSubject': 'subject', 'cMsg': 'body'})", undefined);
  expectError("app.mailMsg()");
  expectError("app.mailMsg(false)");
  expectError("app.mailMsg({'color': 'red', 'size': 42})");

  expect("app.response('question')", 'No');
  expect("app.response('question', 'title', 'default', true, 'label')", 'No');
  expect("app.response({'cQuestion': 'question'})", 'No');
  expect("app.response({'cQuestion': 'question', 'cTitle': 'title', " +
         "'cDefault': 'default', 'bPassword': true, 'cLabel': 'label'})", 'No');
  expectError("app.response()");
  expectError("app.response({})");

} catch (e) {
  app.alert('Truly unexpected error: ' + e);
}
endstream
endobj
{{xref}}
{{trailer}}
{{startxref}}
%%EOF
