blob: 72f12eb05ae9305c1a105d6ba989d959a0003781 [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "base/stl_util.h"
#include "mojo/public/cpp/base/big_buffer_mojom_traits.h"
#include "mojo/public/cpp/base/ref_counted_memory_mojom_traits.h"
#include "mojo/public/cpp/test_support/test_utils.h"
#include "mojo/public/mojom/base/ref_counted_memory.mojom.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace mojo_base {
TEST(RefCountedMemoryTest, Data) {
uint8_t data[] = {'a', 'b', 'c', 'd', 'e'};
scoped_refptr<base::RefCountedMemory> in =
new base::RefCountedStaticMemory(&data, base::size(data));
scoped_refptr<base::RefCountedMemory> out;
ASSERT_TRUE(
mojo::test::SerializeAndDeserialize<mojom::RefCountedMemory>(&in, &out));
ASSERT_EQ(out->size(), in->size());
for (size_t i = 0; i < out->size(); ++i)
EXPECT_EQ(in->front()[i], out->front()[i]);
}
TEST(RefCountedMemoryTest, Null) {
// Stuff real data in out to ensure it gets overwritten with a null.
uint8_t data[] = {'a', 'b', 'c', 'd', 'e'};
scoped_refptr<base::RefCountedMemory> out =
new base::RefCountedStaticMemory(&data, base::size(data));
scoped_refptr<base::RefCountedMemory> in;
ASSERT_TRUE(
mojo::test::SerializeAndDeserialize<mojom::RefCountedMemory>(&in, &out));
ASSERT_FALSE(out.get());
}
} // namespace mojo_base