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