Home | History | Annotate | Download | only in test
      1 // Copyright 2013 The Chromium 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 "gin/test/v8_test.h"
      6 
      7 #include "gin/array_buffer.h"
      8 #include "gin/public/isolate_holder.h"
      9 
     10 using v8::Context;
     11 using v8::Local;
     12 using v8::HandleScope;
     13 
     14 namespace gin {
     15 
     16 V8Test::V8Test() {
     17 }
     18 
     19 V8Test::~V8Test() {
     20 }
     21 
     22 void V8Test::SetUp() {
     23   gin::IsolateHolder::Initialize(gin::IsolateHolder::kStrictMode,
     24                                  gin::ArrayBufferAllocator::SharedInstance());
     25   instance_.reset(new gin::IsolateHolder);
     26   instance_->isolate()->Enter();
     27   HandleScope handle_scope(instance_->isolate());
     28   context_.Reset(instance_->isolate(), Context::New(instance_->isolate()));
     29   Local<Context>::New(instance_->isolate(), context_)->Enter();
     30 }
     31 
     32 void V8Test::TearDown() {
     33   {
     34     HandleScope handle_scope(instance_->isolate());
     35     Local<Context>::New(instance_->isolate(), context_)->Exit();
     36     context_.Reset();
     37   }
     38   instance_->isolate()->Exit();
     39   instance_.reset();
     40 }
     41 
     42 }  // namespace gin
     43