109 ScopedCPDF_PageModule page_module;
111 auto opt_array = pdfium::MakeRetain<CPDF_Array>();
112 opt_array->AppendNew<CPDF_String>(L"Alpha");
113 opt_array->AppendNew<CPDF_String>(L"Beta");
114 opt_array->AppendNew<CPDF_String>(L"Gamma");
115 opt_array->AppendNew<CPDF_String>(L"Delta");
116 opt_array->AppendNew<CPDF_String>(L"Epsilon");
120 std::vector<
int> expected_indices;
121 std::vector<
int> excluded_indices{-1, 5};
122 TestMultiselectFieldDict(opt_array,
nullptr,
124 false, expected_indices,
129 auto values = pdfium::MakeRetain<CPDF_String>(
nullptr, L"Gamma");
130 std::vector<
int> expected_indices{2};
131 std::vector<
int> excluded_indices{-1, 5};
132 TestMultiselectFieldDict(opt_array, values,
nullptr,
133 false, expected_indices,
138 auto values = pdfium::MakeRetain<CPDF_String>(
nullptr, L"Omega");
139 std::vector<
int> expected_indices;
140 std::vector<
int> excluded_indices{-1, 5};
141 TestMultiselectFieldDict(opt_array, values,
nullptr,
142 false, expected_indices,
147 auto values = pdfium::MakeRetain<CPDF_Array>();
148 values->AppendNew<CPDF_String>(L"Beta");
149 std::vector<
int> expected_indices{1};
150 std::vector<
int> excluded_indices{-1, 5};
151 TestMultiselectFieldDict(opt_array, values,
nullptr,
152 false, expected_indices,
157 auto values = pdfium::MakeRetain<CPDF_Array>();
158 values->AppendNew<CPDF_String>(L"Omega");
159 std::vector<
int> expected_indices;
160 std::vector<
int> excluded_indices{-1, 5};
161 TestMultiselectFieldDict(opt_array, values,
nullptr,
162 false, expected_indices,
167 auto values = pdfium::MakeRetain<CPDF_Array>();
168 values->AppendNew<CPDF_String>(L"Beta");
169 values->AppendNew<CPDF_String>(L"Epsilon");
170 std::vector<
int> expected_indices{1, 4};
171 std::vector<
int> excluded_indices{-1, 5};
172 TestMultiselectFieldDict(opt_array, values,
nullptr,
173 false, expected_indices,
178 auto values = pdfium::MakeRetain<CPDF_Array>();
179 values->AppendNew<CPDF_String>(L"Beta");
180 values->AppendNew<CPDF_String>(L"Epsilon");
181 values->AppendNew<CPDF_String>(L"Omega");
182 std::vector<
int> expected_indices{1, 4};
183 std::vector<
int> excluded_indices{-1, 5};
184 TestMultiselectFieldDict(opt_array, values,
nullptr,
185 false, expected_indices,
190 auto selected_indices = pdfium::MakeRetain<CPDF_Number>(3);
191 std::vector<
int> expected_indices{3};
192 std::vector<
int> excluded_indices{-1, 5};
193 TestMultiselectFieldDict(opt_array,
nullptr, selected_indices,
194 true, expected_indices,
199 auto selected_indices = pdfium::MakeRetain<CPDF_Number>(26);
200 std::vector<
int> expected_indices;
201 std::vector<
int> excluded_indices{-1, 5, 26};
202 TestMultiselectFieldDict(opt_array,
nullptr, selected_indices,
203 true, expected_indices,
208 auto selected_indices = pdfium::MakeRetain<CPDF_Array>();
209 selected_indices->AppendNew<CPDF_Number>(0);
210 std::vector<
int> expected_indices{0};
211 std::vector<
int> excluded_indices{-1, 5};
212 TestMultiselectFieldDict(opt_array,
nullptr, selected_indices,
213 true, expected_indices,
218 auto selected_indices = pdfium::MakeRetain<CPDF_Array>();
219 selected_indices->AppendNew<CPDF_Number>(0);
220 selected_indices->AppendNew<CPDF_Number>(2);
221 selected_indices->AppendNew<CPDF_Number>(3);
222 std::vector<
int> expected_indices{0, 2, 3};
223 std::vector<
int> excluded_indices{-1, 5};
224 TestMultiselectFieldDict(opt_array,
nullptr, selected_indices,
225 true, expected_indices,
231 auto selected_indices = pdfium::MakeRetain<CPDF_Array>();
232 selected_indices->AppendNew<CPDF_Number>(0);
233 selected_indices->AppendNew<CPDF_Number>(2);
234 selected_indices->AppendNew<CPDF_Number>(3);
235 selected_indices->AppendNew<CPDF_Number>(-5);
236 selected_indices->AppendNew<CPDF_Number>(12);
237 selected_indices->AppendNew<CPDF_Number>(42);
238 std::vector<
int> expected_indices{0, 2, 3};
239 std::vector<
int> excluded_indices{-5, -1, 5, 12, 42};
240 TestMultiselectFieldDict(opt_array,
nullptr, selected_indices,
241 true, expected_indices,
247 auto values = pdfium::MakeRetain<CPDF_Array>();
248 values->AppendNew<CPDF_String>(L"Beta");
249 values->AppendNew<CPDF_String>(L"Epsilon");
250 auto selected_indices = pdfium::MakeRetain<CPDF_Array>();
251 selected_indices->AppendNew<CPDF_Number>(0);
252 selected_indices->AppendNew<CPDF_Number>(2);
253 selected_indices->AppendNew<CPDF_Number>(3);
254 std::vector<
int> expected_indices{1, 4};
255 std::vector<
int> excluded_indices{-1, 5};
256 TestMultiselectFieldDict(opt_array, values, selected_indices,
257 false, expected_indices,
262 auto values = pdfium::MakeRetain<CPDF_Array>();
263 values->AppendNew<CPDF_String>(L"Alpha");
264 values->AppendNew<CPDF_String>(L"Epsilon");
265 auto selected_indices = pdfium::MakeRetain<CPDF_Array>();
266 selected_indices->AppendNew<CPDF_Number>(2);
267 selected_indices->AppendNew<CPDF_Number>(3);
268 std::vector<
int> expected_indices{0, 4};
269 std::vector<
int> excluded_indices{-1, 5};
270 TestMultiselectFieldDict(opt_array, values, selected_indices,
271 false, expected_indices,
277 auto values = pdfium::MakeRetain<CPDF_Array>();
278 values->AppendNew<CPDF_String>(L"Beta");
279 values->AppendNew<CPDF_String>(L"Epsilon");
280 values->AppendNew<CPDF_String>(L"Omega");
281 auto selected_indices = pdfium::MakeRetain<CPDF_Array>();
282 selected_indices->AppendNew<CPDF_Number>(1);
283 selected_indices->AppendNew<CPDF_Number>(4);
284 std::vector<
int> expected_indices{1, 4};
285 std::vector<
int> excluded_indices{-1, 5};
286 TestMultiselectFieldDict(opt_array, values, selected_indices,
287 false, expected_indices,
293 auto values = pdfium::MakeRetain<CPDF_Array>();
294 values->AppendNew<CPDF_String>(L"Beta");
295 values->AppendNew<CPDF_String>(L"Epsilon");
296 auto selected_indices = pdfium::MakeRetain<CPDF_Array>();
297 selected_indices->AppendNew<CPDF_Number>(1);
298 selected_indices->AppendNew<CPDF_Number>(4);
299 selected_indices->AppendNew<CPDF_Number>(26);
300 std::vector<
int> expected_indices{1, 4};
301 std::vector<
int> excluded_indices{-1, 5, 26};
302 TestMultiselectFieldDict(opt_array, values, selected_indices,
303 false, expected_indices,
309 auto values = pdfium::MakeRetain<CPDF_Array>();
310 values->AppendNew<CPDF_String>(L"Beta");
311 values->AppendNew<CPDF_String>(L"Epsilon");
312 values->AppendNew<CPDF_String>(L"Omega");
313 auto selected_indices = pdfium::MakeRetain<CPDF_Array>();
314 selected_indices->AppendNew<CPDF_Number>(0);
315 selected_indices->AppendNew<CPDF_Number>(2);
316 selected_indices->AppendNew<CPDF_Number>(3);
317 selected_indices->AppendNew<CPDF_Number>(26);
318 std::vector<
int> expected_indices{1, 4};
319 std::vector<
int> excluded_indices{-1, 5, 26};
320 TestMultiselectFieldDict(opt_array, values, selected_indices,
321 false, expected_indices,
327 auto values = pdfium::MakeRetain<CPDF_String>(
nullptr, L"Gamma");
328 auto selected_indices = pdfium::MakeRetain<CPDF_Number>(4);
329 std::vector<
int> expected_indices{2};
330 std::vector<
int> excluded_indices{-1, 5};
331 TestMultiselectFieldDict(opt_array, values, selected_indices,
332 false, expected_indices,