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

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

Issue 17127002: Correctly integrate StoragePartition into TestingProfile. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix InstantNTP test. Created 7 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
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 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 "chrome/browser/browsing_data/browsing_data_cookie_helper.h" 5 #include "chrome/browser/browsing_data/browsing_data_cookie_helper.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/message_loop/message_loop.h" 8 #include "base/run_loop.h"
9 #include "chrome/test/base/testing_profile.h" 9 #include "chrome/test/base/testing_profile.h"
10 #include "content/public/test/test_browser_thread.h"
11 #include "content/public/test/test_browser_thread_bundle.h" 10 #include "content/public/test/test_browser_thread_bundle.h"
12 #include "net/cookies/canonical_cookie.h" 11 #include "net/cookies/canonical_cookie.h"
13 #include "net/cookies/parsed_cookie.h" 12 #include "net/cookies/parsed_cookie.h"
14 #include "net/url_request/url_request_context_getter.h" 13 #include "net/url_request/url_request_context_getter.h"
15 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
16 15
17 using content::BrowserThread;
18
19 namespace { 16 namespace {
20 17
21 class BrowsingDataCookieHelperTest : public testing::Test { 18 class BrowsingDataCookieHelperTest : public testing::Test {
22 public: 19 public:
23 void SetUpOnIOThread() { 20 BrowsingDataCookieHelperTest()
24 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 21 : testing_profile_(new TestingProfile()) {
25 // This is a workaround for a bug in the TestingProfile.
26 // The URLRequestContext will be created by GetCookieMonster on the UI
27 // thread, if it does not already exist. But it must be created on the IO
28 // thread or else it will DCHECK upon destruction.
29 // Force it to be created here.
30 testing_profile_->CreateRequestContext();
31 testing_profile_->GetRequestContext()->GetURLRequestContext();
32 }
33
34 virtual void SetUp() {
35 testing_profile_.reset(new TestingProfile());
36 BrowserThread::PostTask(
37 BrowserThread::IO, FROM_HERE,
38 base::Bind(&BrowsingDataCookieHelperTest::SetUpOnIOThread,
39 base::Unretained(this)));
40 base::MessageLoop::current()->RunUntilIdle();
41 }
42
43 virtual void TearDown() {
44 // This must be reset before the IO thread stops, because the
45 // URLRequestContextGetter forces its own deletion to occur on that thread.
46 testing_profile_->ResetRequestContext();
47 } 22 }
48 23
49 void CreateCookiesForTest() { 24 void CreateCookiesForTest() {
50 scoped_refptr<net::CookieMonster> cookie_monster = 25 scoped_refptr<net::CookieMonster> cookie_monster =
51 testing_profile_->GetCookieMonster(); 26 testing_profile_->GetCookieMonster();
52 cookie_monster->SetCookieWithOptionsAsync( 27 cookie_monster->SetCookieWithOptionsAsync(
53 GURL("http://www.google.com"), "A=1", net::CookieOptions(), 28 GURL("http://www.google.com"), "A=1", net::CookieOptions(),
54 net::CookieMonster::SetCookiesCallback()); 29 net::CookieMonster::SetCookiesCallback());
55 cookie_monster->SetCookieWithOptionsAsync( 30 cookie_monster->SetCookieWithOptionsAsync(
56 GURL("http://www.gmail.google.com"), "B=1", net::CookieOptions(), 31 GURL("http://www.gmail.google.com"), "B=1", net::CookieOptions(),
(...skipping 19 matching lines...) Expand all
76 // Correct because fetching cookies will get a sorted cookie list. 51 // Correct because fetching cookies will get a sorted cookie list.
77 ASSERT_TRUE(it != cookies.end()); 52 ASSERT_TRUE(it != cookies.end());
78 EXPECT_EQ("www.google.com", it->Domain()); 53 EXPECT_EQ("www.google.com", it->Domain());
79 EXPECT_EQ("A", it->Name()); 54 EXPECT_EQ("A", it->Name());
80 55
81 ASSERT_TRUE(++it != cookies.end()); 56 ASSERT_TRUE(++it != cookies.end());
82 EXPECT_EQ("www.gmail.google.com", it->Domain()); 57 EXPECT_EQ("www.gmail.google.com", it->Domain());
83 EXPECT_EQ("B", it->Name()); 58 EXPECT_EQ("B", it->Name());
84 59
85 ASSERT_TRUE(++it == cookies.end()); 60 ASSERT_TRUE(++it == cookies.end());
86 base::MessageLoop::current()->Quit();
87 } 61 }
88 62
89 void DomainCookieCallback(const net::CookieList& cookies) { 63 void DomainCookieCallback(const net::CookieList& cookies) {
90 ASSERT_EQ(2UL, cookies.size()); 64 ASSERT_EQ(2UL, cookies.size());
91 cookie_list_ = cookies; 65 cookie_list_ = cookies;
92 net::CookieList::const_iterator it = cookies.begin(); 66 net::CookieList::const_iterator it = cookies.begin();
93 67
94 // Correct because fetching cookies will get a sorted cookie list. 68 // Correct because fetching cookies will get a sorted cookie list.
95 ASSERT_TRUE(it != cookies.end()); 69 ASSERT_TRUE(it != cookies.end());
96 EXPECT_EQ("www.google.com", it->Domain()); 70 EXPECT_EQ("www.google.com", it->Domain());
97 EXPECT_EQ("A", it->Name()); 71 EXPECT_EQ("A", it->Name());
98 EXPECT_EQ("1", it->Value()); 72 EXPECT_EQ("1", it->Value());
99 73
100 ASSERT_TRUE(++it != cookies.end()); 74 ASSERT_TRUE(++it != cookies.end());
101 EXPECT_EQ(".www.google.com", it->Domain()); 75 EXPECT_EQ(".www.google.com", it->Domain());
102 EXPECT_EQ("A", it->Name()); 76 EXPECT_EQ("A", it->Name());
103 EXPECT_EQ("2", it->Value()); 77 EXPECT_EQ("2", it->Value());
104 78
105 ASSERT_TRUE(++it == cookies.end()); 79 ASSERT_TRUE(++it == cookies.end());
106 base::MessageLoop::current()->Quit();
107 } 80 }
108 81
109 void DeleteCallback(const net::CookieList& cookies) { 82 void DeleteCallback(const net::CookieList& cookies) {
110 ASSERT_EQ(1UL, cookies.size()); 83 ASSERT_EQ(1UL, cookies.size());
111 net::CookieList::const_iterator it = cookies.begin(); 84 net::CookieList::const_iterator it = cookies.begin();
112 85
113 ASSERT_TRUE(it != cookies.end()); 86 ASSERT_TRUE(it != cookies.end());
114 EXPECT_EQ("www.gmail.google.com", it->Domain()); 87 EXPECT_EQ("www.gmail.google.com", it->Domain());
115 EXPECT_EQ("B", it->Name()); 88 EXPECT_EQ("B", it->Name());
116 89
117 ASSERT_TRUE(++it == cookies.end()); 90 ASSERT_TRUE(++it == cookies.end());
118 base::MessageLoop::current()->Quit();
119 } 91 }
120 92
121 void CannedUniqueCallback(const net::CookieList& cookies) { 93 void CannedUniqueCallback(const net::CookieList& cookies) {
122 EXPECT_EQ(1UL, cookies.size()); 94 EXPECT_EQ(1UL, cookies.size());
123 cookie_list_ = cookies; 95 cookie_list_ = cookies;
124 net::CookieList::const_iterator it = cookies.begin(); 96 net::CookieList::const_iterator it = cookies.begin();
125 97
126 ASSERT_TRUE(it != cookies.end()); 98 ASSERT_TRUE(it != cookies.end());
127 EXPECT_EQ("http://www.google.com/", it->Source()); 99 EXPECT_EQ("http://www.google.com/", it->Source());
128 EXPECT_EQ("www.google.com", it->Domain()); 100 EXPECT_EQ("www.google.com", it->Domain());
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 }; 177 };
206 178
207 TEST_F(BrowsingDataCookieHelperTest, FetchData) { 179 TEST_F(BrowsingDataCookieHelperTest, FetchData) {
208 CreateCookiesForTest(); 180 CreateCookiesForTest();
209 scoped_refptr<BrowsingDataCookieHelper> cookie_helper( 181 scoped_refptr<BrowsingDataCookieHelper> cookie_helper(
210 new BrowsingDataCookieHelper(testing_profile_->GetRequestContext())); 182 new BrowsingDataCookieHelper(testing_profile_->GetRequestContext()));
211 183
212 cookie_helper->StartFetching( 184 cookie_helper->StartFetching(
213 base::Bind(&BrowsingDataCookieHelperTest::FetchCallback, 185 base::Bind(&BrowsingDataCookieHelperTest::FetchCallback,
214 base::Unretained(this))); 186 base::Unretained(this)));
215 187 base::RunLoop().RunUntilIdle();
216 // Blocks until BrowsingDataCookieHelperTest::FetchCallback is notified.
217 base::MessageLoop::current()->Run();
218 } 188 }
219 189
220 TEST_F(BrowsingDataCookieHelperTest, DomainCookie) { 190 TEST_F(BrowsingDataCookieHelperTest, DomainCookie) {
221 CreateCookiesForDomainCookieTest(); 191 CreateCookiesForDomainCookieTest();
222 scoped_refptr<BrowsingDataCookieHelper> cookie_helper( 192 scoped_refptr<BrowsingDataCookieHelper> cookie_helper(
223 new BrowsingDataCookieHelper(testing_profile_->GetRequestContext())); 193 new BrowsingDataCookieHelper(testing_profile_->GetRequestContext()));
224 194
225 cookie_helper->StartFetching( 195 cookie_helper->StartFetching(
226 base::Bind(&BrowsingDataCookieHelperTest::DomainCookieCallback, 196 base::Bind(&BrowsingDataCookieHelperTest::DomainCookieCallback,
227 base::Unretained(this))); 197 base::Unretained(this)));
228 198 base::RunLoop().RunUntilIdle();
229 // Blocks until BrowsingDataCookieHelperTest::FetchCallback is notified.
230 base::MessageLoop::current()->Run();
231 } 199 }
232 200
233 TEST_F(BrowsingDataCookieHelperTest, DeleteCookie) { 201 TEST_F(BrowsingDataCookieHelperTest, DeleteCookie) {
234 CreateCookiesForTest(); 202 CreateCookiesForTest();
235 scoped_refptr<BrowsingDataCookieHelper> cookie_helper( 203 scoped_refptr<BrowsingDataCookieHelper> cookie_helper(
236 new BrowsingDataCookieHelper(testing_profile_->GetRequestContext())); 204 new BrowsingDataCookieHelper(testing_profile_->GetRequestContext()));
237 205
238 cookie_helper->StartFetching( 206 cookie_helper->StartFetching(
239 base::Bind(&BrowsingDataCookieHelperTest::FetchCallback, 207 base::Bind(&BrowsingDataCookieHelperTest::FetchCallback,
240 base::Unretained(this))); 208 base::Unretained(this)));
241 209 base::RunLoop().RunUntilIdle();
242 // Blocks until BrowsingDataCookieHelperTest::FetchCallback is notified.
243 base::MessageLoop::current()->Run();
244 210
245 net::CanonicalCookie cookie = cookie_list_[0]; 211 net::CanonicalCookie cookie = cookie_list_[0];
246 cookie_helper->DeleteCookie(cookie); 212 cookie_helper->DeleteCookie(cookie);
247 213
248 cookie_helper->StartFetching( 214 cookie_helper->StartFetching(
249 base::Bind(&BrowsingDataCookieHelperTest::DeleteCallback, 215 base::Bind(&BrowsingDataCookieHelperTest::DeleteCallback,
250 base::Unretained(this))); 216 base::Unretained(this)));
251 base::MessageLoop::current()->Run(); 217 base::RunLoop().RunUntilIdle();
252 } 218 }
253 219
254 TEST_F(BrowsingDataCookieHelperTest, CannedDomainCookie) { 220 TEST_F(BrowsingDataCookieHelperTest, CannedDomainCookie) {
255 const GURL origin("http://www.google.com"); 221 const GURL origin("http://www.google.com");
256 net::CookieList cookie; 222 net::CookieList cookie;
257 223
258 scoped_refptr<CannedBrowsingDataCookieHelper> helper( 224 scoped_refptr<CannedBrowsingDataCookieHelper> helper(
259 new CannedBrowsingDataCookieHelper( 225 new CannedBrowsingDataCookieHelper(
260 testing_profile_->GetRequestContext())); 226 testing_profile_->GetRequestContext()));
261 227
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
468 // "A=1; 434 // "A=1;
469 // "A=3; Domain=www.google.com" 435 // "A=3; Domain=www.google.com"
470 // Add a domain cookie and check if it increases the cookie count. 436 // Add a domain cookie and check if it increases the cookie count.
471 helper->AddChangedCookie(frame2_url, frame1_url, 437 helper->AddChangedCookie(frame2_url, frame1_url,
472 cookie_pair4 + "; Domain=" + cookie_domain, 438 cookie_pair4 + "; Domain=" + cookie_domain,
473 net::CookieOptions()); 439 net::CookieOptions());
474 EXPECT_EQ(5U, helper->GetCookieCount()); 440 EXPECT_EQ(5U, helper->GetCookieCount());
475 } 441 }
476 442
477 } // namespace 443 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698