blob: 57e6c4d3177281edde2167b562bfe943462b5590 [file] [log] [blame]
Lei Zhang1ac47eb2015-12-21 11:04:44 -08001// Copyright 2015 PDFium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "testing/js_embedder_test.h"
Lei Zhange75538b2017-12-20 19:33:20 +00006
Lei Zhang70156342018-10-18 19:29:59 +00007#include "fxjs/cfxjs_engine.h"
tsepez36eb4bd2016-10-03 15:24:27 -07008#include "third_party/base/ptr_util.h"
Lei Zhang1ac47eb2015-12-21 11:04:44 -08009
10JSEmbedderTest::JSEmbedderTest()
Tom Sepez3f8ee5e2018-02-09 18:26:09 +000011 : m_pArrayBufferAllocator(
12 pdfium::MakeUnique<CFX_V8ArrayBufferAllocator>()) {}
jochen38a1f0a2016-05-31 12:07:40 -070013
14JSEmbedderTest::~JSEmbedderTest() {}
15
16void JSEmbedderTest::SetUp() {
Lei Zhang1ac47eb2015-12-21 11:04:44 -080017 v8::Isolate::CreateParams params;
18 params.array_buffer_allocator = m_pArrayBufferAllocator.get();
Tom Sepez98b356a2018-07-16 21:35:06 +000019 m_pIsolate.reset(v8::Isolate::New(params));
Lei Zhang1ac47eb2015-12-21 11:04:44 -080020
Tom Sepez98b356a2018-07-16 21:35:06 +000021 EmbedderTest::SetExternalIsolate(isolate());
Lei Zhang1ac47eb2015-12-21 11:04:44 -080022 EmbedderTest::SetUp();
23
Tom Sepez98b356a2018-07-16 21:35:06 +000024 v8::Isolate::Scope isolate_scope(isolate());
25 v8::HandleScope handle_scope(isolate());
26 FXJS_PerIsolateData::SetUp(isolate());
27 m_Engine = pdfium::MakeUnique<CFXJS_Engine>(isolate());
tsepezb4694242016-08-15 16:44:55 -070028 m_Engine->InitializeEngine();
Lei Zhang1ac47eb2015-12-21 11:04:44 -080029}
30
31void JSEmbedderTest::TearDown() {
tsepezb4694242016-08-15 16:44:55 -070032 m_Engine->ReleaseEngine();
33 m_Engine.reset();
Lei Zhang1ac47eb2015-12-21 11:04:44 -080034 EmbedderTest::TearDown();
Tom Sepez98b356a2018-07-16 21:35:06 +000035 m_pIsolate.reset();
Lei Zhang1ac47eb2015-12-21 11:04:44 -080036}
37
38v8::Local<v8::Context> JSEmbedderTest::GetV8Context() {
Tom Sepez1258f7f2018-02-02 17:37:37 +000039 return m_Engine->GetV8Context();
Lei Zhang1ac47eb2015-12-21 11:04:44 -080040}