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

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

Issue 2604953003: Remove internal uses of mojo::Array and mojo::WTFArray. (Closed)
Patch Set: rebase 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 <string.h> 7 #include <string.h>
8 #include <utility> 8 #include <utility>
9 9
10 #include "mojo/public/cpp/bindings/lib/fixed_buffer.h" 10 #include "mojo/public/cpp/bindings/lib/fixed_buffer.h"
(...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after
459 EXPECT_EQ(nullptr, data); 459 EXPECT_EQ(nullptr, data);
460 460
461 NativeStructPtr output_native; 461 NativeStructPtr output_native;
462 mojo::internal::Deserialize<NativeStructDataView>(data, &output_native, 462 mojo::internal::Deserialize<NativeStructDataView>(data, &output_native,
463 nullptr); 463 nullptr);
464 EXPECT_TRUE(output_native.is_null()); 464 EXPECT_TRUE(output_native.is_null());
465 } 465 }
466 466
467 { 467 {
468 NativeStructPtr native(NativeStruct::New()); 468 NativeStructPtr native(NativeStruct::New());
469 native->data = Array<uint8_t>(2); 469 native->data = std::vector<uint8_t>{'X', 'Y'};
470 native->data[0] = 'X';
471 native->data[1] = 'Y';
472 470
473 size_t size = mojo::internal::PrepareToSerialize<NativeStructDataView>( 471 size_t size = mojo::internal::PrepareToSerialize<NativeStructDataView>(
474 native, nullptr); 472 native, nullptr);
475 EXPECT_EQ(16u, size); 473 EXPECT_EQ(16u, size);
476 mojo::internal::FixedBufferForTesting buf(size); 474 mojo::internal::FixedBufferForTesting buf(size);
477 475
478 Data* data = nullptr; 476 Data* data = nullptr;
479 mojo::internal::Serialize<NativeStructDataView>(std::move(native), &buf, 477 mojo::internal::Serialize<NativeStructDataView>(std::move(native), &buf,
480 &data, nullptr); 478 &data, nullptr);
481 479
482 EXPECT_NE(nullptr, data); 480 EXPECT_NE(nullptr, data);
483 481
484 NativeStructPtr output_native; 482 NativeStructPtr output_native;
485 mojo::internal::Deserialize<NativeStructDataView>(data, &output_native, 483 mojo::internal::Deserialize<NativeStructDataView>(data, &output_native,
486 nullptr); 484 nullptr);
487 EXPECT_FALSE(output_native.is_null()); 485 ASSERT_TRUE(output_native);
488 EXPECT_FALSE(output_native->data.is_null()); 486 ASSERT_FALSE(output_native->data->empty());
489 EXPECT_EQ(2u, output_native->data.size()); 487 EXPECT_EQ(2u, output_native->data->size());
490 EXPECT_EQ('X', output_native->data[0]); 488 EXPECT_EQ('X', (*output_native->data)[0]);
491 EXPECT_EQ('Y', output_native->data[1]); 489 EXPECT_EQ('Y', (*output_native->data)[1]);
492 } 490 }
493 } 491 }
494 492
495 TEST_F(StructTest, Serialization_PublicAPI) { 493 TEST_F(StructTest, Serialization_PublicAPI) {
496 { 494 {
497 // A null struct pointer. 495 // A null struct pointer.
498 RectPtr null_struct; 496 RectPtr null_struct;
499 mojo::Array<uint8_t> data = Rect::Serialize(&null_struct); 497 auto data = Rect::Serialize(&null_struct);
500 EXPECT_TRUE(data.empty()); 498 EXPECT_TRUE(data.empty());
501 499
502 // Initialize it to non-null. 500 // Initialize it to non-null.
503 RectPtr output(Rect::New()); 501 RectPtr output(Rect::New());
504 ASSERT_TRUE(Rect::Deserialize(std::move(data), &output)); 502 ASSERT_TRUE(Rect::Deserialize(std::move(data), &output));
505 EXPECT_TRUE(output.is_null()); 503 EXPECT_TRUE(output.is_null());
506 } 504 }
507 505
508 { 506 {
509 // A struct with no fields. 507 // A struct with no fields.
510 EmptyStructPtr empty_struct(EmptyStruct::New()); 508 EmptyStructPtr empty_struct(EmptyStruct::New());
511 mojo::Array<uint8_t> data = EmptyStruct::Serialize(&empty_struct); 509 auto data = EmptyStruct::Serialize(&empty_struct);
512 EXPECT_FALSE(data.empty()); 510 EXPECT_FALSE(data.empty());
513 511
514 EmptyStructPtr output; 512 EmptyStructPtr output;
515 ASSERT_TRUE(EmptyStruct::Deserialize(std::move(data), &output)); 513 ASSERT_TRUE(EmptyStruct::Deserialize(std::move(data), &output));
516 EXPECT_FALSE(output.is_null()); 514 EXPECT_FALSE(output.is_null());
517 } 515 }
518 516
519 { 517 {
520 // A simple struct. 518 // A simple struct.
521 RectPtr rect = MakeRect(); 519 RectPtr rect = MakeRect();
522 RectPtr cloned_rect = rect.Clone(); 520 RectPtr cloned_rect = rect.Clone();
523 mojo::Array<uint8_t> data = Rect::Serialize(&rect); 521 auto data = Rect::Serialize(&rect);
524 522
525 RectPtr output; 523 RectPtr output;
526 ASSERT_TRUE(Rect::Deserialize(std::move(data), &output)); 524 ASSERT_TRUE(Rect::Deserialize(std::move(data), &output));
527 EXPECT_TRUE(output.Equals(cloned_rect)); 525 EXPECT_TRUE(output.Equals(cloned_rect));
528 } 526 }
529 527
530 { 528 {
531 // A struct containing other objects. 529 // A struct containing other objects.
532 NamedRegionPtr region(NamedRegion::New()); 530 NamedRegionPtr region(NamedRegion::New());
533 region->name.emplace("region"); 531 region->name.emplace("region");
534 region->rects.emplace(3); 532 region->rects.emplace(3);
535 for (size_t i = 0; i < region->rects->size(); ++i) 533 for (size_t i = 0; i < region->rects->size(); ++i)
536 (*region->rects)[i] = MakeRect(static_cast<int32_t>(i) + 1); 534 (*region->rects)[i] = MakeRect(static_cast<int32_t>(i) + 1);
537 535
538 NamedRegionPtr cloned_region = region.Clone(); 536 NamedRegionPtr cloned_region = region.Clone();
539 mojo::Array<uint8_t> data = NamedRegion::Serialize(&region); 537 auto data = NamedRegion::Serialize(&region);
540 538
541 // Make sure that the serialized result gets pointers encoded properly. 539 // Make sure that the serialized result gets pointers encoded properly.
542 mojo::Array<uint8_t> cloned_data = data.Clone(); 540 auto cloned_data = data;
543 NamedRegionPtr output; 541 NamedRegionPtr output;
544 ASSERT_TRUE(NamedRegion::Deserialize(std::move(cloned_data), &output)); 542 ASSERT_TRUE(NamedRegion::Deserialize(std::move(cloned_data), &output));
545 EXPECT_TRUE(output.Equals(cloned_region)); 543 EXPECT_TRUE(output.Equals(cloned_region));
546 } 544 }
547 545
548 { 546 {
549 // Deserialization failure. 547 // Deserialization failure.
550 RectPtr rect = MakeRect(); 548 RectPtr rect = MakeRect();
551 mojo::Array<uint8_t> data = Rect::Serialize(&rect); 549 auto data = Rect::Serialize(&rect);
552 550
553 NamedRegionPtr output; 551 NamedRegionPtr output;
554 EXPECT_FALSE(NamedRegion::Deserialize(std::move(data), &output)); 552 EXPECT_FALSE(NamedRegion::Deserialize(std::move(data), &output));
555 } 553 }
556 } 554 }
557 555
558 } // namespace test 556 } // namespace test
559 } // namespace mojo 557 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/public/cpp/bindings/tests/struct_traits_unittest.cc ('k') | mojo/public/cpp/bindings/tests/wtf_types_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698