OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium 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 "chrome/test/base/v8_unit_test.h" | 5 #include "chrome/test/base/v8_unit_test.h" |
6 | 6 |
7 #include "base/files/file_util.h" | 7 #include "base/files/file_util.h" |
8 #include "base/logging.h" | 8 #include "base/logging.h" |
9 #include "base/path_service.h" | 9 #include "base/path_service.h" |
10 #include "base/strings/string_piece.h" | 10 #include "base/strings/string_piece.h" |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
162 | 162 |
163 AddLibrary(g_test_data_directory.AppendASCII("test_api.js")); | 163 AddLibrary(g_test_data_directory.AppendASCII("test_api.js")); |
164 } | 164 } |
165 | 165 |
166 void V8UnitTest::SetUp() { | 166 void V8UnitTest::SetUp() { |
167 v8::Isolate* isolate = blink::mainThreadIsolate(); | 167 v8::Isolate* isolate = blink::mainThreadIsolate(); |
168 v8::Local<v8::ObjectTemplate> global = v8::ObjectTemplate::New(isolate); | 168 v8::Local<v8::ObjectTemplate> global = v8::ObjectTemplate::New(isolate); |
169 v8::Local<v8::String> log_string = v8::String::NewFromUtf8(isolate, "log"); | 169 v8::Local<v8::String> log_string = v8::String::NewFromUtf8(isolate, "log"); |
170 v8::Local<v8::FunctionTemplate> log_function = | 170 v8::Local<v8::FunctionTemplate> log_function = |
171 v8::FunctionTemplate::New(isolate, &V8UnitTest::Log); | 171 v8::FunctionTemplate::New(isolate, &V8UnitTest::Log); |
| 172 log_function->RemovePrototype(); |
172 global->Set(log_string, log_function); | 173 global->Set(log_string, log_function); |
173 | 174 |
174 // Set up chrome object for chrome.send(). | 175 // Set up chrome object for chrome.send(). |
175 v8::Local<v8::ObjectTemplate> chrome = v8::ObjectTemplate::New(isolate); | 176 v8::Local<v8::ObjectTemplate> chrome = v8::ObjectTemplate::New(isolate); |
176 global->Set(v8::String::NewFromUtf8(isolate, "chrome"), chrome); | 177 global->Set(v8::String::NewFromUtf8(isolate, "chrome"), chrome); |
177 chrome->Set(v8::String::NewFromUtf8(isolate, "send"), | 178 v8::Local<v8::FunctionTemplate> send_function = |
178 v8::FunctionTemplate::New(isolate, &V8UnitTest::ChromeSend)); | 179 v8::FunctionTemplate::New(isolate, &V8UnitTest::ChromeSend); |
| 180 send_function->RemovePrototype(); |
| 181 chrome->Set(v8::String::NewFromUtf8(isolate, "send"), send_function); |
179 | 182 |
180 // Set up console object for console.log(), etc. | 183 // Set up console object for console.log(), etc. |
181 v8::Local<v8::ObjectTemplate> console = v8::ObjectTemplate::New(isolate); | 184 v8::Local<v8::ObjectTemplate> console = v8::ObjectTemplate::New(isolate); |
182 global->Set(v8::String::NewFromUtf8(isolate, "console"), console); | 185 global->Set(v8::String::NewFromUtf8(isolate, "console"), console); |
183 console->Set(log_string, log_function); | 186 console->Set(log_string, log_function); |
184 console->Set(v8::String::NewFromUtf8(isolate, "info"), log_function); | 187 console->Set(v8::String::NewFromUtf8(isolate, "info"), log_function); |
185 console->Set(v8::String::NewFromUtf8(isolate, "warn"), log_function); | 188 console->Set(v8::String::NewFromUtf8(isolate, "warn"), log_function); |
186 console->Set(v8::String::NewFromUtf8(isolate, "error"), | 189 v8::Local<v8::FunctionTemplate> error_function = |
187 v8::FunctionTemplate::New(isolate, &V8UnitTest::Error)); | 190 v8::FunctionTemplate::New(isolate, &V8UnitTest::Error); |
| 191 error_function->RemovePrototype(); |
| 192 console->Set(v8::String::NewFromUtf8(isolate, "error"), error_function); |
188 | 193 |
189 context_.Reset(isolate, v8::Context::New(isolate, NULL, global)); | 194 context_.Reset(isolate, v8::Context::New(isolate, NULL, global)); |
190 } | 195 } |
191 | 196 |
192 void V8UnitTest::SetGlobalStringVar(const std::string& var_name, | 197 void V8UnitTest::SetGlobalStringVar(const std::string& var_name, |
193 const std::string& value) { | 198 const std::string& value) { |
194 v8::Isolate* isolate = blink::mainThreadIsolate(); | 199 v8::Isolate* isolate = blink::mainThreadIsolate(); |
195 v8::Local<v8::Context> context = | 200 v8::Local<v8::Context> context = |
196 v8::Local<v8::Context>::New(isolate, context_); | 201 v8::Local<v8::Context>::New(isolate, context_); |
197 v8::Context::Scope context_scope(context); | 202 v8::Context::Scope context_scope(context); |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
306 v8::Local<v8::Array> test_result(args[1].As<v8::Array>()); | 311 v8::Local<v8::Array> test_result(args[1].As<v8::Array>()); |
307 EXPECT_EQ(2U, test_result->Length()); | 312 EXPECT_EQ(2U, test_result->Length()); |
308 if (::testing::Test::HasNonfatalFailure()) | 313 if (::testing::Test::HasNonfatalFailure()) |
309 return; | 314 return; |
310 g_test_result_ok = test_result->Get(0)->BooleanValue(); | 315 g_test_result_ok = test_result->Get(0)->BooleanValue(); |
311 if (!g_test_result_ok) { | 316 if (!g_test_result_ok) { |
312 v8::String::Utf8Value message(test_result->Get(1)); | 317 v8::String::Utf8Value message(test_result->Get(1)); |
313 LOG(ERROR) << *message; | 318 LOG(ERROR) << *message; |
314 } | 319 } |
315 } | 320 } |
OLD | NEW |