{{header}}
{{include ../../xfa_catalog_1_0.fragment}}
{{include ../../xfa_object_2_0.fragment}}
{{include ../../xfa_preamble_3_0.fragment}}
{{include ../../xfa_config_4_0.fragment}}
{{object 5 0}} <<
  {{streamlen}}
>>
stream
<template>
  <subform layout="tb" name="my_doc">
    <pageSet id="page" relation="orderedOccurrence">
      <occur initial="1" max="1" min="1"/>
      <pageArea id="Page1" name="Page1">
        <occur max="1" min="1"/>
        <contentArea h="100mm" w="200mm" x="0.25in" y="0.25in"/>
      </pageArea>
      <pageArea id="Page2" name="Page2">
        <occur max="1" min="1"/>
        <contentArea h="100mm" w="200mm" x="0.25in" y="0.25in"/>
      </pageArea>
    </pageSet>
    <event activity="docReady" ref="$host">
      <script contentType="application/x-javascript">
        {{include ../expect.js}}
        {{include ../property_test_helpers.js}}
        testROProperty(xfa.host, "appType", "Exchange");
        testRWProperty(xfa.host, "calculationsEnabled", true, false);
        testRIProperty(xfa.host, "currentPage", -1, 0);
        testROProperty(xfa.host, "language", "");
        testROProperty(xfa.host, "name", "Acrobat");
        testROProperty(xfa.host, "numPages", 2);
        testROProperty(xfa.host, "platform", "");
        testRIProperty(xfa.host, "title", "");
        testRWProperty(xfa.host, "validationsEnabled", true, false);
        testROProperty(xfa.host, "variation", "Full");
        testROProperty(xfa.host, "version", "11");
        app.alert("finished testing properties");

        expectError("xfa.host.beep(1, 1)");
        expect("xfa.host.beep(42)");
        expect("xfa.host.beep()");

        expect("xfa.host.documentCountInBatch()", 0);
        expect("xfa.host.documentCountInBatch(42, 'args', ['ignored'])", 0);

        expect("xfa.host.documentInBatch()", 0);
        expect("xfa.host.documentInBatch(42, 'args', ['ignored'])", 0);

        expectError("xfa.host.exportData()");
        expectError("xfa.host.exportData(1, 2, 3)");
        expect("xfa.host.exportData('to-evil-place')");
        expect("xfa.host.exportData('to-evil-place', false)");

        expect("xfa.host.getFocus()");
        expect("xfa.host.getFocus('args', 'ignored')");

        expectError("xfa.host.gotoURL()");
        expectError("xfa.host.gotoURL(1, 2)");
        expect("xfa.host.gotoURL('http://example.com')");

        expectError("xfa.host.importData()");
        expectError("xfa.host.importData(1, 2)");
        expect("xfa.host.importData('from-good-place')");

        expectError("xfa.host.openList()");
        expectError("xfa.host.openList(1, 2)");
        expect("xfa.host.openList('my_doc.subform_combox_0.combox')");
        expect("xfa.host.openList(eval('my_doc.subform_combox_0'))");

        expect("xfa.host.pageUp()");
        expect("xfa.host.pageUp('ignored arg')");
        expect("xfa.host.pageDown()");
        expect("xfa.host.pageDown('ignored arg')");

        expectError("xfa.host.print(1, 2, 3, 4, 5, 6, 7)");
        expectError("xfa.host.print(1, 2, 3, 4, 5, 6, 7, 8, 9)");
        expect("xfa.host.print(true, 1, 1, true, true, true, true, true)");

        expectError("xfa.host.response()");
        expectError("xfa.host.response(1, 2, 3, 4, 5)");
        expect("xfa.host.response('Are you sure?', 'Launch Missiles', 'Yes', 1)", "No");

        expectError("xfa.host.setFocus()");
        expectError("xfa.host.setFocus('one', 'two')");
        expect("xfa.host.setFocus('my_doc.subform_combox_0')");
        expect("xfa.host.getFocus()", "[object XFAObject]");
        expect("xfa.host.setFocus(eval('my_doc.subform_combox_0'))");
        expect("xfa.host.getFocus()", "[object XFAObject]");

        expectError("xfa.host.resetData(1, 2)");
        expect("xfa.host.resetData()");
        expect("xfa.host.resetData('xfa.host')");

        app.alert("finished testing methods");
      </script>
    </event>
    <subform layout="tb" name="subform_combox_0">
      <occur initial="1" max="10" min="0" name="occur_subform_combox_0">
      </occur>
      <field h="10mm" name="combox" w="40mm" x="10mm" y="10mm">
      </field>
    </subform>
  </subform>
</template>
endstream
endobj
{{include ../../xfa_locale_6_0.fragment}}
{{include ../../xfa_postamble_7_0.fragment}}
{{include ../../xfa_pages_8_0.fragment}}
{{xref}}
{{trailer}}
{{startxref}}
%%EOF
