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/gtest.h" 6 7#include "base/bind.h" 8#include "base/logging.h" 9#include "gin/arguments.h" 10#include "gin/converter.h" 11#include "gin/function_template.h" 12#include "gin/object_template_builder.h" 13#include "gin/per_isolate_data.h" 14#include "gin/public/wrapper_info.h" 15#include "gin/wrappable.h" 16#include "testing/gtest/include/gtest/gtest.h" 17 18namespace gin { 19 20namespace { 21 22void Fail(const std::string& description) { 23 FAIL() << description; 24} 25 26void ExpectTrue(bool condition, const std::string& description) { 27 EXPECT_TRUE(condition) << description; 28} 29 30void ExpectFalse(bool condition, const std::string& description) { 31 EXPECT_FALSE(condition) << description; 32} 33 34void ExpectEqual(const v8::Handle<v8::Value> expected, 35 const v8::Handle<v8::Value> actual, 36 const std::string& description) { 37 EXPECT_TRUE(expected->StrictEquals(actual)) << description; 38} 39 40WrapperInfo g_wrapper_info = { kEmbedderNativeGin }; 41 42} // namespace 43 44const char GTest::kModuleName[] = "gtest"; 45 46v8::Local<v8::Value> GTest::GetModule(v8::Isolate* isolate) { 47 PerIsolateData* data = PerIsolateData::From(isolate); 48 v8::Local<v8::ObjectTemplate> templ = 49 data->GetObjectTemplate(&g_wrapper_info); 50 if (templ.IsEmpty()) { 51 templ = ObjectTemplateBuilder(isolate) 52 .SetMethod("fail", Fail) 53 .SetMethod("expectTrue", ExpectTrue) 54 .SetMethod("expectFalse", ExpectFalse) 55 .SetMethod("expectEqual", ExpectEqual) 56 .Build(); 57 data->SetObjectTemplate(&g_wrapper_info, templ); 58 } 59 return templ->NewInstance(); 60} 61 62} // namespace gin 63