Test CJS_Field::getItemAt() cases from JavaScript.

Change-Id: Ia53cbb92f1701d28a5e05ca59e2e62674b4ecd42
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/63550
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/testing/resources/javascript/field.fragment b/testing/resources/javascript/field.fragment
index f301364..335e1ae 100644
--- a/testing/resources/javascript/field.fragment
+++ b/testing/resources/javascript/field.fragment
@@ -97,8 +97,12 @@
   /Ff 2097152
   /Parent 5 0 R
   /T (MyMultiSelect)
-  /Rect [ 280 281 300 301 ]
-  /Opt [ (foo) (bar) (qux) ]
+  /Rect [280 281 300 301]
+  /Opt [
+    (foo)
+    (bar)
+    [(qux) (Qux)]
+  ]
   /V (qux)
 >>
 endobj
@@ -109,11 +113,11 @@
   /Ff 0
   /Parent 5 0 R
   /T (MySingleSelect)
-  /Rect [ 300 301 320 321 ]
+  /Rect [300 301 320 321]
   /Opt [
-    [ (foo) (Foo) ]
-    [ (bar) (Bar) ]
-    [ (qux) (Qux) ]
+    [(foo) (Foo)]
+    [(bar) (Bar)]
+    [(qux) (Qux)]
   ]
 >>
 endobj
diff --git a/testing/resources/javascript/field_methods.in b/testing/resources/javascript/field_methods.in
index 3197af9..918f672 100644
--- a/testing/resources/javascript/field_methods.in
+++ b/testing/resources/javascript/field_methods.in
@@ -42,6 +42,17 @@
 
 expect("this.getField('MyField.MyFile').browseForFileToSubmit()", undefined);
 
+expect("this.getField('MyField.MyMultiSelect').getItemAt(0)", "foo");
+expect("this.getField('MyField.MyMultiSelect').getItemAt(1, false)", "bar");
+expect("this.getField('MyField.MyMultiSelect').getItemAt(1, true)", "bar");
+expect("this.getField('MyField.MyMultiSelect').getItemAt(2, false)", "Qux");
+expect("this.getField('MyField.MyMultiSelect').getItemAt(2, true)", "qux");
+expect("this.getField('MyField.MyMultiSelect').getItemAt(3)", "");
+expect("this.getField('MyField.MyMultiSelect').getItemAt()", "qux");
+expect("this.getField('MyField.MyMultiSelect').getItemAt(172)", "qux");
+expect("this.getField('MyField.MyMultiSelect').getItemAt(-400)", "");
+expect("this.getField('MyField.MyMultiSelect').getItemAt('zzzz')", "foo");
+
 expectError("this.getField('MyField').checkThisBox()");
 expectError("this.getField('MyField').checkThisBox({})");
 
diff --git a/testing/resources/javascript/field_methods_expected.txt b/testing/resources/javascript/field_methods_expected.txt
index 70cb22e..285237d 100644
--- a/testing/resources/javascript/field_methods_expected.txt
+++ b/testing/resources/javascript/field_methods_expected.txt
@@ -13,6 +13,16 @@
 Alert: PASS: this.getField('MyField.MyPushButton').buttonGetIcon() = [object Object]
 Alert: PASS: this.getField('MyField.MyPushButton').buttonImportIcon() = undefined
 Alert: PASS: this.getField('MyField.MyFile').browseForFileToSubmit() = undefined
+Alert: PASS: this.getField('MyField.MyMultiSelect').getItemAt(0) = foo
+Alert: PASS: this.getField('MyField.MyMultiSelect').getItemAt(1, false) = bar
+Alert: PASS: this.getField('MyField.MyMultiSelect').getItemAt(1, true) = bar
+Alert: PASS: this.getField('MyField.MyMultiSelect').getItemAt(2, false) = Qux
+Alert: PASS: this.getField('MyField.MyMultiSelect').getItemAt(2, true) = qux
+Alert: PASS: this.getField('MyField.MyMultiSelect').getItemAt(3) = 
+Alert: PASS: this.getField('MyField.MyMultiSelect').getItemAt() = qux
+Alert: PASS: this.getField('MyField.MyMultiSelect').getItemAt(172) = qux
+Alert: PASS: this.getField('MyField.MyMultiSelect').getItemAt(-400) = 
+Alert: PASS: this.getField('MyField.MyMultiSelect').getItemAt('zzzz') = foo
 Alert: PASS: this.getField('MyField').checkThisBox() threw Field.checkThisBox: Incorrect number of parameters passed to function.
 Alert: PASS: this.getField('MyField').checkThisBox({}) threw Field.checkThisBox: Object is of the wrong type.
 Alert: PASS: this.getField('MyField').defaultIsChecked() threw Field.defaultIsChecked: Incorrect number of parameters passed to function.