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

Side by Side Diff: chrome/renderer/origin_trials/origin_trial_key_manager_unittest.cc

Issue 1737693002: Allow command-line arguments to override EF public key (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix use-after-free due to StringPiece shared state Created 4 years, 9 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
OLDNEW
(Empty)
1 // Copyright (c) 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/renderer/origin_trials/origin_trial_key_manager.h"
6
7 #include "base/macros.h"
8 #include "base/memory/scoped_ptr.h"
9 #include "base/strings/string_piece.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11
12 const uint8_t kTestPublicKey[] = {
13 0x75, 0x10, 0xac, 0xf9, 0x3a, 0x1c, 0xb8, 0xa9, 0x28, 0x70, 0xd2,
14 0x9a, 0xd0, 0x0b, 0x59, 0xe1, 0xac, 0x2b, 0xb7, 0xd5, 0xca, 0x1f,
15 0x64, 0x90, 0x08, 0x8e, 0xa8, 0xe0, 0x56, 0x3a, 0x04, 0xd0,
16 };
17
18 // Base64 encoding of the above sample public key
19 const char kTestPublicKeyString[] =
20 "dRCs+TocuKkocNKa0AtZ4awrt9XKH2SQCI6o4FY6BNA=";
21 const char kBadEncodingPublicKeyString[] = "Not even base64!";
22 // Base64-encoded, 31 bytes long
23 const char kTooShortPublicKeyString[] =
24 "dRCs+TocuKkocNKa0AtZ4awrt9XKH2SQCI6o4FY6BN==";
25 // Base64-encoded, 33 bytes long
26 const char kTooLongPublicKeyString[] =
27 "dRCs+TocuKkocNKa0AtZ4awrt9XKH2SQCI6o4FY6BNAA";
28
29 class OriginTrialKeyManagerTest : public testing::Test {
30 protected:
31 OriginTrialKeyManagerTest()
32 : manager_(make_scoped_ptr(new OriginTrialKeyManager())),
33 default_key_(manager_->GetPublicKey().as_string()),
34 test_key_(std::string(reinterpret_cast<const char*>(kTestPublicKey),
35 arraysize(kTestPublicKey))) {}
36 OriginTrialKeyManager* manager() { return manager_.get(); }
37 base::StringPiece default_key() { return default_key_; }
38 base::StringPiece test_key() { return test_key_; }
39
40 private:
41 scoped_ptr<OriginTrialKeyManager> manager_;
42 std::string default_key_;
43 std::string test_key_;
44 };
45
46 TEST_F(OriginTrialKeyManagerTest, DefaultConstructor) {
47 // We don't specify here what the key should be, but make sure that it is
48 // returned, is valid, and is consistent.
49 base::StringPiece key = manager()->GetPublicKey();
50 EXPECT_EQ(32UL, key.size());
51 EXPECT_EQ(default_key(), key);
52 }
53
54 TEST_F(OriginTrialKeyManagerTest, DefaultKeyIsConsistent) {
55 OriginTrialKeyManager manager2;
56 EXPECT_EQ(manager()->GetPublicKey(), manager2.GetPublicKey());
57 }
58
59 TEST_F(OriginTrialKeyManagerTest, OverridePublicKey) {
60 EXPECT_TRUE(manager()->SetPublicKeyFromASCIIString(kTestPublicKeyString));
61 EXPECT_NE(default_key(), manager()->GetPublicKey());
62 EXPECT_EQ(test_key(), manager()->GetPublicKey());
63 }
64
65 TEST_F(OriginTrialKeyManagerTest, OverrideKeyNotBase64) {
66 EXPECT_FALSE(
67 manager()->SetPublicKeyFromASCIIString(kBadEncodingPublicKeyString));
68 EXPECT_EQ(default_key(), manager()->GetPublicKey());
69 }
70
71 TEST_F(OriginTrialKeyManagerTest, OverrideKeyTooShort) {
72 EXPECT_FALSE(
73 manager()->SetPublicKeyFromASCIIString(kTooShortPublicKeyString));
74 EXPECT_EQ(default_key(), manager()->GetPublicKey());
75 }
76
77 TEST_F(OriginTrialKeyManagerTest, OverrideKeyTooLong) {
78 EXPECT_FALSE(manager()->SetPublicKeyFromASCIIString(kTooLongPublicKeyString));
79 EXPECT_EQ(default_key(), manager()->GetPublicKey());
80 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698