Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(440)

Side by Side Diff: mojo/common/common_custom_types_unittest.cc

Issue 2803023005: Switch base::Value typemapping to be by value instead of by unique_ptr.
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « media/capture/video/video_capture_device_client.cc ('k') | mojo/common/values.typemap » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "base/files/file_path.h" 5 #include "base/files/file_path.h"
6 #include "base/files/scoped_temp_dir.h" 6 #include "base/files/scoped_temp_dir.h"
7 #include "base/memory/ptr_util.h" 7 #include "base/memory/ptr_util.h"
8 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "base/numerics/safe_math.h" 9 #include "base/numerics/safe_math.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 mojo::Binding<TestTime> binding_; 115 mojo::Binding<TestTime> binding_;
116 }; 116 };
117 117
118 class TestValueImpl : public TestValue { 118 class TestValueImpl : public TestValue {
119 public: 119 public:
120 explicit TestValueImpl(TestValueRequest request) 120 explicit TestValueImpl(TestValueRequest request)
121 : binding_(this, std::move(request)) {} 121 : binding_(this, std::move(request)) {}
122 122
123 // TestValue implementation: 123 // TestValue implementation:
124 void BounceDictionaryValue( 124 void BounceDictionaryValue(
125 std::unique_ptr<base::DictionaryValue> in, 125 const base::DictionaryValue& in,
126 const BounceDictionaryValueCallback& callback) override { 126 const BounceDictionaryValueCallback& callback) override {
127 callback.Run(std::move(in)); 127 callback.Run(in);
128 } 128 }
129 129
130 void BounceListValue(std::unique_ptr<base::ListValue> in, 130 void BounceListValue(const base::ListValue& in,
131 const BounceListValueCallback& callback) override { 131 const BounceListValueCallback& callback) override {
132 callback.Run(std::move(in)); 132 callback.Run(in);
133 } 133 }
134 134
135 void BounceValue(std::unique_ptr<base::Value> in, 135 void BounceValue(const base::Optional<base::Value>& in,
136 const BounceValueCallback& callback) override { 136 const BounceValueCallback& callback) override {
137 callback.Run(std::move(in)); 137 callback.Run(in);
138 } 138 }
139 139
140 private: 140 private:
141 mojo::Binding<TestValue> binding_; 141 mojo::Binding<TestValue> binding_;
142 }; 142 };
143 143
144 class TestString16Impl : public TestString16 { 144 class TestString16Impl : public TestString16 {
145 public: 145 public:
146 explicit TestString16Impl(TestString16Request request) 146 explicit TestString16Impl(TestString16Request request)
147 : binding_(this, std::move(request)) {} 147 : binding_(this, std::move(request)) {}
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 262
263 ptr->BounceTimeTicks(t, ExpectResponse(&t, run_loop.QuitClosure())); 263 ptr->BounceTimeTicks(t, ExpectResponse(&t, run_loop.QuitClosure()));
264 264
265 run_loop.Run(); 265 run_loop.Run();
266 } 266 }
267 267
268 TEST_F(CommonCustomTypesTest, Value) { 268 TEST_F(CommonCustomTypesTest, Value) {
269 TestValuePtr ptr; 269 TestValuePtr ptr;
270 TestValueImpl impl(MakeRequest(&ptr)); 270 TestValueImpl impl(MakeRequest(&ptr));
271 271
272 std::unique_ptr<base::Value> output; 272 base::Optional<base::Value> output;
273 273
274 ASSERT_TRUE(ptr->BounceValue(nullptr, &output)); 274 ASSERT_TRUE(ptr->BounceValue(base::nullopt, &output));
275 EXPECT_FALSE(output); 275 EXPECT_FALSE(output);
276 276
277 std::unique_ptr<base::Value> input = base::Value::CreateNullValue(); 277 base::Optional<base::Value> input = *base::Value::CreateNullValue();
278 ASSERT_TRUE(ptr->BounceValue(input->CreateDeepCopy(), &output)); 278 ASSERT_TRUE(ptr->BounceValue(input, &output));
279 EXPECT_TRUE(base::Value::Equals(input.get(), output.get())); 279 EXPECT_EQ(input, output);
280 280
281 input = base::MakeUnique<base::Value>(123); 281 input = base::Value(123);
282 ASSERT_TRUE(ptr->BounceValue(input->CreateDeepCopy(), &output)); 282 ASSERT_TRUE(ptr->BounceValue(input, &output));
283 EXPECT_TRUE(base::Value::Equals(input.get(), output.get())); 283 EXPECT_EQ(input, output);
284 284
285 input = base::MakeUnique<base::Value>(1.23); 285 input = base::Value(1.23);
286 ASSERT_TRUE(ptr->BounceValue(input->CreateDeepCopy(), &output)); 286 ASSERT_TRUE(ptr->BounceValue(input, &output));
287 EXPECT_TRUE(base::Value::Equals(input.get(), output.get())); 287 EXPECT_EQ(input, output);
288 288
289 input = base::MakeUnique<base::Value>(false); 289 input = base::Value(false);
290 ASSERT_TRUE(ptr->BounceValue(input->CreateDeepCopy(), &output)); 290 ASSERT_TRUE(ptr->BounceValue(input, &output));
291 EXPECT_TRUE(base::Value::Equals(input.get(), output.get())); 291 EXPECT_EQ(input, output);
292 292
293 input = base::MakeUnique<base::Value>("test string"); 293 input = base::Value("test string");
294 ASSERT_TRUE(ptr->BounceValue(input->CreateDeepCopy(), &output)); 294 ASSERT_TRUE(ptr->BounceValue(input, &output));
295 EXPECT_TRUE(base::Value::Equals(input.get(), output.get())); 295 EXPECT_EQ(input, output);
296 296
297 input = base::BinaryValue::CreateWithCopiedBuffer("mojo", 4); 297 input = base::Value(std::vector<char>{'m', 'o', 'j', 'o'});
298 ASSERT_TRUE(ptr->BounceValue(input->CreateDeepCopy(), &output)); 298 ASSERT_TRUE(ptr->BounceValue(input, &output));
299 EXPECT_TRUE(base::Value::Equals(input.get(), output.get())); 299 EXPECT_EQ(input, output);
300 300
301 auto dict = base::MakeUnique<base::DictionaryValue>(); 301 base::DictionaryValue dict;
302 dict->SetBoolean("bool", false); 302 dict.SetBoolean("bool", false);
303 dict->SetInteger("int", 2); 303 dict.SetInteger("int", 2);
304 dict->SetString("string", "some string"); 304 dict.SetString("string", "some string");
305 dict->SetBoolean("nested.bool", true); 305 dict.SetBoolean("nested.bool", true);
306 dict->SetInteger("nested.int", 9); 306 dict.SetInteger("nested.int", 9);
307 dict->Set("some_binary", 307 dict.Set("some_binary", base::BinaryValue::CreateWithCopiedBuffer("mojo", 4));
308 base::BinaryValue::CreateWithCopiedBuffer("mojo", 4)); 308 dict.Set("null_value", base::Value::CreateNullValue());
309 dict->Set("null_value", base::Value::CreateNullValue()); 309 dict.SetIntegerWithoutPathExpansion("non_nested.int", 10);
310 dict->SetIntegerWithoutPathExpansion("non_nested.int", 10);
311 { 310 {
312 std::unique_ptr<base::ListValue> dict_list(new base::ListValue()); 311 std::unique_ptr<base::ListValue> dict_list(new base::ListValue());
313 dict_list->AppendString("string"); 312 dict_list->AppendString("string");
314 dict_list->AppendBoolean(true); 313 dict_list->AppendBoolean(true);
315 dict->Set("list", std::move(dict_list)); 314 dict.Set("list", std::move(dict_list));
316 } 315 }
317 316
318 std::unique_ptr<base::DictionaryValue> dict_output; 317 base::DictionaryValue dict_output;
319 ASSERT_TRUE(ptr->BounceDictionaryValue(dict->CreateDeepCopy(), &dict_output)); 318 ASSERT_TRUE(ptr->BounceDictionaryValue(dict, &dict_output));
320 EXPECT_TRUE(base::Value::Equals(dict.get(), dict_output.get())); 319 EXPECT_EQ(dict, dict_output);
321 320
322 input = std::move(dict); 321 input = std::move(dict);
323 ASSERT_TRUE(ptr->BounceValue(input->CreateDeepCopy(), &output)); 322 ASSERT_TRUE(ptr->BounceValue(input, &output));
324 EXPECT_TRUE(base::Value::Equals(input.get(), output.get())); 323 EXPECT_EQ(input, output);
325 324
326 auto list = base::MakeUnique<base::ListValue>(); 325 base::ListValue list;
327 list->AppendString("string"); 326 list.AppendString("string");
328 list->AppendDouble(42.1); 327 list.AppendDouble(42.1);
329 list->AppendBoolean(true); 328 list.AppendBoolean(true);
330 list->Append(base::BinaryValue::CreateWithCopiedBuffer("mojo", 4)); 329 list.Append(base::BinaryValue::CreateWithCopiedBuffer("mojo", 4));
331 list->Append(base::Value::CreateNullValue()); 330 list.Append(base::Value::CreateNullValue());
332 { 331 {
333 std::unique_ptr<base::DictionaryValue> list_dict( 332 std::unique_ptr<base::DictionaryValue> list_dict(
334 new base::DictionaryValue()); 333 new base::DictionaryValue());
335 list_dict->SetString("string", "str"); 334 list_dict->SetString("string", "str");
336 list->Append(std::move(list_dict)); 335 list.Append(std::move(list_dict));
337 } 336 }
338 std::unique_ptr<base::ListValue> list_output; 337 base::ListValue list_output;
339 ASSERT_TRUE(ptr->BounceListValue(list->CreateDeepCopy(), &list_output)); 338 ASSERT_TRUE(ptr->BounceListValue(list, &list_output));
340 EXPECT_TRUE(base::Value::Equals(list.get(), list_output.get())); 339 EXPECT_EQ(list, list_output);
341 340
342 input = std::move(list); 341 input = std::move(list);
343 ASSERT_TRUE(ptr->BounceValue(input->CreateDeepCopy(), &output)); 342 ASSERT_TRUE(ptr->BounceValue(input, &output));
344 ASSERT_TRUE(base::Value::Equals(input.get(), output.get())); 343 EXPECT_EQ(input, output);
345 } 344 }
346 345
347 TEST_F(CommonCustomTypesTest, String16) { 346 TEST_F(CommonCustomTypesTest, String16) {
348 base::RunLoop run_loop; 347 base::RunLoop run_loop;
349 348
350 TestString16Ptr ptr; 349 TestString16Ptr ptr;
351 TestString16Impl impl(MakeRequest(&ptr)); 350 TestString16Impl impl(MakeRequest(&ptr));
352 351
353 base::string16 str16 = base::ASCIIToUTF16("hello world"); 352 base::string16 str16 = base::ASCIIToUTF16("hello world");
354 353
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
424 for (size_t i = 0; i < arraysize(kTestDirections); i++) { 423 for (size_t i = 0; i < arraysize(kTestDirections); i++) {
425 base::i18n::TextDirection direction_out; 424 base::i18n::TextDirection direction_out;
426 ASSERT_TRUE(ptr->BounceTextDirection(kTestDirections[i], &direction_out)); 425 ASSERT_TRUE(ptr->BounceTextDirection(kTestDirections[i], &direction_out));
427 EXPECT_EQ(kTestDirections[i], direction_out); 426 EXPECT_EQ(kTestDirections[i], direction_out);
428 } 427 }
429 } 428 }
430 429
431 } // namespace test 430 } // namespace test
432 } // namespace common 431 } // namespace common
433 } // namespace mojo 432 } // namespace mojo
OLDNEW
« no previous file with comments | « media/capture/video/video_capture_device_client.cc ('k') | mojo/common/values.typemap » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698