| // Copyright 2020 PDFium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "testing/embedder_test_environment.h" |
| |
| #include "core/fxcrt/fx_system.h" |
| #include "public/fpdfview.h" |
| #include "third_party/base/check.h" |
| |
| #ifdef PDF_ENABLE_V8 |
| #include "testing/v8_test_environment.h" |
| #endif // PDF_ENABLE_V8 |
| |
| namespace { |
| |
| EmbedderTestEnvironment* g_environment = nullptr; |
| |
| } // namespace |
| |
| EmbedderTestEnvironment::EmbedderTestEnvironment() { |
| DCHECK(!g_environment); |
| g_environment = this; |
| } |
| |
| EmbedderTestEnvironment::~EmbedderTestEnvironment() { |
| DCHECK(g_environment); |
| g_environment = nullptr; |
| } |
| |
| // static |
| EmbedderTestEnvironment* EmbedderTestEnvironment::GetInstance() { |
| return g_environment; |
| } |
| |
| void EmbedderTestEnvironment::SetUp() { |
| FPDF_LIBRARY_CONFIG config; |
| config.version = 3; |
| config.m_pUserFontPaths = nullptr; |
| config.m_v8EmbedderSlot = 0; |
| config.m_pPlatform = nullptr; |
| #ifdef PDF_ENABLE_V8 |
| config.m_pIsolate = V8TestEnvironment::GetInstance()->isolate(); |
| config.m_pPlatform = V8TestEnvironment::GetInstance()->platform(); |
| #else // PDF_ENABLE_V8 |
| config.m_pIsolate = nullptr; |
| config.m_pPlatform = nullptr; |
| #endif // PDF_ENABLE_V8 |
| |
| FPDF_InitLibraryWithConfig(&config); |
| } |
| |
| void EmbedderTestEnvironment::TearDown() { |
| FPDF_DestroyLibrary(); |
| } |