diff options
author | Torne (Richard Coles) <torne@google.com> | 2012-11-14 11:43:16 +0000 |
---|---|---|
committer | Torne (Richard Coles) <torne@google.com> | 2012-11-14 11:43:16 +0000 |
commit | 5821806d5e7f356e8fa4b058a389a808ea183019 (patch) | |
tree | e19f4793aac92e2c0d9a01087019a60d6657d838 /media/base/data_buffer_unittest.cc | |
parent | 8e79a8efe247f109aafd917a69e8a392961b3687 (diff) | |
download | chromium_org-5821806d5e7f356e8fa4b058a389a808ea183019.tar.gz |
Merge from Chromium at DEPS revision r167172
This commit was generated by merge_to_master.py.
Change-Id: Ib8d56fd5ae39a2d7e8c91dcd76cc6d13f25f2aab
Diffstat (limited to 'media/base/data_buffer_unittest.cc')
-rw-r--r-- | media/base/data_buffer_unittest.cc | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/media/base/data_buffer_unittest.cc b/media/base/data_buffer_unittest.cc new file mode 100644 index 0000000000..71d83895e1 --- /dev/null +++ b/media/base/data_buffer_unittest.cc @@ -0,0 +1,63 @@ +// Copyright (c) 2012 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/string_util.h" +#include "media/base/data_buffer.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace media { + +TEST(DataBufferTest, Constructors) { + const uint8 kTestData[] = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77 }; + const int kTestDataSize = arraysize(kTestData); + + scoped_refptr<DataBuffer> buffer(new DataBuffer(0)); + EXPECT_FALSE(buffer->GetData()); + + scoped_refptr<DataBuffer> buffer2(new DataBuffer(kTestDataSize)); + EXPECT_EQ(0, buffer2->GetDataSize()); + EXPECT_EQ(kTestDataSize, buffer2->GetBufferSize()); + + scoped_refptr<DataBuffer> buffer3(new DataBuffer(kTestData, kTestDataSize)); + EXPECT_EQ(kTestDataSize, buffer3->GetDataSize()); + EXPECT_EQ(kTestDataSize, buffer3->GetBufferSize()); + ASSERT_EQ(0, memcmp(buffer3->GetData(), kTestData, kTestDataSize)); + // Ensure we are copying the data, not just pointing to the original data. + buffer3->GetWritableData()[0] = 0xFF; + ASSERT_NE(0, memcmp(buffer3->GetData(), kTestData, kTestDataSize)); +} + +TEST(DataBufferTest, ReadingWriting) { + const char kData[] = "hello"; + const int kDataSize = arraysize(kData); + const char kNewData[] = "chromium"; + const int kNewDataSize = arraysize(kNewData); + + // Create a DataBuffer. + scoped_refptr<DataBuffer> buffer(new DataBuffer(kDataSize)); + ASSERT_TRUE(buffer); + + uint8* data = buffer->GetWritableData(); + ASSERT_TRUE(data); + ASSERT_EQ(kDataSize, buffer->GetBufferSize()); + memcpy(data, kData, kDataSize); + buffer->SetDataSize(kDataSize); + const uint8* read_only_data = buffer->GetData(); + ASSERT_EQ(data, read_only_data); + ASSERT_EQ(0, memcmp(read_only_data, kData, kDataSize)); + EXPECT_FALSE(buffer->IsEndOfStream()); + + scoped_refptr<DataBuffer> buffer2(new DataBuffer(kNewDataSize + 10)); + data = buffer2->GetWritableData(); + ASSERT_TRUE(data); + ASSERT_EQ(kNewDataSize + 10, buffer2->GetBufferSize()); + memcpy(data, kNewData, kNewDataSize); + buffer2->SetDataSize(kNewDataSize); + read_only_data = buffer2->GetData(); + EXPECT_EQ(kNewDataSize, buffer2->GetDataSize()); + ASSERT_EQ(data, read_only_data); + EXPECT_EQ(0, memcmp(read_only_data, kNewData, kNewDataSize)); +} + +} // namespace media |