OLD | NEW |
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 "chromecast/media/cdm/chromecast_init_data.h" | 5 #include "chromecast/media/cdm/chromecast_init_data.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
10 | 10 |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
55 InitDataMessageType::CUSTOM_DATA, &init_data)); | 55 InitDataMessageType::CUSTOM_DATA, &init_data)); |
56 | 56 |
57 EXPECT_EQ(InitDataMessageType::CUSTOM_DATA, init_data.type); | 57 EXPECT_EQ(InitDataMessageType::CUSTOM_DATA, init_data.type); |
58 EXPECT_EQ(16u, init_data.data.size()); | 58 EXPECT_EQ(16u, init_data.data.size()); |
59 EXPECT_EQ("Test custom data", | 59 EXPECT_EQ("Test custom data", |
60 std::string(init_data.data.begin(), init_data.data.end())); | 60 std::string(init_data.data.begin(), init_data.data.end())); |
61 } | 61 } |
62 | 62 |
63 TEST(ChromecastInitDataTest, TestPsshCustomData) { | 63 TEST(ChromecastInitDataTest, TestPsshCustomData) { |
64 const uint8_t kInitDataBlob[] = { | 64 const uint8_t kInitDataBlob[] = { |
65 0x00, 0x00, 0x00, 0x2E, // length | 65 0x00, 0x00, 0x00, 0x32, // length |
66 0x70, 0x73, 0x73, 0x68, // 'pssh' | 66 0x70, 0x73, 0x73, 0x68, // 'pssh' |
67 0x00, 0x00, 0x00, 0x00, // version / flags | 67 0x00, 0x00, 0x00, 0x00, // version / flags |
68 0x2B, 0xF8, 0x66, 0x80, 0xC6, 0xE5, 0x4E, 0x24, 0xBE, | 68 0x2B, 0xF8, 0x66, 0x80, 0xC6, 0xE5, 0x4E, 0x24, 0xBE, |
69 0x23, 0x0F, 0x81, 0x5A, 0x60, 0x6E, 0xB2, // UUID | 69 0x23, 0x0F, 0x81, 0x5A, 0x60, 0x6E, 0xB2, // UUID |
| 70 0x00, 0x00, 0x00, 0x12, // data size |
70 0x00, 0x01, // message type (CUSTOM_DATA) | 71 0x00, 0x01, // message type (CUSTOM_DATA) |
71 0x54, 0x65, 0x73, 0x74, 0x20, 0x63, 0x75, 0x73, 0x74, | 72 0x54, 0x65, 0x73, 0x74, 0x20, 0x63, 0x75, 0x73, 0x74, |
72 0x6F, 0x6D, 0x20, 0x64, 0x61, 0x74, 0x61 // 'Test custom data' | 73 0x6F, 0x6D, 0x20, 0x64, 0x61, 0x74, 0x61 // 'Test custom data' |
73 }; | 74 }; |
74 | 75 |
75 ChromecastInitData init_data; | 76 ChromecastInitData init_data; |
76 EXPECT_TRUE(FindChromecastInitData( | 77 EXPECT_TRUE(FindChromecastInitData( |
77 std::vector<uint8_t>(kInitDataBlob, | 78 std::vector<uint8_t>(kInitDataBlob, |
78 kInitDataBlob + sizeof(kInitDataBlob)), | 79 kInitDataBlob + sizeof(kInitDataBlob)), |
79 InitDataMessageType::CUSTOM_DATA, &init_data)); | 80 InitDataMessageType::CUSTOM_DATA, &init_data)); |
80 | 81 |
81 EXPECT_EQ(InitDataMessageType::CUSTOM_DATA, init_data.type); | 82 EXPECT_EQ(InitDataMessageType::CUSTOM_DATA, init_data.type); |
82 EXPECT_EQ(16u, init_data.data.size()); | 83 EXPECT_EQ(16u, init_data.data.size()); |
83 EXPECT_EQ("Test custom data", | 84 EXPECT_EQ("Test custom data", |
84 std::string(init_data.data.begin(), init_data.data.end())); | 85 std::string(init_data.data.begin(), init_data.data.end())); |
85 } | 86 } |
86 | 87 |
| 88 TEST(ChromecastInitDataTest, TestPsshCustomData_NoSize) { |
| 89 const uint8_t kInitDataBlob[] = { |
| 90 0x00, 0x00, 0x00, 0x2E, // length |
| 91 0x70, 0x73, 0x73, 0x68, // 'pssh' |
| 92 0x00, 0x00, 0x00, 0x00, // version / flags |
| 93 0x2B, 0xF8, 0x66, 0x80, 0xC6, 0xE5, 0x4E, 0x24, 0xBE, |
| 94 0x23, 0x0F, 0x81, 0x5A, 0x60, 0x6E, 0xB2, // UUID |
| 95 // [missing size should be present here]. |
| 96 0x00, 0x01, // message type (CUSTOM_DATA) |
| 97 0x54, 0x65, 0x73, 0x74, 0x20, 0x63, 0x75, 0x73, 0x74, |
| 98 0x6F, 0x6D, 0x20, 0x64, 0x61, 0x74, 0x61 // 'Test custom data' |
| 99 }; |
| 100 |
| 101 ChromecastInitData init_data; |
| 102 EXPECT_FALSE(FindChromecastInitData( |
| 103 std::vector<uint8_t>(kInitDataBlob, |
| 104 kInitDataBlob + sizeof(kInitDataBlob)), |
| 105 InitDataMessageType::CUSTOM_DATA, &init_data)); |
| 106 } |
| 107 |
87 TEST(ChromecastInitDataTest, TestPsshSecureStop) { | 108 TEST(ChromecastInitDataTest, TestPsshSecureStop) { |
88 const uint8_t kInitDataBlob[] = { | 109 const uint8_t kInitDataBlob[] = { |
89 0x00, 0x00, 0x00, 0x1E, // length | 110 0x00, 0x00, 0x00, 0x22, // length |
90 0x70, 0x73, 0x73, 0x68, // 'pssh' | 111 0x70, 0x73, 0x73, 0x68, // 'pssh' |
91 0x00, 0x00, 0x00, 0x00, // version / flags | 112 0x00, 0x00, 0x00, 0x00, // version / flags |
92 0x2B, 0xF8, 0x66, 0x80, 0xC6, 0xE5, 0x4E, 0x24, | 113 0x2B, 0xF8, 0x66, 0x80, 0xC6, 0xE5, 0x4E, 0x24, |
93 0xBE, 0x23, 0x0F, 0x81, 0x5A, 0x60, 0x6E, 0xB2, // UUID | 114 0xBE, 0x23, 0x0F, 0x81, 0x5A, 0x60, 0x6E, 0xB2, // UUID |
| 115 0x00, 0x00, 0x00, 0x02, // data size |
94 0x00, 0x02, // message type (ENABLE_SECURE_STOP) | 116 0x00, 0x02, // message type (ENABLE_SECURE_STOP) |
95 }; | 117 }; |
96 | 118 |
97 ChromecastInitData init_data; | 119 ChromecastInitData init_data; |
98 EXPECT_TRUE(FindChromecastInitData( | 120 EXPECT_TRUE(FindChromecastInitData( |
99 std::vector<uint8_t>(kInitDataBlob, | 121 std::vector<uint8_t>(kInitDataBlob, |
100 kInitDataBlob + sizeof(kInitDataBlob)), | 122 kInitDataBlob + sizeof(kInitDataBlob)), |
101 InitDataMessageType::ENABLE_SECURE_STOP, &init_data)); | 123 InitDataMessageType::ENABLE_SECURE_STOP, &init_data)); |
102 | 124 |
103 EXPECT_EQ(InitDataMessageType::ENABLE_SECURE_STOP, init_data.type); | 125 EXPECT_EQ(InitDataMessageType::ENABLE_SECURE_STOP, init_data.type); |
104 EXPECT_EQ(0u, init_data.data.size()); | 126 EXPECT_EQ(0u, init_data.data.size()); |
105 } | 127 } |
106 | 128 |
| 129 TEST(ChromecastInitDataTest, TestPsshSecureStop_NoSize) { |
| 130 const uint8_t kInitDataBlob[] = { |
| 131 0x00, 0x00, 0x00, 0x1E, // length |
| 132 0x70, 0x73, 0x73, 0x68, // 'pssh' |
| 133 0x00, 0x00, 0x00, 0x00, // version / flags |
| 134 0x2B, 0xF8, 0x66, 0x80, 0xC6, 0xE5, 0x4E, 0x24, |
| 135 0xBE, 0x23, 0x0F, 0x81, 0x5A, 0x60, 0x6E, 0xB2, // UUID |
| 136 // [missing size should be present here]. |
| 137 0x00, 0x02, // message type (ENABLE_SECURE_STOP) |
| 138 }; |
| 139 |
| 140 ChromecastInitData init_data; |
| 141 EXPECT_FALSE(FindChromecastInitData( |
| 142 std::vector<uint8_t>(kInitDataBlob, |
| 143 kInitDataBlob + sizeof(kInitDataBlob)), |
| 144 InitDataMessageType::ENABLE_SECURE_STOP, &init_data)); |
| 145 } |
| 146 |
107 } // namespace media | 147 } // namespace media |
108 } // namespace chromecast | 148 } // namespace chromecast |
OLD | NEW |