OLD | NEW |
1 // Copyright (c) 2012 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/stl_util.h" | 8 #include "base/stl_util.h" |
9 #include "base/test/values_test_util.h" | 9 #include "base/test/values_test_util.h" |
10 #include "base/values.h" | 10 #include "base/values.h" |
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
140 } | 140 } |
141 return child->IsNull(); | 141 return child->IsNull(); |
142 } | 142 } |
143 | 143 |
144 void TestWeirdType(const V8ValueConverterImpl& converter, | 144 void TestWeirdType(const V8ValueConverterImpl& converter, |
145 v8::Handle<v8::Value> val, | 145 v8::Handle<v8::Value> val, |
146 base::Value::Type expected_type, | 146 base::Value::Type expected_type, |
147 scoped_ptr<base::Value> expected_value) { | 147 scoped_ptr<base::Value> expected_value) { |
148 scoped_ptr<base::Value> raw(converter.FromV8Value(val, context_)); | 148 scoped_ptr<base::Value> raw(converter.FromV8Value(val, context_)); |
149 | 149 |
150 if (expected_value.get()) { | 150 if (expected_value) { |
151 ASSERT_TRUE(raw.get()); | 151 ASSERT_TRUE(raw.get()); |
152 EXPECT_TRUE(expected_value->Equals(raw.get())); | 152 EXPECT_TRUE(expected_value->Equals(raw.get())); |
153 EXPECT_EQ(expected_type, raw->GetType()); | 153 EXPECT_EQ(expected_type, raw->GetType()); |
154 } else { | 154 } else { |
155 EXPECT_FALSE(raw.get()); | 155 EXPECT_FALSE(raw.get()); |
156 } | 156 } |
157 | 157 |
158 v8::Handle<v8::Object> object(v8::Object::New()); | 158 v8::Handle<v8::Object> object(v8::Object::New()); |
159 object->Set(v8::String::New("test"), val); | 159 object->Set(v8::String::New("test"), val); |
160 scoped_ptr<base::DictionaryValue> dictionary( | 160 scoped_ptr<base::DictionaryValue> dictionary( |
161 static_cast<base::DictionaryValue*>( | 161 static_cast<base::DictionaryValue*>( |
162 converter.FromV8Value(object, context_))); | 162 converter.FromV8Value(object, context_))); |
163 ASSERT_TRUE(dictionary.get()); | 163 ASSERT_TRUE(dictionary.get()); |
164 | 164 |
165 if (expected_value.get()) { | 165 if (expected_value) { |
166 base::Value* temp = NULL; | 166 base::Value* temp = NULL; |
167 ASSERT_TRUE(dictionary->Get("test", &temp)); | 167 ASSERT_TRUE(dictionary->Get("test", &temp)); |
168 EXPECT_EQ(expected_type, temp->GetType()); | 168 EXPECT_EQ(expected_type, temp->GetType()); |
169 EXPECT_TRUE(expected_value->Equals(temp)); | 169 EXPECT_TRUE(expected_value->Equals(temp)); |
170 } else { | 170 } else { |
171 EXPECT_FALSE(dictionary->HasKey("test")); | 171 EXPECT_FALSE(dictionary->HasKey("test")); |
172 } | 172 } |
173 | 173 |
174 v8::Handle<v8::Array> array(v8::Array::New()); | 174 v8::Handle<v8::Array> array(v8::Array::New()); |
175 array->Set(0, val); | 175 array->Set(0, val); |
176 scoped_ptr<base::ListValue> list( | 176 scoped_ptr<base::ListValue> list( |
177 static_cast<base::ListValue*>(converter.FromV8Value(array, context_))); | 177 static_cast<base::ListValue*>(converter.FromV8Value(array, context_))); |
178 ASSERT_TRUE(list.get()); | 178 ASSERT_TRUE(list.get()); |
179 if (expected_value.get()) { | 179 if (expected_value) { |
180 base::Value* temp = NULL; | 180 base::Value* temp = NULL; |
181 ASSERT_TRUE(list->Get(0, &temp)); | 181 ASSERT_TRUE(list->Get(0, &temp)); |
182 EXPECT_EQ(expected_type, temp->GetType()); | 182 EXPECT_EQ(expected_type, temp->GetType()); |
183 EXPECT_TRUE(expected_value->Equals(temp)); | 183 EXPECT_TRUE(expected_value->Equals(temp)); |
184 } else { | 184 } else { |
185 // Arrays should preserve their length, and convert unconvertible | 185 // Arrays should preserve their length, and convert unconvertible |
186 // types into null. | 186 // types into null. |
187 base::Value* temp = NULL; | 187 base::Value* temp = NULL; |
188 ASSERT_TRUE(list->Get(0, &temp)); | 188 ASSERT_TRUE(list->Get(0, &temp)); |
189 EXPECT_EQ(base::Value::TYPE_NULL, temp->GetType()); | 189 EXPECT_EQ(base::Value::TYPE_NULL, temp->GetType()); |
(...skipping 451 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
641 | 641 |
642 // The actual result. | 642 // The actual result. |
643 scoped_ptr<base::Value> actual_dictionary( | 643 scoped_ptr<base::Value> actual_dictionary( |
644 converter.FromV8Value(recursive_object, context_)); | 644 converter.FromV8Value(recursive_object, context_)); |
645 ASSERT_TRUE(actual_dictionary.get()); | 645 ASSERT_TRUE(actual_dictionary.get()); |
646 | 646 |
647 EXPECT_TRUE(expected_dictionary.Equals(actual_dictionary.get())); | 647 EXPECT_TRUE(expected_dictionary.Equals(actual_dictionary.get())); |
648 } | 648 } |
649 | 649 |
650 } // namespace content | 650 } // namespace content |
OLD | NEW |