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

Side by Side Diff: mojo/public/cpp/bindings/tests/union_unittest.cc

Issue 2608513002: Remove mojo::String. (Closed)
Patch Set: Created 3 years, 11 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 #include <utility> 7 #include <utility>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
11 #include "base/run_loop.h" 11 #include "base/run_loop.h"
12 #include "mojo/public/cpp/bindings/array.h" 12 #include "mojo/public/cpp/bindings/array.h"
13 #include "mojo/public/cpp/bindings/binding.h" 13 #include "mojo/public/cpp/bindings/binding.h"
14 #include "mojo/public/cpp/bindings/lib/array_internal.h" 14 #include "mojo/public/cpp/bindings/lib/array_internal.h"
15 #include "mojo/public/cpp/bindings/lib/fixed_buffer.h" 15 #include "mojo/public/cpp/bindings/lib/fixed_buffer.h"
16 #include "mojo/public/cpp/bindings/lib/serialization.h" 16 #include "mojo/public/cpp/bindings/lib/serialization.h"
17 #include "mojo/public/cpp/bindings/lib/validation_context.h" 17 #include "mojo/public/cpp/bindings/lib/validation_context.h"
18 #include "mojo/public/cpp/bindings/lib/validation_errors.h" 18 #include "mojo/public/cpp/bindings/lib/validation_errors.h"
19 #include "mojo/public/cpp/bindings/string.h"
20 #include "mojo/public/cpp/test_support/test_utils.h" 19 #include "mojo/public/cpp/test_support/test_utils.h"
21 #include "mojo/public/interfaces/bindings/tests/test_structs.mojom.h" 20 #include "mojo/public/interfaces/bindings/tests/test_structs.mojom.h"
22 #include "mojo/public/interfaces/bindings/tests/test_unions.mojom.h" 21 #include "mojo/public/interfaces/bindings/tests/test_unions.mojom.h"
23 #include "testing/gtest/include/gtest/gtest.h" 22 #include "testing/gtest/include/gtest/gtest.h"
24 23
25 namespace mojo { 24 namespace mojo {
26 namespace test { 25 namespace test {
27 26
28 TEST(UnionTest, PlainOldDataGetterSetter) { 27 TEST(UnionTest, PlainOldDataGetterSetter) {
29 PodUnionPtr pod(PodUnion::New()); 28 PodUnionPtr pod(PodUnion::New());
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 mojo::internal::ValidationContext validation_context( 307 mojo::internal::ValidationContext validation_context(
309 data, static_cast<uint32_t>(size), 0); 308 data, static_cast<uint32_t>(size), 0);
310 EXPECT_TRUE( 309 EXPECT_TRUE(
311 internal::PodUnion_Data::Validate(raw_buf, &validation_context, false)); 310 internal::PodUnion_Data::Validate(raw_buf, &validation_context, false));
312 free(raw_buf); 311 free(raw_buf);
313 } 312 }
314 313
315 TEST(UnionTest, StringGetterSetter) { 314 TEST(UnionTest, StringGetterSetter) {
316 ObjectUnionPtr pod(ObjectUnion::New()); 315 ObjectUnionPtr pod(ObjectUnion::New());
317 316
318 String hello("hello world"); 317 std::string hello("hello world");
319 pod->set_f_string(hello); 318 pod->set_f_string(hello);
320 EXPECT_EQ(hello, pod->get_f_string()); 319 EXPECT_EQ(hello, pod->get_f_string());
321 EXPECT_TRUE(pod->is_f_string()); 320 EXPECT_TRUE(pod->is_f_string());
322 EXPECT_EQ(pod->which(), ObjectUnion::Tag::F_STRING); 321 EXPECT_EQ(pod->which(), ObjectUnion::Tag::F_STRING);
323 } 322 }
324 323
325 TEST(UnionTest, StringEquals) { 324 TEST(UnionTest, StringEquals) {
326 ObjectUnionPtr pod1(ObjectUnion::New()); 325 ObjectUnionPtr pod1(ObjectUnion::New());
327 ObjectUnionPtr pod2(ObjectUnion::New()); 326 ObjectUnionPtr pod2(ObjectUnion::New());
328 327
329 pod1->set_f_string("hello world"); 328 pod1->set_f_string("hello world");
330 pod2->set_f_string("hello world"); 329 pod2->set_f_string("hello world");
331 EXPECT_TRUE(pod1.Equals(pod2)); 330 EXPECT_TRUE(pod1.Equals(pod2));
332 331
333 pod2->set_f_string("hello universe"); 332 pod2->set_f_string("hello universe");
334 EXPECT_FALSE(pod1.Equals(pod2)); 333 EXPECT_FALSE(pod1.Equals(pod2));
335 } 334 }
336 335
337 TEST(UnionTest, StringClone) { 336 TEST(UnionTest, StringClone) {
338 ObjectUnionPtr pod(ObjectUnion::New()); 337 ObjectUnionPtr pod(ObjectUnion::New());
339 338
340 String hello("hello world"); 339 std::string hello("hello world");
341 pod->set_f_string(hello); 340 pod->set_f_string(hello);
342 ObjectUnionPtr pod_clone = pod.Clone(); 341 ObjectUnionPtr pod_clone = pod.Clone();
343 EXPECT_EQ(hello, pod_clone->get_f_string()); 342 EXPECT_EQ(hello, pod_clone->get_f_string());
344 EXPECT_TRUE(pod_clone->is_f_string()); 343 EXPECT_TRUE(pod_clone->is_f_string());
345 EXPECT_EQ(pod_clone->which(), ObjectUnion::Tag::F_STRING); 344 EXPECT_EQ(pod_clone->which(), ObjectUnion::Tag::F_STRING);
346 } 345 }
347 346
348 TEST(UnionTest, StringSerialization) { 347 TEST(UnionTest, StringSerialization) {
349 ObjectUnionPtr pod1(ObjectUnion::New()); 348 ObjectUnionPtr pod1(ObjectUnion::New());
350 349
351 String hello("hello world"); 350 std::string hello("hello world");
352 pod1->set_f_string(hello); 351 pod1->set_f_string(hello);
353 352
354 size_t size = mojo::internal::PrepareToSerialize<ObjectUnionDataView>( 353 size_t size = mojo::internal::PrepareToSerialize<ObjectUnionDataView>(
355 pod1, false, nullptr); 354 pod1, false, nullptr);
356 mojo::internal::FixedBufferForTesting buf(size); 355 mojo::internal::FixedBufferForTesting buf(size);
357 internal::ObjectUnion_Data* data = nullptr; 356 internal::ObjectUnion_Data* data = nullptr;
358 mojo::internal::Serialize<ObjectUnionDataView>(pod1, &buf, &data, false, 357 mojo::internal::Serialize<ObjectUnionDataView>(pod1, &buf, &data, false,
359 nullptr); 358 nullptr);
360 359
361 ObjectUnionPtr pod2; 360 ObjectUnionPtr pod2;
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
520 data, static_cast<uint32_t>(size), 0); 519 data, static_cast<uint32_t>(size), 0);
521 ASSERT_TRUE(mojo::internal::Array_Data<internal::ObjectUnion_Data>::Validate( 520 ASSERT_TRUE(mojo::internal::Array_Data<internal::ObjectUnion_Data>::Validate(
522 data, &validation_context, &validate_params)); 521 data, &validation_context, &validate_params));
523 522
524 Array<ObjectUnionPtr> array2; 523 Array<ObjectUnionPtr> array2;
525 mojo::internal::Deserialize<ArrayDataView<ObjectUnionDataView>>(data, &array2, 524 mojo::internal::Deserialize<ArrayDataView<ObjectUnionDataView>>(data, &array2,
526 nullptr); 525 nullptr);
527 526
528 EXPECT_EQ(2U, array2.size()); 527 EXPECT_EQ(2U, array2.size());
529 528
530 EXPECT_EQ(String("hello"), array2[0]->get_f_string()); 529 EXPECT_EQ("hello", array2[0]->get_f_string());
531 EXPECT_EQ(String("world"), array2[1]->get_f_string()); 530 EXPECT_EQ("world", array2[1]->get_f_string());
532 } 531 }
533 532
534 // TODO(azani): Move back in struct_unittest.cc when possible. 533 // TODO(azani): Move back in struct_unittest.cc when possible.
535 // Struct tests 534 // Struct tests
536 TEST(UnionTest, Clone_Union) { 535 TEST(UnionTest, Clone_Union) {
537 SmallStructPtr small_struct(SmallStruct::New()); 536 SmallStructPtr small_struct(SmallStruct::New());
538 small_struct->pod_union = PodUnion::New(); 537 small_struct->pod_union = PodUnion::New();
539 small_struct->pod_union->set_f_int8(10); 538 small_struct->pod_union->set_f_int8(10);
540 539
541 SmallStructPtr clone = small_struct.Clone(); 540 SmallStructPtr clone = small_struct.Clone();
(...skipping 19 matching lines...) Expand all
561 mojo::internal::Deserialize<SmallStructDataView>(data, &deserialized, 560 mojo::internal::Deserialize<SmallStructDataView>(data, &deserialized,
562 &context); 561 &context);
563 562
564 EXPECT_EQ(10, deserialized->pod_union->get_f_int32()); 563 EXPECT_EQ(10, deserialized->pod_union->get_f_int32());
565 } 564 }
566 565
567 // Serialization test of a struct with a union of structs. 566 // Serialization test of a struct with a union of structs.
568 TEST(UnionTest, Serialization_UnionOfObjects) { 567 TEST(UnionTest, Serialization_UnionOfObjects) {
569 SmallObjStructPtr obj_struct(SmallObjStruct::New()); 568 SmallObjStructPtr obj_struct(SmallObjStruct::New());
570 obj_struct->obj_union = ObjectUnion::New(); 569 obj_struct->obj_union = ObjectUnion::New();
571 String hello("hello world"); 570 std::string hello("hello world");
572 obj_struct->obj_union->set_f_string(hello); 571 obj_struct->obj_union->set_f_string(hello);
573 572
574 size_t size = mojo::internal::PrepareToSerialize<SmallObjStructDataView>( 573 size_t size = mojo::internal::PrepareToSerialize<SmallObjStructDataView>(
575 obj_struct, nullptr); 574 obj_struct, nullptr);
576 575
577 mojo::internal::FixedBufferForTesting buf(size); 576 mojo::internal::FixedBufferForTesting buf(size);
578 internal::SmallObjStruct_Data* data = nullptr; 577 internal::SmallObjStruct_Data* data = nullptr;
579 mojo::internal::Serialize<SmallObjStructDataView>(obj_struct, &buf, &data, 578 mojo::internal::Serialize<SmallObjStructDataView>(obj_struct, &buf, &data,
580 nullptr); 579 nullptr);
581 580
(...skipping 657 matching lines...) Expand 10 before | Expand all | Expand 10 after
1239 1238
1240 PodUnionPtr pod(PodUnion::New()); 1239 PodUnionPtr pod(PodUnion::New());
1241 pod->set_f_int16(16); 1240 pod->set_f_int16(16);
1242 1241
1243 ptr->Echo(std::move(pod), base::Bind(&ExpectInt16, 16)); 1242 ptr->Echo(std::move(pod), base::Bind(&ExpectInt16, 16));
1244 base::RunLoop().RunUntilIdle(); 1243 base::RunLoop().RunUntilIdle();
1245 } 1244 }
1246 1245
1247 } // namespace test 1246 } // namespace test
1248 } // namespace mojo 1247 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698