| OLD | NEW |
| 1 // Copyright (c) 2015 PDFium Authors. All rights reserved. | 1 // Copyright (c) 2015 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "embedder_test.h" | 5 #include "embedder_test.h" |
| 6 | 6 |
| 7 #include <limits.h> | 7 #include <limits.h> |
| 8 #include <stdio.h> | 8 #include <stdio.h> |
| 9 #include <stdlib.h> | 9 #include <stdlib.h> |
| 10 #include <string.h> | 10 #include <string.h> |
| (...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 183 FPDF_InitLibrary(); | 183 FPDF_InitLibrary(); |
| 184 | 184 |
| 185 UNSUPPORT_INFO unsuppored_info; | 185 UNSUPPORT_INFO unsuppored_info; |
| 186 memset(&unsuppored_info, '\0', sizeof(unsuppored_info)); | 186 memset(&unsuppored_info, '\0', sizeof(unsuppored_info)); |
| 187 unsuppored_info.version = 1; | 187 unsuppored_info.version = 1; |
| 188 unsuppored_info.FSDK_UnSupport_Handler = Unsupported_Handler; | 188 unsuppored_info.FSDK_UnSupport_Handler = Unsupported_Handler; |
| 189 FSDK_SetUnSpObjProcessHandler(&unsuppored_info); | 189 FSDK_SetUnSpObjProcessHandler(&unsuppored_info); |
| 190 } | 190 } |
| 191 | 191 |
| 192 void EmbedderTest::TearDown() { | 192 void EmbedderTest::TearDown() { |
| 193 FPDF_CloseDocument(document_); | 193 if (form_handle_) { |
| 194 FORM_DoDocumentAAction(form_handle_, FPDFDOC_AACTION_WC); |
| 195 FPDFDOC_ExitFormFillEnvironment(form_handle_); |
| 196 } |
| 197 if (document_) { |
| 198 FPDF_CloseDocument(document_); |
| 199 } |
| 194 FPDFAvail_Destroy(avail_); | 200 FPDFAvail_Destroy(avail_); |
| 195 FPDF_DestroyLibrary(); | 201 FPDF_DestroyLibrary(); |
| 196 if (loader_) { | 202 if (loader_) { |
| 197 delete loader_; | 203 delete loader_; |
| 198 } | 204 } |
| 199 if (file_contents_) { | 205 if (file_contents_) { |
| 200 free(file_contents_); | 206 free(file_contents_); |
| 201 } | 207 } |
| 202 } | 208 } |
| 203 | 209 |
| (...skipping 21 matching lines...) Expand all Loading... |
| 225 document_ = FPDF_LoadCustomDocument(&file_access_, NULL); | 231 document_ = FPDF_LoadCustomDocument(&file_access_, NULL); |
| 226 } else { | 232 } else { |
| 227 document_ = FPDFAvail_GetDocument(avail_, NULL); | 233 document_ = FPDFAvail_GetDocument(avail_, NULL); |
| 228 } | 234 } |
| 229 if (!document_) { | 235 if (!document_) { |
| 230 return false; | 236 return false; |
| 231 } | 237 } |
| 232 (void) FPDF_LoadXFA(document_); | 238 (void) FPDF_LoadXFA(document_); |
| 233 (void) FPDF_GetDocPermissions(document_); | 239 (void) FPDF_GetDocPermissions(document_); |
| 234 (void) FPDFAvail_IsFormAvail(avail_, &hints_); | 240 (void) FPDFAvail_IsFormAvail(avail_, &hints_); |
| 235 return true; | |
| 236 } | |
| 237 | 241 |
| 238 FPDF_FORMHANDLE EmbedderTest::SetFormFillEnvironment() { | |
| 239 IPDF_JSPLATFORM platform_callbacks; | 242 IPDF_JSPLATFORM platform_callbacks; |
| 240 memset(&platform_callbacks, '\0', sizeof(platform_callbacks)); | 243 memset(&platform_callbacks, '\0', sizeof(platform_callbacks)); |
| 241 platform_callbacks.version = 1; | 244 platform_callbacks.version = 1; |
| 242 platform_callbacks.app_alert = Form_Alert; | 245 platform_callbacks.app_alert = Form_Alert; |
| 243 | 246 |
| 244 FPDF_FORMFILLINFO form_callbacks; | 247 FPDF_FORMFILLINFO form_callbacks; |
| 245 memset(&form_callbacks, '\0', sizeof(form_callbacks)); | 248 memset(&form_callbacks, '\0', sizeof(form_callbacks)); |
| 246 form_callbacks.version = 1; | 249 form_callbacks.version = 1; |
| 247 form_callbacks.m_pJsPlatform = &platform_callbacks; | 250 form_callbacks.m_pJsPlatform = &platform_callbacks; |
| 248 | 251 |
| 249 FPDF_FORMHANDLE form = FPDFDOC_InitFormFillEnvironment(document_, | 252 form_handle_ = FPDFDOC_InitFormFillEnvironment(document_, &form_callbacks); |
| 250 &form_callbacks); | 253 FPDF_SetFormFieldHighlightColor(form_handle_, 0, 0xFFE4DD); |
| 251 FPDF_SetFormFieldHighlightColor(form, 0, 0xFFE4DD); | 254 FPDF_SetFormFieldHighlightAlpha(form_handle_, 100); |
| 252 FPDF_SetFormFieldHighlightAlpha(form, 100); | 255 |
| 253 return form; | 256 return true; |
| 254 } | 257 } |
| 255 | 258 |
| 256 void EmbedderTest::ClearFormFillEnvironment(FPDF_FORMHANDLE form) { | 259 void EmbedderTest::DoOpenActions() { |
| 257 FORM_DoDocumentAAction(form, FPDFDOC_AACTION_WC); | 260 FORM_DoDocumentJSAction(form_handle_); |
| 258 FPDFDOC_ExitFormFillEnvironment(form); | 261 FORM_DoDocumentOpenAction(form_handle_); |
| 259 } | |
| 260 | |
| 261 void EmbedderTest::DoOpenActions(FPDF_FORMHANDLE form) { | |
| 262 FORM_DoDocumentJSAction(form); | |
| 263 FORM_DoDocumentOpenAction(form); | |
| 264 } | 262 } |
| 265 | 263 |
| 266 int EmbedderTest::GetFirstPageNum() { | 264 int EmbedderTest::GetFirstPageNum() { |
| 267 int first_page = FPDFAvail_GetFirstPageNum(document_); | 265 int first_page = FPDFAvail_GetFirstPageNum(document_); |
| 268 (void) FPDFAvail_IsPageAvail(avail_, first_page, &hints_); | 266 (void) FPDFAvail_IsPageAvail(avail_, first_page, &hints_); |
| 269 return first_page; | 267 return first_page; |
| 270 } | 268 } |
| 271 | 269 |
| 272 int EmbedderTest::GetPageCount() { | 270 int EmbedderTest::GetPageCount() { |
| 273 int page_count = FPDF_GetPageCount(document_); | 271 int page_count = FPDF_GetPageCount(document_); |
| 274 for (int i = 0; i < page_count; ++i) { | 272 for (int i = 0; i < page_count; ++i) { |
| 275 (void) FPDFAvail_IsPageAvail(avail_, i, &hints_); | 273 (void) FPDFAvail_IsPageAvail(avail_, i, &hints_); |
| 276 } | 274 } |
| 277 return page_count; | 275 return page_count; |
| 278 } | 276 } |
| 279 | 277 |
| 280 FPDF_PAGE EmbedderTest::LoadPage(int page_number, | 278 FPDF_PAGE EmbedderTest::LoadPage(int page_number) { |
| 281 FPDF_FORMHANDLE form) { | |
| 282 FPDF_PAGE page = FPDF_LoadPage(document_, page_number); | 279 FPDF_PAGE page = FPDF_LoadPage(document_, page_number); |
| 283 if (!page) { | 280 if (!page) { |
| 284 return nullptr; | 281 return nullptr; |
| 285 } | 282 } |
| 286 FORM_OnAfterLoadPage(page, form); | 283 FORM_OnAfterLoadPage(page, form_handle_); |
| 287 FORM_DoPageAAction(page, form, FPDFPAGE_AACTION_OPEN); | 284 FORM_DoPageAAction(page, form_handle_, FPDFPAGE_AACTION_OPEN); |
| 288 return page; | 285 return page; |
| 289 } | 286 } |
| 290 | 287 |
| 291 FPDF_BITMAP EmbedderTest::RenderPage(FPDF_PAGE page, | 288 FPDF_BITMAP EmbedderTest::RenderPage(FPDF_PAGE page) { |
| 292 FPDF_FORMHANDLE form) { | |
| 293 int width = static_cast<int>(FPDF_GetPageWidth(page)); | 289 int width = static_cast<int>(FPDF_GetPageWidth(page)); |
| 294 int height = static_cast<int>(FPDF_GetPageHeight(page)); | 290 int height = static_cast<int>(FPDF_GetPageHeight(page)); |
| 295 FPDF_BITMAP bitmap = FPDFBitmap_Create(width, height, 0); | 291 FPDF_BITMAP bitmap = FPDFBitmap_Create(width, height, 0); |
| 296 FPDFBitmap_FillRect(bitmap, 0, 0, width, height, 0xFFFFFFFF); | 292 FPDFBitmap_FillRect(bitmap, 0, 0, width, height, 0xFFFFFFFF); |
| 297 FPDF_RenderPageBitmap(bitmap, page, 0, 0, width, height, 0, 0); | 293 FPDF_RenderPageBitmap(bitmap, page, 0, 0, width, height, 0, 0); |
| 298 FPDF_FFLDraw(form, bitmap, page, 0, 0, width, height, 0, 0); | 294 FPDF_FFLDraw(form_handle_, bitmap, page, 0, 0, width, height, 0, 0); |
| 299 return bitmap; | 295 return bitmap; |
| 300 } | 296 } |
| 301 | 297 |
| 302 void EmbedderTest::UnloadPage(FPDF_PAGE page, FPDF_FORMHANDLE form) { | 298 void EmbedderTest::UnloadPage(FPDF_PAGE page) { |
| 303 FORM_DoPageAAction(page, form, FPDFPAGE_AACTION_CLOSE); | 299 FORM_DoPageAAction(page, form_handle_, FPDFPAGE_AACTION_CLOSE); |
| 304 FORM_OnBeforeClosePage(page, form); | 300 FORM_OnBeforeClosePage(page, form_handle_); |
| 305 FPDF_ClosePage(page); | 301 FPDF_ClosePage(page); |
| 306 } | 302 } |
| 307 | 303 |
| 308 // Can't use gtest-provided main since we need to stash the path to the | 304 // Can't use gtest-provided main since we need to stash the path to the |
| 309 // executable in order to find the external V8 binary data files. | 305 // executable in order to find the external V8 binary data files. |
| 310 int main(int argc, char** argv) { | 306 int main(int argc, char** argv) { |
| 311 g_exe_path_ = argv[0]; | 307 g_exe_path_ = argv[0]; |
| 312 testing::InitGoogleTest(&argc, argv); | 308 testing::InitGoogleTest(&argc, argv); |
| 313 return RUN_ALL_TESTS(); | 309 return RUN_ALL_TESTS(); |
| 314 } | 310 } |
| OLD | NEW |