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.