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

Side by Side Diff: media/cdm/cenc_utils_unittest.cc

Issue 1100763002: Inject CanAddURLToHistory into TopSitesImpl (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@prefs
Patch Set: Fix error introduced during rebase Created 5 years, 7 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
« no previous file with comments | « media/cdm/cenc_utils.cc ('k') | media/cdm/ppapi/cdm_file_io_impl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "media/cdm/cenc_utils.h" 5 #include "media/cdm/cenc_utils.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 9
10 namespace media { 10 namespace media {
11 11
12 const uint8 kKey1Data[] = { 12 const uint8_t kKey1Data[] = {
13 0x7E, 0x57, 0x1D, 0x03, 0x7E, 0x57, 0x1D, 0x03, 13 0x7E, 0x57, 0x1D, 0x03, 0x7E, 0x57, 0x1D, 0x03,
14 0x7E, 0x57, 0x1D, 0x03, 0x7E, 0x57, 0x1D, 0x03 14 0x7E, 0x57, 0x1D, 0x03, 0x7E, 0x57, 0x1D, 0x03
15 }; 15 };
16 const uint8 kKey2Data[] = { 16 const uint8_t kKey2Data[] = {
17 0x7E, 0x57, 0x1D, 0x04, 0x7E, 0x57, 0x1D, 0x04, 17 0x7E, 0x57, 0x1D, 0x04, 0x7E, 0x57, 0x1D, 0x04,
18 0x7E, 0x57, 0x1D, 0x04, 0x7E, 0x57, 0x1D, 0x04, 18 0x7E, 0x57, 0x1D, 0x04, 0x7E, 0x57, 0x1D, 0x04,
19 }; 19 };
20 const uint8 kKey3Data[] = { 20 const uint8_t kKey3Data[] = {
21 0x7E, 0x57, 0x1D, 0x04, 0x7E, 0x57, 0x1D, 0x05, 21 0x7E, 0x57, 0x1D, 0x04, 0x7E, 0x57, 0x1D, 0x05,
22 0x7E, 0x57, 0x1D, 0x04, 0x7E, 0x57, 0x1D, 0x05, 22 0x7E, 0x57, 0x1D, 0x04, 0x7E, 0x57, 0x1D, 0x05,
23 }; 23 };
24 const uint8 kKey4Data[] = { 24 const uint8_t kKey4Data[] = {
25 0x7E, 0x57, 0x1D, 0x04, 0x7E, 0x57, 0x1D, 0x06, 25 0x7E, 0x57, 0x1D, 0x04, 0x7E, 0x57, 0x1D, 0x06,
26 0x7E, 0x57, 0x1D, 0x04, 0x7E, 0x57, 0x1D, 0x06, 26 0x7E, 0x57, 0x1D, 0x04, 0x7E, 0x57, 0x1D, 0x06,
27 }; 27 };
28 28
29 class CencUtilsTest : public testing::Test { 29 class CencUtilsTest : public testing::Test {
30 public: 30 public:
31 CencUtilsTest() 31 CencUtilsTest()
32 : key1_(kKey1Data, kKey1Data + arraysize(kKey1Data)), 32 : key1_(kKey1Data, kKey1Data + arraysize(kKey1Data)),
33 key2_(kKey2Data, kKey2Data + arraysize(kKey2Data)), 33 key2_(kKey2Data, kKey2Data + arraysize(kKey2Data)),
34 key3_(kKey3Data, kKey3Data + arraysize(kKey3Data)), 34 key3_(kKey3Data, kKey3Data + arraysize(kKey3Data)),
35 key4_(kKey4Data, kKey4Data + arraysize(kKey4Data)) {} 35 key4_(kKey4Data, kKey4Data + arraysize(kKey4Data)) {}
36 36
37 protected: 37 protected:
38 // Initialize the start of the 'pssh' box (up to key_count) 38 // Initialize the start of the 'pssh' box (up to key_count)
39 void InitializePSSHBox(std::vector<uint8>* box, uint8 size, uint8 version) { 39 void InitializePSSHBox(std::vector<uint8_t>* box,
40 uint8_t size,
41 uint8_t version) {
40 DCHECK(box->size() == 0); 42 DCHECK(box->size() == 0);
41 43
42 box->reserve(size); 44 box->reserve(size);
43 // Add size. 45 // Add size.
44 box->push_back(0); 46 box->push_back(0);
45 box->push_back(0); 47 box->push_back(0);
46 box->push_back(0); 48 box->push_back(0);
47 box->push_back(size); 49 box->push_back(size);
48 // Add 'pssh'. 50 // Add 'pssh'.
49 box->push_back('p'); 51 box->push_back('p');
(...skipping 18 matching lines...) Expand all
68 box->push_back(0xAC); 70 box->push_back(0xAC);
69 box->push_back(0xE3); 71 box->push_back(0xE3);
70 box->push_back(0x3C); 72 box->push_back(0x3C);
71 box->push_back(0x1E); 73 box->push_back(0x1E);
72 box->push_back(0x52); 74 box->push_back(0x52);
73 box->push_back(0xE2); 75 box->push_back(0xE2);
74 box->push_back(0xFB); 76 box->push_back(0xFB);
75 box->push_back(0x4B); 77 box->push_back(0x4B);
76 } 78 }
77 79
78 std::vector<uint8> MakePSSHBox(uint8 version) { 80 std::vector<uint8_t> MakePSSHBox(uint8_t version) {
79 std::vector<uint8> box; 81 std::vector<uint8_t> box;
80 uint8 size = (version == 0) ? 32 : 36; 82 uint8_t size = (version == 0) ? 32 : 36;
81 InitializePSSHBox(&box, size, version); 83 InitializePSSHBox(&box, size, version);
82 if (version > 0) { 84 if (version > 0) {
83 // Add key_count (= 0). 85 // Add key_count (= 0).
84 box.push_back(0); 86 box.push_back(0);
85 box.push_back(0); 87 box.push_back(0);
86 box.push_back(0); 88 box.push_back(0);
87 box.push_back(0); 89 box.push_back(0);
88 } 90 }
89 // Add data_size (= 0). 91 // Add data_size (= 0).
90 box.push_back(0); 92 box.push_back(0);
91 box.push_back(0); 93 box.push_back(0);
92 box.push_back(0); 94 box.push_back(0);
93 box.push_back(0); 95 box.push_back(0);
94 return box; 96 return box;
95 } 97 }
96 98
97 std::vector<uint8> MakePSSHBox(uint8 version, 99 std::vector<uint8_t> MakePSSHBox(uint8_t version,
98 const std::vector<uint8>& key1) { 100 const std::vector<uint8_t>& key1) {
99 DCHECK(version > 0); 101 DCHECK(version > 0);
100 DCHECK(key1.size() == 16); 102 DCHECK(key1.size() == 16);
101 103
102 std::vector<uint8> box; 104 std::vector<uint8_t> box;
103 uint8 size = 52; 105 uint8_t size = 52;
104 InitializePSSHBox(&box, size, version); 106 InitializePSSHBox(&box, size, version);
105 107
106 // Add key_count (= 1). 108 // Add key_count (= 1).
107 box.push_back(0); 109 box.push_back(0);
108 box.push_back(0); 110 box.push_back(0);
109 box.push_back(0); 111 box.push_back(0);
110 box.push_back(1); 112 box.push_back(1);
111 113
112 // Add key1. 114 // Add key1.
113 for (int i = 0; i < 16; ++i) 115 for (int i = 0; i < 16; ++i)
114 box.push_back(key1[i]); 116 box.push_back(key1[i]);
115 117
116 // Add data_size (= 0). 118 // Add data_size (= 0).
117 box.push_back(0); 119 box.push_back(0);
118 box.push_back(0); 120 box.push_back(0);
119 box.push_back(0); 121 box.push_back(0);
120 box.push_back(0); 122 box.push_back(0);
121 return box; 123 return box;
122 } 124 }
123 125
124 std::vector<uint8> MakePSSHBox(uint8 version, 126 std::vector<uint8_t> MakePSSHBox(uint8_t version,
125 const std::vector<uint8>& key1, 127 const std::vector<uint8_t>& key1,
126 const std::vector<uint8>& key2) { 128 const std::vector<uint8_t>& key2) {
127 DCHECK(version > 0); 129 DCHECK(version > 0);
128 DCHECK(key1.size() == 16); 130 DCHECK(key1.size() == 16);
129 DCHECK(key2.size() == 16); 131 DCHECK(key2.size() == 16);
130 132
131 std::vector<uint8> box; 133 std::vector<uint8_t> box;
132 uint8 size = 68; 134 uint8_t size = 68;
133 InitializePSSHBox(&box, size, version); 135 InitializePSSHBox(&box, size, version);
134 136
135 // Add key_count (= 2). 137 // Add key_count (= 2).
136 box.push_back(0); 138 box.push_back(0);
137 box.push_back(0); 139 box.push_back(0);
138 box.push_back(0); 140 box.push_back(0);
139 box.push_back(2); 141 box.push_back(2);
140 142
141 // Add key1. 143 // Add key1.
142 for (int i = 0; i < 16; ++i) 144 for (int i = 0; i < 16; ++i)
143 box.push_back(key1[i]); 145 box.push_back(key1[i]);
144 146
145 // Add key2. 147 // Add key2.
146 for (int i = 0; i < 16; ++i) 148 for (int i = 0; i < 16; ++i)
147 box.push_back(key2[i]); 149 box.push_back(key2[i]);
148 150
149 // Add data_size (= 0). 151 // Add data_size (= 0).
150 box.push_back(0); 152 box.push_back(0);
151 box.push_back(0); 153 box.push_back(0);
152 box.push_back(0); 154 box.push_back(0);
153 box.push_back(0); 155 box.push_back(0);
154 return box; 156 return box;
155 } 157 }
156 158
157 const std::vector<uint8>& Key1() { return key1_; } 159 const std::vector<uint8_t>& Key1() { return key1_; }
158 const std::vector<uint8>& Key2() { return key2_; } 160 const std::vector<uint8_t>& Key2() { return key2_; }
159 const std::vector<uint8>& Key3() { return key3_; } 161 const std::vector<uint8_t>& Key3() { return key3_; }
160 const std::vector<uint8>& Key4() { return key4_; } 162 const std::vector<uint8_t>& Key4() { return key4_; }
161 163
162 private: 164 private:
163 std::vector<uint8> key1_; 165 std::vector<uint8_t> key1_;
164 std::vector<uint8> key2_; 166 std::vector<uint8_t> key2_;
165 std::vector<uint8> key3_; 167 std::vector<uint8_t> key3_;
166 std::vector<uint8> key4_; 168 std::vector<uint8_t> key4_;
167 }; 169 };
168 170
169 TEST_F(CencUtilsTest, EmptyPSSH) { 171 TEST_F(CencUtilsTest, EmptyPSSH) {
170 std::vector<std::vector<uint8>> key_ids; 172 KeyIdList key_ids;
171 EXPECT_TRUE(ValidatePsshInput(nullptr, 0)); 173 EXPECT_TRUE(ValidatePsshInput(std::vector<uint8_t>()));
172 EXPECT_TRUE(GetKeyIdsForCommonSystemId(nullptr, 0, &key_ids)); 174 EXPECT_TRUE(GetKeyIdsForCommonSystemId(std::vector<uint8_t>(), &key_ids));
173 EXPECT_EQ(0u, key_ids.size()); 175 EXPECT_EQ(0u, key_ids.size());
174 } 176 }
175 177
176 TEST_F(CencUtilsTest, PSSHVersion0) { 178 TEST_F(CencUtilsTest, PSSHVersion0) {
177 std::vector<uint8> box = MakePSSHBox(0); 179 std::vector<uint8_t> box = MakePSSHBox(0);
178 std::vector<std::vector<uint8>> key_ids; 180 KeyIdList key_ids;
179 EXPECT_TRUE(ValidatePsshInput(&box[0], box.size())); 181 EXPECT_TRUE(ValidatePsshInput(box));
180 EXPECT_TRUE(GetKeyIdsForCommonSystemId(&box[0], box.size(), &key_ids)); 182 EXPECT_TRUE(GetKeyIdsForCommonSystemId(box, &key_ids));
181 EXPECT_EQ(0u, key_ids.size()); 183 EXPECT_EQ(0u, key_ids.size());
182 } 184 }
183 185
184 TEST_F(CencUtilsTest, PSSHVersion1WithNoKeys) { 186 TEST_F(CencUtilsTest, PSSHVersion1WithNoKeys) {
185 std::vector<uint8> box = MakePSSHBox(1); 187 std::vector<uint8_t> box = MakePSSHBox(1);
186 std::vector<std::vector<uint8>> key_ids; 188 KeyIdList key_ids;
187 EXPECT_TRUE(ValidatePsshInput(&box[0], box.size())); 189 EXPECT_TRUE(ValidatePsshInput(box));
188 EXPECT_TRUE(GetKeyIdsForCommonSystemId(&box[0], box.size(), &key_ids)); 190 EXPECT_TRUE(GetKeyIdsForCommonSystemId(box, &key_ids));
189 EXPECT_EQ(0u, key_ids.size()); 191 EXPECT_EQ(0u, key_ids.size());
190 } 192 }
191 193
192 TEST_F(CencUtilsTest, PSSHVersion1WithOneKey) { 194 TEST_F(CencUtilsTest, PSSHVersion1WithOneKey) {
193 std::vector<uint8> box = MakePSSHBox(1, Key1()); 195 std::vector<uint8_t> box = MakePSSHBox(1, Key1());
194 std::vector<std::vector<uint8>> key_ids; 196 KeyIdList key_ids;
195 EXPECT_TRUE(ValidatePsshInput(&box[0], box.size())); 197 EXPECT_TRUE(ValidatePsshInput(box));
196 EXPECT_TRUE(GetKeyIdsForCommonSystemId(&box[0], box.size(), &key_ids)); 198 EXPECT_TRUE(GetKeyIdsForCommonSystemId(box, &key_ids));
197 EXPECT_EQ(1u, key_ids.size()); 199 EXPECT_EQ(1u, key_ids.size());
198 EXPECT_EQ(key_ids[0], Key1()); 200 EXPECT_EQ(key_ids[0], Key1());
199 } 201 }
200 202
201 TEST_F(CencUtilsTest, PSSHVersion1WithTwoKeys) { 203 TEST_F(CencUtilsTest, PSSHVersion1WithTwoKeys) {
202 std::vector<uint8> box = MakePSSHBox(1, Key1(), Key2()); 204 std::vector<uint8_t> box = MakePSSHBox(1, Key1(), Key2());
203 std::vector<std::vector<uint8>> key_ids; 205 KeyIdList key_ids;
204 EXPECT_TRUE(ValidatePsshInput(&box[0], box.size())); 206 EXPECT_TRUE(ValidatePsshInput(box));
205 EXPECT_TRUE(GetKeyIdsForCommonSystemId(&box[0], box.size(), &key_ids)); 207 EXPECT_TRUE(GetKeyIdsForCommonSystemId(box, &key_ids));
206 EXPECT_EQ(2u, key_ids.size()); 208 EXPECT_EQ(2u, key_ids.size());
207 EXPECT_EQ(key_ids[0], Key1()); 209 EXPECT_EQ(key_ids[0], Key1());
208 EXPECT_EQ(key_ids[1], Key2()); 210 EXPECT_EQ(key_ids[1], Key2());
209 } 211 }
210 212
211 TEST_F(CencUtilsTest, PSSHVersion0Plus1) { 213 TEST_F(CencUtilsTest, PSSHVersion0Plus1) {
212 std::vector<uint8> box0 = MakePSSHBox(0); 214 std::vector<uint8_t> box0 = MakePSSHBox(0);
213 std::vector<uint8> box1 = MakePSSHBox(1, Key1()); 215 std::vector<uint8_t> box1 = MakePSSHBox(1, Key1());
214 216
215 // Concatentate box1 into box0. 217 // Concatentate box1 into box0.
216 for (const auto& value : box1) 218 for (const auto& value : box1)
217 box0.push_back(value); 219 box0.push_back(value);
218 220
219 std::vector<std::vector<uint8>> key_ids; 221 KeyIdList key_ids;
220 EXPECT_TRUE(ValidatePsshInput(&box0[0], box0.size())); 222 EXPECT_TRUE(ValidatePsshInput(box0));
221 EXPECT_TRUE(GetKeyIdsForCommonSystemId(&box0[0], box0.size(), &key_ids)); 223 EXPECT_TRUE(GetKeyIdsForCommonSystemId(box0, &key_ids));
222 EXPECT_EQ(1u, key_ids.size()); 224 EXPECT_EQ(1u, key_ids.size());
223 EXPECT_EQ(key_ids[0], Key1()); 225 EXPECT_EQ(key_ids[0], Key1());
224 } 226 }
225 227
226 TEST_F(CencUtilsTest, PSSHVersion1Plus0) { 228 TEST_F(CencUtilsTest, PSSHVersion1Plus0) {
227 std::vector<uint8> box0 = MakePSSHBox(0); 229 std::vector<uint8_t> box0 = MakePSSHBox(0);
228 std::vector<uint8> box1 = MakePSSHBox(1, Key1()); 230 std::vector<uint8_t> box1 = MakePSSHBox(1, Key1());
229 231
230 // Concatentate box0 into box1. 232 // Concatentate box0 into box1.
231 for (const auto& value : box0) 233 for (const auto& value : box0)
232 box1.push_back(value); 234 box1.push_back(value);
233 235
234 std::vector<std::vector<uint8>> key_ids; 236 KeyIdList key_ids;
235 EXPECT_TRUE(ValidatePsshInput(&box1[0], box1.size())); 237 EXPECT_TRUE(ValidatePsshInput(box1));
236 EXPECT_TRUE(GetKeyIdsForCommonSystemId(&box1[0], box1.size(), &key_ids)); 238 EXPECT_TRUE(GetKeyIdsForCommonSystemId(box1, &key_ids));
237 EXPECT_EQ(1u, key_ids.size()); 239 EXPECT_EQ(1u, key_ids.size());
238 EXPECT_EQ(key_ids[0], Key1()); 240 EXPECT_EQ(key_ids[0], Key1());
239 } 241 }
240 242
241 TEST_F(CencUtilsTest, MultiplePSSHVersion1) { 243 TEST_F(CencUtilsTest, MultiplePSSHVersion1) {
242 std::vector<uint8> box = MakePSSHBox(1, Key1(), Key2()); 244 std::vector<uint8_t> box = MakePSSHBox(1, Key1(), Key2());
243 std::vector<uint8> box1 = MakePSSHBox(1, Key3()); 245 std::vector<uint8_t> box1 = MakePSSHBox(1, Key3());
244 std::vector<uint8> box2 = MakePSSHBox(1, Key4()); 246 std::vector<uint8_t> box2 = MakePSSHBox(1, Key4());
245 247
246 // Concatentate box1 into box. 248 // Concatentate box1 into box.
247 for (const auto& value : box1) 249 for (const auto& value : box1)
248 box.push_back(value); 250 box.push_back(value);
249 // Concatentate box2 into box. 251 // Concatentate box2 into box.
250 for (const auto& value : box2) 252 for (const auto& value : box2)
251 box.push_back(value); 253 box.push_back(value);
252 254
253 std::vector<std::vector<uint8>> key_ids; 255 KeyIdList key_ids;
254 EXPECT_TRUE(ValidatePsshInput(&box[0], box.size())); 256 EXPECT_TRUE(ValidatePsshInput(box));
255 EXPECT_TRUE(GetKeyIdsForCommonSystemId(&box[0], box.size(), &key_ids)); 257 EXPECT_TRUE(GetKeyIdsForCommonSystemId(box, &key_ids));
256 EXPECT_EQ(4u, key_ids.size()); 258 EXPECT_EQ(4u, key_ids.size());
257 EXPECT_EQ(key_ids[0], Key1()); 259 EXPECT_EQ(key_ids[0], Key1());
258 EXPECT_EQ(key_ids[1], Key2()); 260 EXPECT_EQ(key_ids[1], Key2());
259 EXPECT_EQ(key_ids[2], Key3()); 261 EXPECT_EQ(key_ids[2], Key3());
260 EXPECT_EQ(key_ids[3], Key4()); 262 EXPECT_EQ(key_ids[3], Key4());
261 } 263 }
262 264
263 TEST_F(CencUtilsTest, InvalidPSSH) { 265 TEST_F(CencUtilsTest, InvalidPSSH) {
264 std::vector<uint8> box = MakePSSHBox(1, Key1(), Key2()); 266 std::vector<uint8_t> box = MakePSSHBox(1, Key1(), Key2());
265 std::vector<std::vector<uint8>> key_ids; 267 KeyIdList key_ids;
266 for (uint32 i = 1; i < box.size(); ++i) { 268 for (uint32 i = 1; i < box.size(); ++i) {
267 // Modify size of data passed to be less than real size. 269 // Modify size of data passed to be less than real size.
268 EXPECT_FALSE(ValidatePsshInput(&box[0], i)); 270 std::vector<uint8_t> truncated(&box[0], &box[0] + i);
269 EXPECT_FALSE(GetKeyIdsForCommonSystemId(&box[0], i, &key_ids)); 271 EXPECT_FALSE(ValidatePsshInput(truncated));
272 EXPECT_FALSE(GetKeyIdsForCommonSystemId(truncated, &key_ids));
270 // Modify starting point. 273 // Modify starting point.
271 EXPECT_FALSE(ValidatePsshInput(&box[i], box.size() - i)); 274 std::vector<uint8_t> changed_offset(&box[i], &box[i] + box.size() - i);
272 EXPECT_FALSE(GetKeyIdsForCommonSystemId(&box[i], box.size() - i, &key_ids)); 275 EXPECT_FALSE(ValidatePsshInput(changed_offset));
276 EXPECT_FALSE(GetKeyIdsForCommonSystemId(changed_offset, &key_ids));
273 } 277 }
274 } 278 }
275 279
276 TEST_F(CencUtilsTest, InvalidSystemID) { 280 TEST_F(CencUtilsTest, InvalidSystemID) {
277 std::vector<uint8> box = MakePSSHBox(1, Key1(), Key2()); 281 std::vector<uint8_t> box = MakePSSHBox(1, Key1(), Key2());
278 282
279 // Modify the System ID. 283 // Modify the System ID.
280 ++box[20]; 284 ++box[20];
281 285
282 std::vector<std::vector<uint8>> key_ids; 286 KeyIdList key_ids;
283 EXPECT_TRUE(GetKeyIdsForCommonSystemId(&box[0], box.size(), &key_ids)); 287 EXPECT_TRUE(GetKeyIdsForCommonSystemId(box, &key_ids));
284 EXPECT_EQ(0u, key_ids.size()); 288 EXPECT_EQ(0u, key_ids.size());
285 } 289 }
286 290
287 TEST_F(CencUtilsTest, InvalidFlags) { 291 TEST_F(CencUtilsTest, InvalidFlags) {
288 std::vector<uint8> box = MakePSSHBox(1, Key1(), Key2()); 292 std::vector<uint8_t> box = MakePSSHBox(1, Key1(), Key2());
289 293
290 // Modify flags. 294 // Modify flags.
291 box[10] = 3; 295 box[10] = 3;
292 296
293 std::vector<std::vector<uint8>> key_ids; 297 KeyIdList key_ids;
294 // TODO(jrummell): This should fail as the 'pssh' box is skipped. 298 // TODO(jrummell): This should fail as the 'pssh' box is skipped.
295 EXPECT_TRUE(GetKeyIdsForCommonSystemId(&box[0], box.size(), &key_ids)); 299 EXPECT_TRUE(GetKeyIdsForCommonSystemId(box, &key_ids));
296 EXPECT_EQ(0u, key_ids.size()); 300 EXPECT_EQ(0u, key_ids.size());
297 } 301 }
298 302
299 TEST_F(CencUtilsTest, LongSize) { 303 TEST_F(CencUtilsTest, LongSize) {
300 const uint8 data[] = { 304 const uint8_t data[] = {
301 0x00, 0x00, 0x00, 0x01, // size = 1 305 0x00, 0x00, 0x00, 0x01, // size = 1
302 0x70, 0x73, 0x73, 0x68, // 'pssh' 306 0x70, 0x73, 0x73, 0x68, // 'pssh'
303 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, // longsize 307 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, // longsize
304 0x01, // version 308 0x01, // version
305 0x00, 0x00, 0x00, // flags 309 0x00, 0x00, 0x00, // flags
306 0x10, 0x77, 0xEF, 0xEC, 0xC0, 0xB2, 0x4D, 0x02, // SystemID 310 0x10, 0x77, 0xEF, 0xEC, 0xC0, 0xB2, 0x4D, 0x02, // SystemID
307 0xAC, 0xE3, 0x3C, 0x1E, 0x52, 0xE2, 0xFB, 0x4B, 311 0xAC, 0xE3, 0x3C, 0x1E, 0x52, 0xE2, 0xFB, 0x4B,
308 0x00, 0x00, 0x00, 0x02, // key count 312 0x00, 0x00, 0x00, 0x02, // key count
309 0x7E, 0x57, 0x1D, 0x03, 0x7E, 0x57, 0x1D, 0x03, // key1 313 0x7E, 0x57, 0x1D, 0x03, 0x7E, 0x57, 0x1D, 0x03, // key1
310 0x7E, 0x57, 0x1D, 0x03, 0x7E, 0x57, 0x1D, 0x03, 314 0x7E, 0x57, 0x1D, 0x03, 0x7E, 0x57, 0x1D, 0x03,
311 0x7E, 0x57, 0x1D, 0x04, 0x7E, 0x57, 0x1D, 0x04, // key2 315 0x7E, 0x57, 0x1D, 0x04, 0x7E, 0x57, 0x1D, 0x04, // key2
312 0x7E, 0x57, 0x1D, 0x04, 0x7E, 0x57, 0x1D, 0x04, 316 0x7E, 0x57, 0x1D, 0x04, 0x7E, 0x57, 0x1D, 0x04,
313 0x00, 0x00, 0x00, 0x00 // datasize 317 0x00, 0x00, 0x00, 0x00 // datasize
314 }; 318 };
315 319
316 std::vector<std::vector<uint8>> key_ids; 320 KeyIdList key_ids;
317 EXPECT_TRUE(ValidatePsshInput(data, arraysize(data))); 321 EXPECT_TRUE(
318 EXPECT_TRUE(GetKeyIdsForCommonSystemId(data, arraysize(data), &key_ids)); 322 ValidatePsshInput(std::vector<uint8_t>(data, data + arraysize(data))));
323 EXPECT_TRUE(GetKeyIdsForCommonSystemId(
324 std::vector<uint8_t>(data, data + arraysize(data)), &key_ids));
319 EXPECT_EQ(2u, key_ids.size()); 325 EXPECT_EQ(2u, key_ids.size());
320 } 326 }
321 327
322 TEST_F(CencUtilsTest, NoSize) { 328 TEST_F(CencUtilsTest, NoSize) {
323 const uint8 data[] = { 329 const uint8_t data[] = {
324 0x00, 0x00, 0x00, 0x00, // size = 0 330 0x00, 0x00, 0x00, 0x00, // size = 0
325 0x70, 0x73, 0x73, 0x68, // 'pssh' 331 0x70, 0x73, 0x73, 0x68, // 'pssh'
326 0x01, // version 332 0x01, // version
327 0x00, 0x00, 0x00, // flags 333 0x00, 0x00, 0x00, // flags
328 0x10, 0x77, 0xEF, 0xEC, 0xC0, 0xB2, 0x4D, 0x02, // SystemID 334 0x10, 0x77, 0xEF, 0xEC, 0xC0, 0xB2, 0x4D, 0x02, // SystemID
329 0xAC, 0xE3, 0x3C, 0x1E, 0x52, 0xE2, 0xFB, 0x4B, 335 0xAC, 0xE3, 0x3C, 0x1E, 0x52, 0xE2, 0xFB, 0x4B,
330 0x00, 0x00, 0x00, 0x02, // key count 336 0x00, 0x00, 0x00, 0x02, // key count
331 0x7E, 0x57, 0x1D, 0x03, 0x7E, 0x57, 0x1D, 0x03, // key1 337 0x7E, 0x57, 0x1D, 0x03, 0x7E, 0x57, 0x1D, 0x03, // key1
332 0x7E, 0x57, 0x1D, 0x03, 0x7E, 0x57, 0x1D, 0x03, 338 0x7E, 0x57, 0x1D, 0x03, 0x7E, 0x57, 0x1D, 0x03,
333 0x7E, 0x57, 0x1D, 0x04, 0x7E, 0x57, 0x1D, 0x04, // key2 339 0x7E, 0x57, 0x1D, 0x04, 0x7E, 0x57, 0x1D, 0x04, // key2
334 0x7E, 0x57, 0x1D, 0x04, 0x7E, 0x57, 0x1D, 0x04, 340 0x7E, 0x57, 0x1D, 0x04, 0x7E, 0x57, 0x1D, 0x04,
335 0x00, 0x00, 0x00, 0x00 // datasize 341 0x00, 0x00, 0x00, 0x00 // datasize
336 }; 342 };
337 343
338 std::vector<std::vector<uint8>> key_ids; 344 KeyIdList key_ids;
339 EXPECT_TRUE(ValidatePsshInput(data, arraysize(data))); 345 EXPECT_TRUE(
340 EXPECT_TRUE(GetKeyIdsForCommonSystemId(data, arraysize(data), &key_ids)); 346 ValidatePsshInput(std::vector<uint8_t>(data, data + arraysize(data))));
347 EXPECT_TRUE(GetKeyIdsForCommonSystemId(
348 std::vector<uint8_t>(data, data + arraysize(data)), &key_ids));
341 EXPECT_EQ(2u, key_ids.size()); 349 EXPECT_EQ(2u, key_ids.size());
342 } 350 }
343 351
344 TEST_F(CencUtilsTest, HugeSize) { 352 TEST_F(CencUtilsTest, HugeSize) {
345 const uint8 data[] = { 353 const uint8_t data[] = {
346 0x00, 0x00, 0x00, 0x01, // size = 1 354 0x00, 0x00, 0x00, 0x01, // size = 1
347 0x70, 0x73, 0x73, 0x68, // 'pssh' 355 0x70, 0x73, 0x73, 0x68, // 'pssh'
348 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // longsize = big 356 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // longsize = big
349 0x01, // version 357 0x01, // version
350 0x00, 0x00, 0x00, // flags 358 0x00, 0x00, 0x00, // flags
351 0x10, 0x77, 0xEF, 0xEC, 0xC0, 0xB2, 0x4D, 0x02, // SystemID 359 0x10, 0x77, 0xEF, 0xEC, 0xC0, 0xB2, 0x4D, 0x02, // SystemID
352 0xAC, 0xE3, 0x3C, 0x1E, 0x52, 0xE2, 0xFB, 0x4B, 360 0xAC, 0xE3, 0x3C, 0x1E, 0x52, 0xE2, 0xFB, 0x4B,
353 0x00, 0x00, 0x00, 0x02, // key count 361 0x00, 0x00, 0x00, 0x02, // key count
354 0x7E, 0x57, 0x1D, 0x03, 0x7E, 0x57, 0x1D, 0x03, // key1 362 0x7E, 0x57, 0x1D, 0x03, 0x7E, 0x57, 0x1D, 0x03, // key1
355 0x7E, 0x57, 0x1D, 0x03, 0x7E, 0x57, 0x1D, 0x03, 363 0x7E, 0x57, 0x1D, 0x03, 0x7E, 0x57, 0x1D, 0x03,
356 0x7E, 0x57, 0x1D, 0x04, 0x7E, 0x57, 0x1D, 0x04, // key2 364 0x7E, 0x57, 0x1D, 0x04, 0x7E, 0x57, 0x1D, 0x04, // key2
357 0x7E, 0x57, 0x1D, 0x04, 0x7E, 0x57, 0x1D, 0x04, 365 0x7E, 0x57, 0x1D, 0x04, 0x7E, 0x57, 0x1D, 0x04,
358 0x00, 0x00, 0x00, 0x00 // datasize 366 0x00, 0x00, 0x00, 0x00 // datasize
359 }; 367 };
360 368
361 std::vector<std::vector<uint8>> key_ids; 369 KeyIdList key_ids;
362 EXPECT_FALSE(ValidatePsshInput(data, arraysize(data))); 370 EXPECT_FALSE(
363 EXPECT_FALSE(GetKeyIdsForCommonSystemId(data, arraysize(data), &key_ids)); 371 ValidatePsshInput(std::vector<uint8_t>(data, data + arraysize(data))));
372 EXPECT_FALSE(GetKeyIdsForCommonSystemId(
373 std::vector<uint8_t>(data, data + arraysize(data)), &key_ids));
364 } 374 }
365 375
366 } // namespace media 376 } // namespace media
OLDNEW
« no previous file with comments | « media/cdm/cenc_utils.cc ('k') | media/cdm/ppapi/cdm_file_io_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698