OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/strings/string_util.h" | 5 #include "base/strings/string_util.h" |
6 #include "media/base/data_buffer.h" | 6 #include "media/base/data_buffer.h" |
7 #include "testing/gtest/include/gtest/gtest.h" | 7 #include "testing/gtest/include/gtest/gtest.h" |
8 | 8 |
9 namespace media { | 9 namespace media { |
10 | 10 |
11 TEST(DataBufferTest, Constructor_ZeroSize) { | 11 TEST(DataBufferTest, Constructor_ZeroSize) { |
12 // Zero-sized buffers are valid. In practice they aren't used very much but it | 12 // Zero-sized buffers are valid. In practice they aren't used very much but it |
13 // eliminates clients from worrying about null data pointers. | 13 // eliminates clients from worrying about null data pointers. |
14 scoped_refptr<DataBuffer> buffer = new DataBuffer(0); | 14 scoped_refptr<DataBuffer> buffer = new DataBuffer(0); |
15 EXPECT_TRUE(buffer->GetData()); | 15 EXPECT_TRUE(buffer->data()); |
16 EXPECT_TRUE(buffer->GetWritableData()); | 16 EXPECT_TRUE(buffer->writable_data()); |
17 EXPECT_EQ(0, buffer->GetDataSize()); | 17 EXPECT_EQ(0, buffer->data_size()); |
18 EXPECT_FALSE(buffer->IsEndOfStream()); | 18 EXPECT_FALSE(buffer->end_of_stream()); |
19 } | 19 } |
20 | 20 |
21 TEST(DataBufferTest, Constructor_NonZeroSize) { | 21 TEST(DataBufferTest, Constructor_NonZeroSize) { |
22 // Buffer size should be set. | 22 // Buffer size should be set. |
23 scoped_refptr<DataBuffer> buffer = new DataBuffer(10); | 23 scoped_refptr<DataBuffer> buffer = new DataBuffer(10); |
24 EXPECT_TRUE(buffer->GetData()); | 24 EXPECT_TRUE(buffer->data()); |
25 EXPECT_TRUE(buffer->GetWritableData()); | 25 EXPECT_TRUE(buffer->writable_data()); |
26 EXPECT_EQ(0, buffer->GetDataSize()); | 26 EXPECT_EQ(0, buffer->data_size()); |
27 EXPECT_FALSE(buffer->IsEndOfStream()); | 27 EXPECT_FALSE(buffer->end_of_stream()); |
28 } | 28 } |
29 | 29 |
30 TEST(DataBufferTest, Constructor_ScopedArray) { | 30 TEST(DataBufferTest, Constructor_ScopedArray) { |
31 // Data should be passed and both data and buffer size should be set. | 31 // Data should be passed and both data and buffer size should be set. |
32 const int kSize = 8; | 32 const int kSize = 8; |
33 scoped_ptr<uint8[]> data(new uint8[kSize]); | 33 scoped_ptr<uint8[]> data(new uint8[kSize]); |
34 const uint8* kData = data.get(); | 34 const uint8* kData = data.get(); |
35 | 35 |
36 scoped_refptr<DataBuffer> buffer = new DataBuffer(data.Pass(), kSize); | 36 scoped_refptr<DataBuffer> buffer = new DataBuffer(data.Pass(), kSize); |
37 EXPECT_TRUE(buffer->GetData()); | 37 EXPECT_TRUE(buffer->data()); |
38 EXPECT_TRUE(buffer->GetWritableData()); | 38 EXPECT_TRUE(buffer->writable_data()); |
39 EXPECT_EQ(kData, buffer->GetData()); | 39 EXPECT_EQ(kData, buffer->data()); |
40 EXPECT_EQ(kSize, buffer->GetDataSize()); | 40 EXPECT_EQ(kSize, buffer->data_size()); |
41 EXPECT_FALSE(buffer->IsEndOfStream()); | 41 EXPECT_FALSE(buffer->end_of_stream()); |
42 } | 42 } |
43 | 43 |
44 TEST(DataBufferTest, CopyFrom) { | 44 TEST(DataBufferTest, CopyFrom) { |
45 const uint8 kTestData[] = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77 }; | 45 const uint8 kTestData[] = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77 }; |
46 const int kTestDataSize = arraysize(kTestData); | 46 const int kTestDataSize = arraysize(kTestData); |
47 | 47 |
48 scoped_refptr<DataBuffer> buffer = | 48 scoped_refptr<DataBuffer> buffer = |
49 DataBuffer::CopyFrom(kTestData, kTestDataSize); | 49 DataBuffer::CopyFrom(kTestData, kTestDataSize); |
50 EXPECT_EQ(kTestDataSize, buffer->GetDataSize()); | 50 EXPECT_EQ(kTestDataSize, buffer->data_size()); |
51 EXPECT_FALSE(buffer->IsEndOfStream()); | 51 EXPECT_FALSE(buffer->end_of_stream()); |
52 | 52 |
53 // Ensure we are copying the data, not just pointing to the original data. | 53 // Ensure we are copying the data, not just pointing to the original data. |
54 EXPECT_EQ(0, memcmp(buffer->GetData(), kTestData, kTestDataSize)); | 54 EXPECT_EQ(0, memcmp(buffer->data(), kTestData, kTestDataSize)); |
55 buffer->GetWritableData()[0] = 0xFF; | 55 buffer->writable_data()[0] = 0xFF; |
56 EXPECT_NE(0, memcmp(buffer->GetData(), kTestData, kTestDataSize)); | 56 EXPECT_NE(0, memcmp(buffer->data(), kTestData, kTestDataSize)); |
57 } | 57 } |
58 | 58 |
59 TEST(DataBufferTest, CreateEOSBuffer) { | 59 TEST(DataBufferTest, CreateEOSBuffer) { |
60 scoped_refptr<DataBuffer> buffer = DataBuffer::CreateEOSBuffer(); | 60 scoped_refptr<DataBuffer> buffer = DataBuffer::CreateEOSBuffer(); |
61 EXPECT_TRUE(buffer->IsEndOfStream()); | 61 EXPECT_TRUE(buffer->end_of_stream()); |
62 } | 62 } |
63 | 63 |
64 TEST(DataBufferTest, Timestamp) { | 64 TEST(DataBufferTest, Timestamp) { |
65 const base::TimeDelta kZero; | 65 const base::TimeDelta kZero; |
66 const base::TimeDelta kTimestampA = base::TimeDelta::FromMicroseconds(1337); | 66 const base::TimeDelta kTimestampA = base::TimeDelta::FromMicroseconds(1337); |
67 const base::TimeDelta kTimestampB = base::TimeDelta::FromMicroseconds(1234); | 67 const base::TimeDelta kTimestampB = base::TimeDelta::FromMicroseconds(1234); |
68 | 68 |
69 scoped_refptr<DataBuffer> buffer = new DataBuffer(0); | 69 scoped_refptr<DataBuffer> buffer = new DataBuffer(0); |
70 EXPECT_TRUE(buffer->GetTimestamp() == kZero); | 70 EXPECT_TRUE(buffer->timestamp() == kZero); |
71 | 71 |
72 buffer->SetTimestamp(kTimestampA); | 72 buffer->set_timestamp(kTimestampA); |
73 EXPECT_TRUE(buffer->GetTimestamp() == kTimestampA); | 73 EXPECT_TRUE(buffer->timestamp() == kTimestampA); |
74 | 74 |
75 buffer->SetTimestamp(kTimestampB); | 75 buffer->set_timestamp(kTimestampB); |
76 EXPECT_TRUE(buffer->GetTimestamp() == kTimestampB); | 76 EXPECT_TRUE(buffer->timestamp() == kTimestampB); |
77 } | 77 } |
78 | 78 |
79 TEST(DataBufferTest, Duration) { | 79 TEST(DataBufferTest, Duration) { |
80 const base::TimeDelta kZero; | 80 const base::TimeDelta kZero; |
81 const base::TimeDelta kDurationA = base::TimeDelta::FromMicroseconds(1337); | 81 const base::TimeDelta kDurationA = base::TimeDelta::FromMicroseconds(1337); |
82 const base::TimeDelta kDurationB = base::TimeDelta::FromMicroseconds(1234); | 82 const base::TimeDelta kDurationB = base::TimeDelta::FromMicroseconds(1234); |
83 | 83 |
84 scoped_refptr<DataBuffer> buffer = new DataBuffer(0); | 84 scoped_refptr<DataBuffer> buffer = new DataBuffer(0); |
85 EXPECT_TRUE(buffer->GetDuration() == kZero); | 85 EXPECT_TRUE(buffer->duration() == kZero); |
86 | 86 |
87 buffer->SetDuration(kDurationA); | 87 buffer->set_duration(kDurationA); |
88 EXPECT_TRUE(buffer->GetDuration() == kDurationA); | 88 EXPECT_TRUE(buffer->duration() == kDurationA); |
89 | 89 |
90 buffer->SetDuration(kDurationB); | 90 buffer->set_duration(kDurationB); |
91 EXPECT_TRUE(buffer->GetDuration() == kDurationB); | 91 EXPECT_TRUE(buffer->duration() == kDurationB); |
92 } | 92 } |
93 | 93 |
94 TEST(DataBufferTest, ReadingWriting) { | 94 TEST(DataBufferTest, ReadingWriting) { |
95 const char kData[] = "hello"; | 95 const char kData[] = "hello"; |
96 const int kDataSize = arraysize(kData); | 96 const int kDataSize = arraysize(kData); |
97 const char kNewData[] = "chromium"; | 97 const char kNewData[] = "chromium"; |
98 const int kNewDataSize = arraysize(kNewData); | 98 const int kNewDataSize = arraysize(kNewData); |
99 | 99 |
100 // Create a DataBuffer. | 100 // Create a DataBuffer. |
101 scoped_refptr<DataBuffer> buffer(new DataBuffer(kDataSize)); | 101 scoped_refptr<DataBuffer> buffer(new DataBuffer(kDataSize)); |
102 ASSERT_TRUE(buffer.get()); | 102 ASSERT_TRUE(buffer.get()); |
103 | 103 |
104 uint8* data = buffer->GetWritableData(); | 104 uint8* data = buffer->writable_data(); |
105 ASSERT_TRUE(data); | 105 ASSERT_TRUE(data); |
106 memcpy(data, kData, kDataSize); | 106 memcpy(data, kData, kDataSize); |
107 buffer->SetDataSize(kDataSize); | 107 buffer->set_data_size(kDataSize); |
108 const uint8* read_only_data = buffer->GetData(); | 108 const uint8* read_only_data = buffer->data(); |
109 ASSERT_EQ(data, read_only_data); | 109 ASSERT_EQ(data, read_only_data); |
110 ASSERT_EQ(0, memcmp(read_only_data, kData, kDataSize)); | 110 ASSERT_EQ(0, memcmp(read_only_data, kData, kDataSize)); |
111 EXPECT_FALSE(buffer->IsEndOfStream()); | 111 EXPECT_FALSE(buffer->end_of_stream()); |
112 | 112 |
113 scoped_refptr<DataBuffer> buffer2(new DataBuffer(kNewDataSize + 10)); | 113 scoped_refptr<DataBuffer> buffer2(new DataBuffer(kNewDataSize + 10)); |
114 data = buffer2->GetWritableData(); | 114 data = buffer2->writable_data(); |
115 ASSERT_TRUE(data); | 115 ASSERT_TRUE(data); |
116 memcpy(data, kNewData, kNewDataSize); | 116 memcpy(data, kNewData, kNewDataSize); |
117 buffer2->SetDataSize(kNewDataSize); | 117 buffer2->set_data_size(kNewDataSize); |
118 read_only_data = buffer2->GetData(); | 118 read_only_data = buffer2->data(); |
119 EXPECT_EQ(kNewDataSize, buffer2->GetDataSize()); | 119 EXPECT_EQ(kNewDataSize, buffer2->data_size()); |
120 ASSERT_EQ(data, read_only_data); | 120 ASSERT_EQ(data, read_only_data); |
121 EXPECT_EQ(0, memcmp(read_only_data, kNewData, kNewDataSize)); | 121 EXPECT_EQ(0, memcmp(read_only_data, kNewData, kNewDataSize)); |
122 } | 122 } |
123 | 123 |
124 } // namespace media | 124 } // namespace media |
OLD | NEW |