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

Side by Side Diff: chrome/browser/browsing_data/browsing_data_channel_id_helper_unittest.cc

Issue 356713005: Rename ServerBoundCert => ChannelID to reflect the current name (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix cookies_list.js Created 6 years, 5 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2012 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/browser/browsing_data/browsing_data_channel_id_helper.h"
6
7 #include "base/bind.h"
8 #include "base/run_loop.h"
9 #include "chrome/test/base/testing_profile.h"
10 #include "content/public/browser/browser_thread.h"
11 #include "content/public/test/test_browser_thread_bundle.h"
12 #include "net/ssl/channel_id_service.h"
13 #include "net/url_request/url_request_context.h"
14 #include "net/url_request/url_request_context_getter.h"
15 #include "testing/gtest/include/gtest/gtest.h"
16
17 using content::BrowserThread;
18
19 class BrowsingDataChannelIDHelperTest
20 : public testing::Test,
21 public net::SSLConfigService::Observer {
22 public:
23 BrowsingDataChannelIDHelperTest() : ssl_config_changed_count_(0) {
24 }
25
26 virtual void SetUp() OVERRIDE {
27 testing_profile_.reset(new TestingProfile());
28
29 testing_profile_->GetSSLConfigService()->AddObserver(this);
30 }
31
32 virtual void TearDown() OVERRIDE {
33 testing_profile_->GetSSLConfigService()->RemoveObserver(this);
34 }
35
36 void CreateChannelIDsForTest() {
37 net::URLRequestContext* context =
38 testing_profile_->GetRequestContext()->GetURLRequestContext();
39 net::ChannelIDStore* channel_id_store =
40 context->channel_id_service()->GetChannelIDStore();
41 channel_id_store->SetChannelID("https://www.google.com:443",
42 base::Time(), base::Time(),
43 "key", "cert");
44 channel_id_store->SetChannelID("https://www.youtube.com:443",
45 base::Time(), base::Time(),
46 "key", "cert");
47 }
48
49 void FetchCallback(
50 const net::ChannelIDStore::ChannelIDList& channel_ids) {
51 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
52 channel_id_list_ = channel_ids;
53 }
54
55 // net::SSLConfigService::Observer implementation:
56 virtual void OnSSLConfigChanged() OVERRIDE {
57 ssl_config_changed_count_++;
58 }
59
60 protected:
61 content::TestBrowserThreadBundle thread_bundle_;
62 scoped_ptr<TestingProfile> testing_profile_;
63
64 net::ChannelIDStore::ChannelIDList channel_id_list_;
65
66 int ssl_config_changed_count_;
67 };
68
69 TEST_F(BrowsingDataChannelIDHelperTest, FetchData) {
70 CreateChannelIDsForTest();
71 scoped_refptr<BrowsingDataChannelIDHelper> helper(
72 BrowsingDataChannelIDHelper::Create(testing_profile_.get()));
73
74 helper->StartFetching(
75 base::Bind(&BrowsingDataChannelIDHelperTest::FetchCallback,
76 base::Unretained(this)));
77
78 // Blocks until BrowsingDataChannelIDHelperTest::FetchCallback is
79 // notified.
80 base::RunLoop().RunUntilIdle();
81
82 ASSERT_EQ(2UL, channel_id_list_.size());
83 net::ChannelIDStore::ChannelIDList::const_iterator it =
84 channel_id_list_.begin();
85
86 // Correct because fetching channel_id_list_ will get them out in the
87 // same order CreateChannelIDsForTest put them in.
88 ASSERT_TRUE(it != channel_id_list_.end());
89 EXPECT_EQ("https://www.google.com:443", it->server_identifier());
90
91 ASSERT_TRUE(++it != channel_id_list_.end());
92 EXPECT_EQ("https://www.youtube.com:443", it->server_identifier());
93
94 ASSERT_TRUE(++it == channel_id_list_.end());
95
96 EXPECT_EQ(0, ssl_config_changed_count_);
97 }
98
99 TEST_F(BrowsingDataChannelIDHelperTest, DeleteChannelID) {
100 CreateChannelIDsForTest();
101 scoped_refptr<BrowsingDataChannelIDHelper> helper(
102 BrowsingDataChannelIDHelper::Create(testing_profile_.get()));
103
104 helper->DeleteChannelID("https://www.google.com:443");
105
106 helper->StartFetching(
107 base::Bind(&BrowsingDataChannelIDHelperTest::FetchCallback,
108 base::Unretained(this)));
109 base::RunLoop().RunUntilIdle();
110
111 EXPECT_EQ(1, ssl_config_changed_count_);
112 ASSERT_EQ(1UL, channel_id_list_.size());
113 net::ChannelIDStore::ChannelIDList::const_iterator it =
114 channel_id_list_.begin();
115
116 ASSERT_TRUE(it != channel_id_list_.end());
117 EXPECT_EQ("https://www.youtube.com:443", it->server_identifier());
118
119 ASSERT_TRUE(++it == channel_id_list_.end());
120
121 helper->DeleteChannelID("https://www.youtube.com:443");
122
123 helper->StartFetching(
124 base::Bind(&BrowsingDataChannelIDHelperTest::FetchCallback,
125 base::Unretained(this)));
126 base::RunLoop().RunUntilIdle();
127
128 EXPECT_EQ(2, ssl_config_changed_count_);
129 ASSERT_EQ(0UL, channel_id_list_.size());
130 }
131
132 TEST_F(BrowsingDataChannelIDHelperTest, CannedEmpty) {
133 std::string origin = "https://www.google.com";
134
135 scoped_refptr<CannedBrowsingDataChannelIDHelper> helper(
136 new CannedBrowsingDataChannelIDHelper());
137
138 ASSERT_TRUE(helper->empty());
139 helper->AddChannelID(net::ChannelIDStore::ChannelID(
140 origin, base::Time(), base::Time(), "key", "cert"));
141 ASSERT_FALSE(helper->empty());
142 helper->Reset();
143 ASSERT_TRUE(helper->empty());
144 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698