| Index: extensions/browser/api/cast_channel/cast_auth_util_unittest.cc
|
| diff --git a/extensions/browser/api/cast_channel/cast_auth_util_unittest.cc b/extensions/browser/api/cast_channel/cast_auth_util_unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..1e67d09a0c54c45cabde659241b0c7c6246cde21
|
| --- /dev/null
|
| +++ b/extensions/browser/api/cast_channel/cast_auth_util_unittest.cc
|
| @@ -0,0 +1,186 @@
|
| +// Copyright 2014 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 "extensions/browser/api/cast_channel/cast_auth_util.h"
|
| +
|
| +#include <string>
|
| +
|
| +#include "base/base64.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +
|
| +namespace extensions {
|
| +
|
| +namespace core_api {
|
| +
|
| +namespace cast_channel {
|
| +
|
| +namespace {
|
| +
|
| +static const net::SHA256HashValue kFingerprintValid1 = {{0x52,
|
| + 0x9D,
|
| + 0x9C,
|
| + 0xD6,
|
| + 0x7F,
|
| + 0xE5,
|
| + 0xEB,
|
| + 0x69,
|
| + 0x8E,
|
| + 0x70,
|
| + 0xDD,
|
| + 0x26,
|
| + 0xD7,
|
| + 0xD8,
|
| + 0xF1,
|
| + 0x26,
|
| + 0x59,
|
| + 0xF1,
|
| + 0xE6,
|
| + 0xE5,
|
| + 0x23,
|
| + 0x48,
|
| + 0xBF,
|
| + 0x6A,
|
| + 0x5C,
|
| + 0xF7,
|
| + 0x16,
|
| + 0xE1,
|
| + 0x3F,
|
| + 0x41,
|
| + 0x0E,
|
| + 0x73}};
|
| +
|
| +static const net::SHA256HashValue kFingerprintValid2 = {{0xA2,
|
| + 0x48,
|
| + 0xC2,
|
| + 0xE8,
|
| + 0x54,
|
| + 0xE6,
|
| + 0x56,
|
| + 0xA5,
|
| + 0x6D,
|
| + 0xE8,
|
| + 0x23,
|
| + 0x1F,
|
| + 0x1E,
|
| + 0xE1,
|
| + 0x75,
|
| + 0x6F,
|
| + 0xDB,
|
| + 0xE4,
|
| + 0x07,
|
| + 0xF9,
|
| + 0xFE,
|
| + 0xD4,
|
| + 0x65,
|
| + 0x0D,
|
| + 0x60,
|
| + 0xCC,
|
| + 0x5A,
|
| + 0xCB,
|
| + 0x65,
|
| + 0x11,
|
| + 0xC7,
|
| + 0x20}};
|
| +
|
| +static const net::SHA256HashValue kFingerprintInvalid = {{0x00,
|
| + 0x9D,
|
| + 0x9C,
|
| + 0xD6,
|
| + 0x7F,
|
| + 0xE5,
|
| + 0xEB,
|
| + 0x69,
|
| + 0x8E,
|
| + 0x70,
|
| + 0xDD,
|
| + 0x26,
|
| + 0xD7,
|
| + 0xD8,
|
| + 0xF1,
|
| + 0x26,
|
| + 0x59,
|
| + 0xF1,
|
| + 0xE6,
|
| + 0xE5,
|
| + 0x23,
|
| + 0x48,
|
| + 0xBF,
|
| + 0x6A,
|
| + 0x5C,
|
| + 0xF7,
|
| + 0x16,
|
| + 0xE1,
|
| + 0x3F,
|
| + 0x41,
|
| + 0x0E,
|
| + 0x73}};
|
| +
|
| +} // namespace
|
| +
|
| +class CastChannelAuthorityKeysTest : public testing::Test {
|
| + public:
|
| + CastChannelAuthorityKeysTest() {}
|
| + virtual ~CastChannelAuthorityKeysTest() {}
|
| +
|
| + protected:
|
| + void ExpectKeysLoaded();
|
| + AuthorityKeysStore authority_keys_store_;
|
| +};
|
| +
|
| +void CastChannelAuthorityKeysTest::ExpectKeysLoaded() {
|
| + const base::StringPiece* key = authority_keys_store_.GetDefaultICAPublicKey();
|
| + EXPECT_NE(static_cast<base::StringPiece*>(NULL), key);
|
| +
|
| + key =
|
| + authority_keys_store_.GetICAPublicKeyFromFingerprint(kFingerprintValid1);
|
| + EXPECT_NE(static_cast<base::StringPiece*>(NULL), key);
|
| +
|
| + key =
|
| + authority_keys_store_.GetICAPublicKeyFromFingerprint(kFingerprintInvalid);
|
| + EXPECT_EQ(static_cast<base::StringPiece*>(NULL), key);
|
| +}
|
| +
|
| +TEST_F(CastChannelAuthorityKeysTest, TestDefaultKeys) {
|
| + ExpectKeysLoaded();
|
| +}
|
| +
|
| +TEST_F(CastChannelAuthorityKeysTest, TestInvalidProtobuf) {
|
| + std::string keys = "test";
|
| + EXPECT_EQ(authority_keys_store_.Load(keys), false);
|
| +
|
| + const base::StringPiece* key = authority_keys_store_.GetDefaultICAPublicKey();
|
| + EXPECT_EQ(static_cast<base::StringPiece*>(NULL), key);
|
| +}
|
| +
|
| +TEST_F(CastChannelAuthorityKeysTest, TestValidProtobuf) {
|
| + std::string keys =
|
| + "CrMCCiBSnZzWf+XraY5w3SbX2PEmWfHm5SNIv2pc9xbhP0EOcxKOAjCCAQoCggEBALwigL"
|
| + "2A9johADuudl41fz3DZFxVlIY0LwWHKM33aYwXs1CnuIL638dDLdZ+q6BvtxNygKRHFcEg"
|
| + "mVDN7BRiCVukmM3SQbY2Tv/oLjIwSoGoQqNsmzNuyrL1U2bgJ1OGGoUepzk/SneO+1RmZv"
|
| + "tYVMBeOcf1UAYL4IrUzuFqVR+LFwDmaaMn5gglaTwSnY0FLNYuojHetFJQ1iBJ3nGg+a0g"
|
| + "QBLx3SXr1ea4NvTWj3/KQ9zXEFvmP1GKhbPz//YDLcsjT5ytGOeTBYysUpr3TOmZer5ufk"
|
| + "0K48YcqZP6OqWRXRy9ZuvMYNyGdMrP+JIcmH1X+mFHnquAt+RIgCqSxRsCAwEAAQqzAgog"
|
| + "okjC6FTmVqVt6CMfHuF1b9vkB/n+1GUNYMxay2URxyASjgIwggEKAoIBAQCwDl4HOt+kX2"
|
| + "j3Icdk27Z27+6Lk/j2G4jhk7cX8BUeflJVdzwCjXtKbNO91sGccsizFc8RwfVGxNUgR/sw"
|
| + "9ORhDGjwXqs3jpvhvIHDcIp41oM0MpwZYuvknO3jZGxBHZzSi0hMI5CVs+dS6gVXzGCzuh"
|
| + "TkugA55EZVdM5ajnpnI9poCvrEhB60xaGianMfbsguL5qeqLEO/Yemj009SwXVNVp0TbyO"
|
| + "gkSW9LWVYE6l3yc9QVwHo7Q1WrOe8gUkys0xWg0mTNTT/VDhNOlMgVgwssd63YGJptQ6OI"
|
| + "QDtzSedz//eAdbmcGyHzVWbjo8DCXhV/aKfknAzIMRNeeRbS5lAgMBAAE=";
|
| +
|
| + std::string decoded_keys;
|
| + EXPECT_EQ(base::Base64Decode(keys, &decoded_keys), true);
|
| + EXPECT_EQ(authority_keys_store_.Load(decoded_keys), true);
|
| +
|
| + ExpectKeysLoaded();
|
| +
|
| + const base::StringPiece* key =
|
| + authority_keys_store_.GetICAPublicKeyFromFingerprint(kFingerprintValid2);
|
| + EXPECT_NE(static_cast<base::StringPiece*>(NULL), key);
|
| +}
|
| +
|
| +} // namespace cast_channel
|
| +
|
| +} // namespace core_api
|
| +
|
| +} // namespace extensions
|
|
|