Add basic JavaScript test for XFA exclgroup methods.

Cover the entry points and argument validation at a minimum.

Change-Id: Ib66acc23ae03ea2e36cacfdb55323812605cfe69
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/68410
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/testing/resources/javascript/xfa_specific/xfa_exclgroup.in b/testing/resources/javascript/xfa_specific/xfa_exclgroup.in
new file mode 100644
index 0000000..d63b4df
--- /dev/null
+++ b/testing/resources/javascript/xfa_specific/xfa_exclgroup.in
@@ -0,0 +1,71 @@
+{{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">
+    <exclGroup name="RadioButtonList" layout="lr-tb">
+      <field w="30mm" h="6mm" name="yes">
+        <ui>
+          <checkButton shape="round">
+          </checkButton>
+        </ui>
+        <items>
+          <text>Agree</text>
+        </items>
+      </field>
+      <field w="30mm" h="6mm" name="no">
+        <ui>
+          <checkButton shape="round">
+          </checkButton>
+        </ui>
+        <items>
+          <text>Disagree</text>
+        </items>
+      </field>
+      <validate nullTest="error"/>
+    </exclGroup>
+    <event activity="initialize">
+      <script contentType="application/x-javascript"><![CDATA[
+        {{include ../expect.js}}
+        expect("RadioButtonList.className", "exclGroup");
+
+        expectError("RadioButtonList.execEvent()");
+        expectError("RadioButtonList.execEvent(1, 2)");
+        expect("RadioButtonList.execEvent('nonesuch')", null);
+        expect("RadioButtonList.execEvent('initialize')", null);
+
+        expectError("RadioButtonList.execInitialize('badarg')");
+        expect("RadioButtonList.execInitialize()", null);
+
+        expectError("RadioButtonList.execCalculate('badarg')");
+        expect("RadioButtonList.execCalculate()", null);
+
+        expectError("RadioButtonList.execValidate('badarg')");
+        expect("RadioButtonList.execValidate()", true);
+
+        expectError("RadioButtonList.selectedMember('badarg')");
+        expect("RadioButtonList.selectedMember()", null);
+
+        expect("RadioButtonList.defaultValue",  undefined);
+        expect("RadioButtonList.rawValue", null);
+        expect("RadioButtonList.transient", undefined);
+        expect("RadioButtonList.errorText", undefined);
+      ]]></script>
+    </event>
+  </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
diff --git a/testing/resources/javascript/xfa_specific/xfa_exclgroup_expected.txt b/testing/resources/javascript/xfa_specific/xfa_exclgroup_expected.txt
new file mode 100644
index 0000000..d92bc94
--- /dev/null
+++ b/testing/resources/javascript/xfa_specific/xfa_exclgroup_expected.txt
@@ -0,0 +1,17 @@
+Alert: PASS: RadioButtonList.className = exclGroup
+Alert: PASS: RadioButtonList.execEvent() threw XFAObject.execEvent: Incorrect number of parameters passed to function.
+Alert: PASS: RadioButtonList.execEvent(1, 2) threw XFAObject.execEvent: Incorrect number of parameters passed to function.
+Alert: PASS: RadioButtonList.execEvent('nonesuch') = undefined
+Alert: PASS: RadioButtonList.execEvent('initialize') = undefined
+Alert: PASS: RadioButtonList.execInitialize('badarg') threw XFAObject.execInitialize: Incorrect number of parameters passed to function.
+Alert: PASS: RadioButtonList.execInitialize() = undefined
+Alert: PASS: RadioButtonList.execCalculate('badarg') threw XFAObject.execCalculate: Incorrect number of parameters passed to function.
+Alert: PASS: RadioButtonList.execCalculate() = undefined
+Alert: PASS: RadioButtonList.execValidate('badarg') threw XFAObject.execValidate: Incorrect number of parameters passed to function.
+Alert: PASS: RadioButtonList.execValidate() = true
+Alert: PASS: RadioButtonList.selectedMember('badarg') threw XFAObject.selectedMember: Incorrect number of parameters passed to function.
+Alert: PASS: RadioButtonList.selectedMember() = null
+Alert: PASS: RadioButtonList.defaultValue = undefined
+Alert: PASS: RadioButtonList.rawValue = null
+Alert: PASS: RadioButtonList.transient = undefined
+Alert: PASS: RadioButtonList.errorText = undefined