OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <cmath> | 5 #include <cmath> |
6 | 6 |
7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
8 #include "base/values.h" | 8 #include "base/values.h" |
9 #include "content/renderer/v8_value_converter_impl.h" | 9 #include "content/renderer/v8_value_converter_impl.h" |
10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
11 #include "v8/include/v8.h" | 11 #include "v8/include/v8.h" |
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
286 v8::HandleScope handle_scope; | 286 v8::HandleScope handle_scope; |
287 | 287 |
288 v8::Handle<v8::RegExp> regex( | 288 v8::Handle<v8::RegExp> regex( |
289 v8::RegExp::New(v8::String::New("."), v8::RegExp::kNone)); | 289 v8::RegExp::New(v8::String::New("."), v8::RegExp::kNone)); |
290 | 290 |
291 V8ValueConverterImpl converter; | 291 V8ValueConverterImpl converter; |
292 TestWeirdType(converter, v8::Undefined(), Value::TYPE_NULL, NULL); | 292 TestWeirdType(converter, v8::Undefined(), Value::TYPE_NULL, NULL); |
293 TestWeirdType(converter, v8::Date::New(1000), Value::TYPE_DICTIONARY, NULL); | 293 TestWeirdType(converter, v8::Date::New(1000), Value::TYPE_DICTIONARY, NULL); |
294 TestWeirdType(converter, regex, Value::TYPE_DICTIONARY, NULL); | 294 TestWeirdType(converter, regex, Value::TYPE_DICTIONARY, NULL); |
295 | 295 |
296 converter.set_allow_undefined(true); | 296 converter.SetUndefinedAllowed(true); |
297 TestWeirdType(converter, v8::Undefined(), Value::TYPE_NULL, NULL); | 297 TestWeirdType(converter, v8::Undefined(), Value::TYPE_NULL, NULL); |
298 | 298 |
299 converter.set_allow_date(true); | 299 converter.SetDateAllowed(true); |
300 TestWeirdType(converter, v8::Date::New(1000), Value::TYPE_DOUBLE, | 300 TestWeirdType(converter, v8::Date::New(1000), Value::TYPE_DOUBLE, |
301 Value::CreateDoubleValue(1)); | 301 Value::CreateDoubleValue(1)); |
302 | 302 |
303 converter.set_allow_regexp(true); | 303 converter.SetRegexpAllowed(true); |
304 TestWeirdType(converter, regex, Value::TYPE_STRING, | 304 TestWeirdType(converter, regex, Value::TYPE_STRING, |
305 Value::CreateStringValue("/./")); | 305 Value::CreateStringValue("/./")); |
306 } | 306 } |
307 | 307 |
308 TEST_F(V8ValueConverterImplTest, Prototype) { | 308 TEST_F(V8ValueConverterImplTest, Prototype) { |
309 v8::Context::Scope context_scope(context_); | 309 v8::Context::Scope context_scope(context_); |
310 v8::HandleScope handle_scope; | 310 v8::HandleScope handle_scope; |
311 | 311 |
312 const char* source = "(function() {" | 312 const char* source = "(function() {" |
313 "Object.prototype.foo = 'foo';" | 313 "Object.prototype.foo = 'foo';" |
314 "return {};" | 314 "return {};" |
315 "})();"; | 315 "})();"; |
316 | 316 |
317 v8::Handle<v8::Script> script(v8::Script::New(v8::String::New(source))); | 317 v8::Handle<v8::Script> script(v8::Script::New(v8::String::New(source))); |
318 v8::Handle<v8::Object> object = script->Run().As<v8::Object>(); | 318 v8::Handle<v8::Object> object = script->Run().As<v8::Object>(); |
319 ASSERT_FALSE(object.IsEmpty()); | 319 ASSERT_FALSE(object.IsEmpty()); |
320 | 320 |
321 V8ValueConverterImpl converter; | 321 V8ValueConverterImpl converter; |
322 scoped_ptr<DictionaryValue> result( | 322 scoped_ptr<DictionaryValue> result( |
323 static_cast<DictionaryValue*>(converter.FromV8Value(object, context_))); | 323 static_cast<DictionaryValue*>(converter.FromV8Value(object, context_))); |
324 ASSERT_TRUE(result.get()); | 324 ASSERT_TRUE(result.get()); |
325 EXPECT_EQ(0u, result->size()); | 325 EXPECT_EQ(0u, result->size()); |
326 } | 326 } |
OLD | NEW |