Index: content/renderer/v8_value_converter_impl_unittest.cc |
diff --git a/content/renderer/v8_value_converter_impl_unittest.cc b/content/renderer/v8_value_converter_impl_unittest.cc |
index c260b3fe59a0ed8684386d0b67d6c911334c3a59..3a6cdbfcb77f911b498e898730fecc7c9ef726fc 100644 |
--- a/content/renderer/v8_value_converter_impl_unittest.cc |
+++ b/content/renderer/v8_value_converter_impl_unittest.cc |
@@ -5,6 +5,7 @@ |
#include <cmath> |
#include "base/memory/scoped_ptr.h" |
+#include "base/test/values_test_util.h" |
#include "base/values.h" |
#include "content/renderer/v8_value_converter_impl.h" |
#include "testing/gtest/include/gtest/gtest.h" |
@@ -164,40 +165,37 @@ class V8ValueConverterImplTest : public testing::Test { |
}; |
TEST_F(V8ValueConverterImplTest, BasicRoundTrip) { |
- DictionaryValue original_root; |
- original_root.Set("null", Value::CreateNullValue()); |
- original_root.Set("true", Value::CreateBooleanValue(true)); |
- original_root.Set("false", Value::CreateBooleanValue(false)); |
- original_root.Set("positive-int", Value::CreateIntegerValue(42)); |
- original_root.Set("negative-int", Value::CreateIntegerValue(-42)); |
- original_root.Set("zero", Value::CreateIntegerValue(0)); |
- original_root.Set("double", Value::CreateDoubleValue(88.8)); |
- original_root.Set("big-integral-double", |
- Value::CreateDoubleValue(pow(2.0, 53))); |
- original_root.Set("string", Value::CreateStringValue("foobar")); |
- original_root.Set("empty-string", Value::CreateStringValue("")); |
- |
- DictionaryValue* original_sub1 = new DictionaryValue(); |
- original_sub1->Set("foo", Value::CreateStringValue("bar")); |
- original_sub1->Set("hot", Value::CreateStringValue("dog")); |
- original_root.Set("dictionary", original_sub1); |
- original_root.Set("empty-dictionary", new DictionaryValue()); |
- |
- ListValue* original_sub2 = new ListValue(); |
- original_sub2->Append(Value::CreateStringValue("monkey")); |
- original_sub2->Append(Value::CreateStringValue("balls")); |
- original_root.Set("list", original_sub2); |
- original_root.Set("empty-list", new ListValue()); |
+ scoped_ptr<Value> original_root = base::test::ParseJson( |
+ "{ \n" |
+ " \"null\": null, \n" |
+ " \"true\": true, \n" |
+ " \"false\": false, \n" |
+ " \"positive-int\": 42, \n" |
+ " \"negative-int\": -42, \n" |
+ " \"zero\": 0, \n" |
+ " \"double\": 88.8, \n" |
+ " \"big-integral-double\": 9007199254740992.0, \n" // 2.0^53 |
+ " \"string\": \"foobar\", \n" |
+ " \"empty-string\": \"\", \n" |
+ " \"dictionary\": { \n" |
+ " \"foo\": \"bar\",\n" |
+ " \"hot\": \"dog\",\n" |
+ " }, \n" |
+ " \"empty-dictionary\": {}, \n" |
+ " \"list\": [ \"monkey\", \"balls\" ], \n" |
+ " \"empty-list\": [], \n" |
+ "}"); |
v8::Context::Scope context_scope(context_); |
v8::HandleScope handle_scope; |
V8ValueConverterImpl converter; |
v8::Handle<v8::Object> v8_object = |
- converter.ToV8Value(&original_root, context_).As<v8::Object>(); |
+ converter.ToV8Value(original_root.get(), context_).As<v8::Object>(); |
ASSERT_FALSE(v8_object.IsEmpty()); |
- EXPECT_EQ(original_root.size(), v8_object->GetPropertyNames()->Length()); |
+ EXPECT_EQ(static_cast<const DictionaryValue&>(*original_root).size(), |
+ v8_object->GetPropertyNames()->Length()); |
EXPECT_TRUE(v8_object->Get(v8::String::New("null"))->IsNull()); |
EXPECT_TRUE(v8_object->Get(v8::String::New("true"))->IsTrue()); |
EXPECT_TRUE(v8_object->Get(v8::String::New("false"))->IsFalse()); |
@@ -215,13 +213,13 @@ TEST_F(V8ValueConverterImplTest, BasicRoundTrip) { |
EXPECT_TRUE(v8_object->Get(v8::String::New("empty-list"))->IsArray()); |
scoped_ptr<Value> new_root(converter.FromV8Value(v8_object, context_)); |
- EXPECT_NE(&original_root, new_root.get()); |
- EXPECT_TRUE(original_root.Equals(new_root.get())); |
+ EXPECT_NE(original_root.get(), new_root.get()); |
+ EXPECT_TRUE(original_root->Equals(new_root.get())); |
} |
TEST_F(V8ValueConverterImplTest, KeysWithDots) { |
- DictionaryValue original; |
- original.SetWithoutPathExpansion("foo.bar", Value::CreateStringValue("baz")); |
+ scoped_ptr<Value> original = |
+ base::test::ParseJson("{ \"foo.bar\": \"baz\" }"); |
v8::Context::Scope context_scope(context_); |
v8::HandleScope handle_scope; |
@@ -229,9 +227,9 @@ TEST_F(V8ValueConverterImplTest, KeysWithDots) { |
V8ValueConverterImpl converter; |
scoped_ptr<Value> copy( |
converter.FromV8Value( |
- converter.ToV8Value(&original, context_), context_)); |
+ converter.ToV8Value(original.get(), context_), context_)); |
- EXPECT_TRUE(original.Equals(copy.get())); |
+ EXPECT_TRUE(original->Equals(copy.get())); |
} |
TEST_F(V8ValueConverterImplTest, ObjectExceptions) { |
@@ -299,9 +297,8 @@ TEST_F(V8ValueConverterImplTest, ArrayExceptions) { |
EXPECT_TRUE(IsNull(converted.get(), 0)); |
// Converting to v8 value should drop the first item and leave a hole. |
- converted.reset(new ListValue()); |
- converted->Append(Value::CreateStringValue("foo")); |
- converted->Append(Value::CreateStringValue("bar")); |
+ converted.reset(static_cast<ListValue*>( |
+ base::test::ParseJson("[ \"foo\", \"bar\" ]").release())); |
v8::Handle<v8::Array> copy = |
converter.ToV8Value(converted.get(), context_).As<v8::Array>(); |
ASSERT_FALSE(copy.IsEmpty()); |
@@ -476,15 +473,17 @@ TEST_F(V8ValueConverterImplTest, WeirdProperties) { |
V8ValueConverterImpl converter; |
scoped_ptr<Value> actual(converter.FromV8Value(object, context_)); |
- DictionaryValue expected; |
- expected.SetString("1", "foo"); |
- expected.SetString("2", "bar"); |
- expected.SetString("true", "baz"); |
- expected.SetString("false", "qux"); |
- expected.SetString("null", "quux"); |
- expected.SetString("undefined", "oops"); |
- |
- EXPECT_TRUE(expected.Equals(actual.get())); |
+ scoped_ptr<Value> expected = base::test::ParseJson( |
+ "{ \n" |
+ " \"1\": \"foo\", \n" |
+ " \"2\": \"bar\", \n" |
+ " \"true\": \"baz\", \n" |
+ " \"false\": \"qux\", \n" |
+ " \"null\": \"quux\", \n" |
+ " \"undefined\": \"oops\", \n" |
+ "}"); |
+ |
+ EXPECT_TRUE(expected->Equals(actual.get())); |
} |
TEST_F(V8ValueConverterImplTest, ArrayGetters) { |
@@ -534,18 +533,14 @@ TEST_F(V8ValueConverterImplTest, UndefinedValueBehavior) { |
V8ValueConverterImpl converter; |
- DictionaryValue expected_object; |
- expected_object.Set("bar", Value::CreateNullValue()); |
scoped_ptr<Value> actual_object(converter.FromV8Value(object, context_)); |
- EXPECT_TRUE(Value::Equals(&expected_object, actual_object.get())); |
+ EXPECT_TRUE(Value::Equals(base::test::ParseJson("{ \"bar\": null }").get(), |
battre
2012/12/17 09:36:49
Is this one guaranteed to be correct? I can see th
Jeffrey Yasskin
2012/12/17 18:09:27
The scoped_ptr is destroyed, destroying the Value,
|
+ actual_object.get())); |
- ListValue expected_array; |
// Everything is null because JSON stringification preserves array length. |
- expected_array.Append(Value::CreateNullValue()); |
- expected_array.Append(Value::CreateNullValue()); |
- expected_array.Append(Value::CreateNullValue()); |
scoped_ptr<Value> actual_array(converter.FromV8Value(array, context_)); |
- EXPECT_TRUE(Value::Equals(&expected_array, actual_array.get())); |
+ EXPECT_TRUE(Value::Equals(base::test::ParseJson("[ null, null, null ]").get(), |
battre
2012/12/17 09:36:49
same here.
Jeffrey Yasskin
2012/12/17 18:09:27
same here. :)
|
+ actual_array.get())); |
} |
} // namespace content |