Chromium Code Reviews| Index: media/cdm/json_web_key_unittest.cc |
| diff --git a/media/cdm/json_web_key_unittest.cc b/media/cdm/json_web_key_unittest.cc |
| index 57a57c290ca7bb5ee1157f62bf2f31ba0da92052..0eccc486a0dc43127074b995019eb1dedb9996d3 100644 |
| --- a/media/cdm/json_web_key_unittest.cc |
| +++ b/media/cdm/json_web_key_unittest.cc |
| @@ -4,6 +4,7 @@ |
| #include "media/cdm/json_web_key.h" |
| +#include "base/base64.h" |
| #include "base/logging.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| @@ -125,7 +126,7 @@ TEST_F(JSONWebKeyTest, ExtractValidJWKKeys) { |
| " \"kty\": \"oct\"," |
| " \"alg\": \"A128KW\"," |
| " \"kid\": \"JCUmJygpKissLS4vMA\"," |
| - " \"k\":\"MTIzNDU2Nzg5Ojs8PT4/QA\"" |
| + " \"k\":\"MTIzNDU2Nzg5Ojs8PT4_QA\"" |
| " }" |
| " ]" |
| "}"; |
| @@ -152,7 +153,7 @@ TEST_F(JSONWebKeyTest, ExtractValidJWKKeys) { |
| " \"kty\": \"oct\"," |
| " \"alg\": \"A128KW\"," |
| " \"kid\": \"JCUmJygpKissLS4vMA\"," |
| - " \"k\":\"MTIzNDU2Nzg5Ojs8PT4/QA\"" |
| + " \"k\":\"MTIzNDU2Nzg5Ojs8PT4_QA\"" |
| " }" |
| " ]" |
| "}"; |
| @@ -471,5 +472,27 @@ TEST_F(JSONWebKeyTest, ExtractLicense) { |
| ExtractKeyFromLicenseAndExpect("{\"kids\":[\"!@#$%^&*()\"]}", false, NULL, 0); |
| } |
| +TEST_F(JSONWebKeyTest, Base64UrlEncoding) { |
|
ddorwin
2015/02/19 04:45:56
Ideally, we'd have both special characters. We can
jrummell
2015/02/19 18:20:07
Found one.
|
| + const uint8 data1[] = { 0x7E, 0x57, 0x1D, 0x03, 0x7E, 0x57, 0x1D, 0x03, |
| + 0x7E, 0x57, 0x1D, 0x03, 0x7E, 0x57, 0x1D, 0x03 }; |
| + |
| + // Verify that |data1| contains invalid base64url characters when converted |
| + // to base64. |
| + std::string encoded_text; |
| + base::Base64Encode( |
| + std::string(reinterpret_cast<const char*>(&data1[0]), arraysize(data1)), |
| + &encoded_text); |
| + EXPECT_NE(encoded_text.find('+'), std::string::npos); |
|
ddorwin
2015/02/19 04:45:56
Does the encode give us padding? If so, we can che
jrummell
2015/02/19 18:20:07
Added extra case.
|
| + EXPECT_EQ(encoded_text.find('-'), std::string::npos); |
| + |
| + CreateLicenseAndExpect( |
| + data1, arraysize(data1), MediaKeys::TEMPORARY_SESSION, |
| + "{\"kids\":[\"flcdA35XHQN-Vx0DflcdAw\"],\"type\":\"temporary\"}"); |
| + |
| + ExtractKeyFromLicenseAndExpect( |
| + "{\"kids\":[\"flcdA35XHQN-Vx0DflcdAw\"],\"type\":\"temporary\"}", true, |
| + data1, arraysize(data1)); |
| +} |
| + |
| } // namespace media |