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

Side by Side Diff: chrome/browser/cookies_tree_model_unittest.cc

Issue 3048002: Store creating url in origin nodes and use it for content settings. (Closed)
Patch Set: compilefix Created 10 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
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/cookies_tree_model.h" 5 #include "chrome/browser/cookies_tree_model.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "app/l10n_util.h" 9 #include "app/l10n_util.h"
10 #include "chrome/browser/host_content_settings_map.h"
10 #include "chrome/browser/mock_browsing_data_appcache_helper.h" 11 #include "chrome/browser/mock_browsing_data_appcache_helper.h"
11 #include "chrome/browser/mock_browsing_data_database_helper.h" 12 #include "chrome/browser/mock_browsing_data_database_helper.h"
12 #include "chrome/browser/mock_browsing_data_local_storage_helper.h" 13 #include "chrome/browser/mock_browsing_data_local_storage_helper.h"
13 #include "chrome/common/net/url_request_context_getter.h" 14 #include "chrome/common/net/url_request_context_getter.h"
14 #include "chrome/test/testing_profile.h" 15 #include "chrome/test/testing_profile.h"
15 #include "net/url_request/url_request_context.h" 16 #include "net/url_request/url_request_context.h"
16 #include "testing/gtest/include/gtest/gtest.h" 17 #include "testing/gtest/include/gtest/gtest.h"
17 18
18 19
19 namespace { 20 namespace {
20 21
22 class StubSettingsObserver : public NotificationObserver {
23 public:
24 StubSettingsObserver() : counter(0) {
25 registrar_.Add(this, NotificationType::CONTENT_SETTINGS_CHANGED,
26 NotificationService::AllSources());
27 }
28
29 virtual void Observe(NotificationType type,
30 const NotificationSource& source,
31 const NotificationDetails& details) {
32 ++counter;
33 Details<HostContentSettingsMap::ContentSettingsDetails>
34 settings_details(details);
35 last_pattern = settings_details.ptr()->pattern();
36 }
37
38 HostContentSettingsMap::Pattern last_pattern;
39 int counter;
40
41 private:
42 NotificationRegistrar registrar_;
43 };
44
21 class CookiesTreeModelTest : public testing::Test { 45 class CookiesTreeModelTest : public testing::Test {
22 public: 46 public:
23 CookiesTreeModelTest() : io_thread_(ChromeThread::IO, &message_loop_) { 47 CookiesTreeModelTest() : ui_thread_(ChromeThread::UI, &message_loop_),
48 io_thread_(ChromeThread::IO, &message_loop_) {
24 } 49 }
25 50
26 virtual ~CookiesTreeModelTest() { 51 virtual ~CookiesTreeModelTest() {
27 } 52 }
28 53
29 virtual void SetUp() { 54 virtual void SetUp() {
30 profile_.reset(new TestingProfile()); 55 profile_.reset(new TestingProfile());
31 profile_->CreateRequestContext(); 56 profile_->CreateRequestContext();
32 mock_browsing_data_database_helper_ = 57 mock_browsing_data_database_helper_ =
33 new MockBrowsingDataDatabaseHelper(profile_.get()); 58 new MockBrowsingDataDatabaseHelper(profile_.get());
(...skipping 14 matching lines...) Expand all
48 mock_browsing_data_appcache_helper_); 73 mock_browsing_data_appcache_helper_);
49 mock_browsing_data_database_helper_->AddDatabaseSamples(); 74 mock_browsing_data_database_helper_->AddDatabaseSamples();
50 mock_browsing_data_database_helper_->Notify(); 75 mock_browsing_data_database_helper_->Notify();
51 mock_browsing_data_local_storage_helper_->AddLocalStorageSamples(); 76 mock_browsing_data_local_storage_helper_->AddLocalStorageSamples();
52 mock_browsing_data_local_storage_helper_->Notify(); 77 mock_browsing_data_local_storage_helper_->Notify();
53 { 78 {
54 SCOPED_TRACE("Initial State 3 cookies, 2 databases, 2 local storages"); 79 SCOPED_TRACE("Initial State 3 cookies, 2 databases, 2 local storages");
55 // 22 because there's the root, then foo1 -> cookies -> a, 80 // 22 because there's the root, then foo1 -> cookies -> a,
56 // foo2 -> cookies -> b, foo3 -> cookies -> c, 81 // foo2 -> cookies -> b, foo3 -> cookies -> c,
57 // dbhost1 -> database -> db1, dbhost2 -> database -> db2, 82 // dbhost1 -> database -> db1, dbhost2 -> database -> db2,
58 // host1 -> localstorage -> origin1, host2 -> localstorage -> origin2. 83 // host1 -> localstorage -> http://host1:1/,
84 // host2 -> localstorage -> http://host2:2/.
59 EXPECT_EQ(22, cookies_model->GetRoot()->GetTotalNodeCount()); 85 EXPECT_EQ(22, cookies_model->GetRoot()->GetTotalNodeCount());
60 EXPECT_EQ("db1,db2", GetDisplayedDatabases(cookies_model)); 86 EXPECT_EQ("db1,db2", GetDisplayedDatabases(cookies_model));
61 EXPECT_EQ("origin1,origin2", GetDisplayedLocalStorages(cookies_model)); 87 EXPECT_EQ("http://host1:1/,http://host2:2/",
88 GetDisplayedLocalStorages(cookies_model));
62 } 89 }
63 return cookies_model; 90 return cookies_model;
64 } 91 }
65 92
66 // Get the cookie names in the cookie list, as a comma seperated string. 93 // Get the cookie names in the cookie list, as a comma seperated string.
67 // (Note that the CookieMonster cookie list is sorted by domain.) 94 // (Note that the CookieMonster cookie list is sorted by domain.)
68 // Ex: 95 // Ex:
69 // monster->SetCookie(GURL("http://b"), "X=1") 96 // monster->SetCookie(GURL("http://b"), "X=1")
70 // monster->SetCookie(GURL("http://a"), "Y=1") 97 // monster->SetCookie(GURL("http://a"), "Y=1")
71 // EXPECT_STREQ("Y,X", GetMonsterCookies(monster).c_str()); 98 // EXPECT_STREQ("Y,X", GetMonsterCookies(monster).c_str());
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 void DeleteStoredObjects(CookieTreeNode* node) { 185 void DeleteStoredObjects(CookieTreeNode* node) {
159 node->DeleteStoredObjects(); 186 node->DeleteStoredObjects();
160 // find the parent and index 187 // find the parent and index
161 CookieTreeNode* parent_node = node->GetParent(); 188 CookieTreeNode* parent_node = node->GetParent();
162 DCHECK(parent_node); 189 DCHECK(parent_node);
163 int ct_node_index = parent_node->IndexOfChild(node); 190 int ct_node_index = parent_node->IndexOfChild(node);
164 delete parent_node->GetModel()->Remove(parent_node, ct_node_index); 191 delete parent_node->GetModel()->Remove(parent_node, ct_node_index);
165 } 192 }
166 protected: 193 protected:
167 MessageLoop message_loop_; 194 MessageLoop message_loop_;
195 ChromeThread ui_thread_;
168 ChromeThread io_thread_; 196 ChromeThread io_thread_;
169 197
170 scoped_ptr<TestingProfile> profile_; 198 scoped_ptr<TestingProfile> profile_;
171 scoped_refptr<MockBrowsingDataDatabaseHelper> 199 scoped_refptr<MockBrowsingDataDatabaseHelper>
172 mock_browsing_data_database_helper_; 200 mock_browsing_data_database_helper_;
173 scoped_refptr<MockBrowsingDataLocalStorageHelper> 201 scoped_refptr<MockBrowsingDataLocalStorageHelper>
174 mock_browsing_data_local_storage_helper_; 202 mock_browsing_data_local_storage_helper_;
175 scoped_refptr<MockBrowsingDataAppCacheHelper> 203 scoped_refptr<MockBrowsingDataAppCacheHelper>
176 mock_browsing_data_appcache_helper_; 204 mock_browsing_data_appcache_helper_;
177 }; 205 };
178 206
179 TEST_F(CookiesTreeModelTest, RemoveAll) { 207 TEST_F(CookiesTreeModelTest, RemoveAll) {
180 scoped_ptr<CookiesTreeModel> cookies_model( 208 scoped_ptr<CookiesTreeModel> cookies_model(
181 CreateCookiesTreeModelWithInitialSample()); 209 CreateCookiesTreeModelWithInitialSample());
182 net::CookieMonster* monster = profile_->GetCookieMonster(); 210 net::CookieMonster* monster = profile_->GetCookieMonster();
183 211
184 // Reset the selection of the first row. 212 // Reset the selection of the first row.
185 { 213 {
186 SCOPED_TRACE("Before removing"); 214 SCOPED_TRACE("Before removing");
187 EXPECT_EQ(GetMonsterCookies(monster), 215 EXPECT_EQ(GetMonsterCookies(monster),
188 GetDisplayedCookies(cookies_model.get())); 216 GetDisplayedCookies(cookies_model.get()));
189 EXPECT_EQ("db1,db2", 217 EXPECT_EQ("db1,db2",
190 GetDisplayedDatabases(cookies_model.get())); 218 GetDisplayedDatabases(cookies_model.get()));
191 EXPECT_EQ("origin1,origin2", 219 EXPECT_EQ("http://host1:1/,http://host2:2/",
192 GetDisplayedLocalStorages(cookies_model.get())); 220 GetDisplayedLocalStorages(cookies_model.get()));
193 } 221 }
194 222
195 mock_browsing_data_database_helper_->Reset(); 223 mock_browsing_data_database_helper_->Reset();
196 mock_browsing_data_local_storage_helper_->Reset(); 224 mock_browsing_data_local_storage_helper_->Reset();
197 225
198 cookies_model->DeleteAllStoredObjects(); 226 cookies_model->DeleteAllStoredObjects();
199 227
200 { 228 {
201 SCOPED_TRACE("After removing"); 229 SCOPED_TRACE("After removing");
(...skipping 11 matching lines...) Expand all
213 scoped_ptr<CookiesTreeModel> cookies_model( 241 scoped_ptr<CookiesTreeModel> cookies_model(
214 CreateCookiesTreeModelWithInitialSample()); 242 CreateCookiesTreeModelWithInitialSample());
215 net::CookieMonster* monster = profile_->GetCookieMonster(); 243 net::CookieMonster* monster = profile_->GetCookieMonster();
216 244
217 DeleteStoredObjects(cookies_model->GetRoot()->GetChild(0)); 245 DeleteStoredObjects(cookies_model->GetRoot()->GetChild(0));
218 { 246 {
219 SCOPED_TRACE("First cookie origin removed"); 247 SCOPED_TRACE("First cookie origin removed");
220 EXPECT_STREQ("B,C", GetMonsterCookies(monster).c_str()); 248 EXPECT_STREQ("B,C", GetMonsterCookies(monster).c_str());
221 EXPECT_STREQ("B,C", GetDisplayedCookies(cookies_model.get()).c_str()); 249 EXPECT_STREQ("B,C", GetDisplayedCookies(cookies_model.get()).c_str());
222 EXPECT_EQ("db1,db2", GetDisplayedDatabases(cookies_model.get())); 250 EXPECT_EQ("db1,db2", GetDisplayedDatabases(cookies_model.get()));
223 EXPECT_EQ("origin1,origin2", 251 EXPECT_EQ("http://host1:1/,http://host2:2/",
224 GetDisplayedLocalStorages(cookies_model.get())); 252 GetDisplayedLocalStorages(cookies_model.get()));
225 EXPECT_EQ(19, cookies_model->GetRoot()->GetTotalNodeCount()); 253 EXPECT_EQ(19, cookies_model->GetRoot()->GetTotalNodeCount());
226 } 254 }
227 255
228 DeleteStoredObjects(cookies_model->GetRoot()->GetChild(2)); 256 DeleteStoredObjects(cookies_model->GetRoot()->GetChild(2));
229 { 257 {
230 SCOPED_TRACE("First database origin removed"); 258 SCOPED_TRACE("First database origin removed");
231 EXPECT_STREQ("B,C", GetMonsterCookies(monster).c_str()); 259 EXPECT_STREQ("B,C", GetMonsterCookies(monster).c_str());
232 EXPECT_STREQ("B,C", GetDisplayedCookies(cookies_model.get()).c_str()); 260 EXPECT_STREQ("B,C", GetDisplayedCookies(cookies_model.get()).c_str());
233 EXPECT_EQ("db2", GetDisplayedDatabases(cookies_model.get())); 261 EXPECT_EQ("db2", GetDisplayedDatabases(cookies_model.get()));
234 EXPECT_EQ("origin1,origin2", 262 EXPECT_EQ("http://host1:1/,http://host2:2/",
235 GetDisplayedLocalStorages(cookies_model.get())); 263 GetDisplayedLocalStorages(cookies_model.get()));
236 EXPECT_EQ(16, cookies_model->GetRoot()->GetTotalNodeCount()); 264 EXPECT_EQ(16, cookies_model->GetRoot()->GetTotalNodeCount());
237 } 265 }
238 266
239 DeleteStoredObjects(cookies_model->GetRoot()->GetChild(3)); 267 DeleteStoredObjects(cookies_model->GetRoot()->GetChild(3));
240 { 268 {
241 SCOPED_TRACE("First local storage origin removed"); 269 SCOPED_TRACE("First local storage origin removed");
242 EXPECT_STREQ("B,C", GetMonsterCookies(monster).c_str()); 270 EXPECT_STREQ("B,C", GetMonsterCookies(monster).c_str());
243 EXPECT_STREQ("B,C", GetDisplayedCookies(cookies_model.get()).c_str()); 271 EXPECT_STREQ("B,C", GetDisplayedCookies(cookies_model.get()).c_str());
244 EXPECT_EQ("db2", GetDisplayedDatabases(cookies_model.get())); 272 EXPECT_EQ("db2", GetDisplayedDatabases(cookies_model.get()));
245 EXPECT_EQ("origin2", GetDisplayedLocalStorages(cookies_model.get())); 273 EXPECT_EQ("http://host2:2/",
274 GetDisplayedLocalStorages(cookies_model.get()));
246 EXPECT_EQ(13, cookies_model->GetRoot()->GetTotalNodeCount()); 275 EXPECT_EQ(13, cookies_model->GetRoot()->GetTotalNodeCount());
247 } 276 }
248 } 277 }
249 278
250 TEST_F(CookiesTreeModelTest, RemoveCookiesNode) { 279 TEST_F(CookiesTreeModelTest, RemoveCookiesNode) {
251 scoped_ptr<CookiesTreeModel> cookies_model( 280 scoped_ptr<CookiesTreeModel> cookies_model(
252 CreateCookiesTreeModelWithInitialSample()); 281 CreateCookiesTreeModelWithInitialSample());
253 net::CookieMonster* monster = profile_->GetCookieMonster(); 282 net::CookieMonster* monster = profile_->GetCookieMonster();
254 283
255 DeleteStoredObjects(cookies_model->GetRoot()->GetChild(0)->GetChild(0)); 284 DeleteStoredObjects(cookies_model->GetRoot()->GetChild(0)->GetChild(0));
256 { 285 {
257 SCOPED_TRACE("First origin removed"); 286 SCOPED_TRACE("First origin removed");
258 EXPECT_STREQ("B,C", GetMonsterCookies(monster).c_str()); 287 EXPECT_STREQ("B,C", GetMonsterCookies(monster).c_str());
259 EXPECT_STREQ("B,C", GetDisplayedCookies(cookies_model.get()).c_str()); 288 EXPECT_STREQ("B,C", GetDisplayedCookies(cookies_model.get()).c_str());
260 // 20 because in this case, the origin remains, although the COOKIES 289 // 20 because in this case, the origin remains, although the COOKIES
261 // node beneath it has been deleted. So, we have 290 // node beneath it has been deleted. So, we have
262 // root -> foo1 -> cookies -> a, foo2, foo3 -> cookies -> c 291 // root -> foo1 -> cookies -> a, foo2, foo3 -> cookies -> c
263 // dbhost1 -> database -> db1, dbhost2 -> database -> db2, 292 // dbhost1 -> database -> db1, dbhost2 -> database -> db2,
264 // host1 -> localstorage -> origin1, host2 -> localstorage -> origin2. 293 // host1 -> localstorage -> http://host1:1/,
294 // host2 -> localstorage -> http://host2:2/.
265 EXPECT_EQ(20, cookies_model->GetRoot()->GetTotalNodeCount()); 295 EXPECT_EQ(20, cookies_model->GetRoot()->GetTotalNodeCount());
266 EXPECT_EQ("db1,db2", GetDisplayedDatabases(cookies_model.get())); 296 EXPECT_EQ("db1,db2", GetDisplayedDatabases(cookies_model.get()));
267 EXPECT_EQ("origin1,origin2", 297 EXPECT_EQ("http://host1:1/,http://host2:2/",
268 GetDisplayedLocalStorages(cookies_model.get())); 298 GetDisplayedLocalStorages(cookies_model.get()));
269 } 299 }
270 300
271 DeleteStoredObjects(cookies_model->GetRoot()->GetChild(3)->GetChild(0)); 301 DeleteStoredObjects(cookies_model->GetRoot()->GetChild(3)->GetChild(0));
272 { 302 {
273 SCOPED_TRACE("First database removed"); 303 SCOPED_TRACE("First database removed");
274 EXPECT_STREQ("B,C", GetMonsterCookies(monster).c_str()); 304 EXPECT_STREQ("B,C", GetMonsterCookies(monster).c_str());
275 EXPECT_STREQ("B,C", GetDisplayedCookies(cookies_model.get()).c_str()); 305 EXPECT_STREQ("B,C", GetDisplayedCookies(cookies_model.get()).c_str());
276 EXPECT_EQ("db2", GetDisplayedDatabases(cookies_model.get())); 306 EXPECT_EQ("db2", GetDisplayedDatabases(cookies_model.get()));
277 EXPECT_EQ("origin1,origin2", 307 EXPECT_EQ("http://host1:1/,http://host2:2/",
278 GetDisplayedLocalStorages(cookies_model.get())); 308 GetDisplayedLocalStorages(cookies_model.get()));
279 EXPECT_EQ(18, cookies_model->GetRoot()->GetTotalNodeCount()); 309 EXPECT_EQ(18, cookies_model->GetRoot()->GetTotalNodeCount());
280 } 310 }
281 311
282 DeleteStoredObjects(cookies_model->GetRoot()->GetChild(5)->GetChild(0)); 312 DeleteStoredObjects(cookies_model->GetRoot()->GetChild(5)->GetChild(0));
283 { 313 {
284 SCOPED_TRACE("First origin removed"); 314 SCOPED_TRACE("First origin removed");
285 EXPECT_STREQ("B,C", GetMonsterCookies(monster).c_str()); 315 EXPECT_STREQ("B,C", GetMonsterCookies(monster).c_str());
286 EXPECT_STREQ("B,C", GetDisplayedCookies(cookies_model.get()).c_str()); 316 EXPECT_STREQ("B,C", GetDisplayedCookies(cookies_model.get()).c_str());
287 EXPECT_EQ("db2", GetDisplayedDatabases(cookies_model.get())); 317 EXPECT_EQ("db2", GetDisplayedDatabases(cookies_model.get()));
288 EXPECT_EQ("origin2", GetDisplayedLocalStorages(cookies_model.get())); 318 EXPECT_EQ("http://host2:2/",
319 GetDisplayedLocalStorages(cookies_model.get()));
289 EXPECT_EQ(16, cookies_model->GetRoot()->GetTotalNodeCount()); 320 EXPECT_EQ(16, cookies_model->GetRoot()->GetTotalNodeCount());
290 } 321 }
291 } 322 }
292 323
293 TEST_F(CookiesTreeModelTest, RemoveCookieNode) { 324 TEST_F(CookiesTreeModelTest, RemoveCookieNode) {
294 scoped_ptr<CookiesTreeModel> cookies_model( 325 scoped_ptr<CookiesTreeModel> cookies_model(
295 CreateCookiesTreeModelWithInitialSample()); 326 CreateCookiesTreeModelWithInitialSample());
296 net::CookieMonster* monster = profile_->GetCookieMonster(); 327 net::CookieMonster* monster = profile_->GetCookieMonster();
297 328
298 DeleteStoredObjects(cookies_model->GetRoot()->GetChild(1)->GetChild(0)); 329 DeleteStoredObjects(cookies_model->GetRoot()->GetChild(1)->GetChild(0));
299 { 330 {
300 SCOPED_TRACE("Second origin COOKIES node removed"); 331 SCOPED_TRACE("Second origin COOKIES node removed");
301 EXPECT_STREQ("A,C", GetMonsterCookies(monster).c_str()); 332 EXPECT_STREQ("A,C", GetMonsterCookies(monster).c_str());
302 EXPECT_STREQ("A,C", GetDisplayedCookies(cookies_model.get()).c_str()); 333 EXPECT_STREQ("A,C", GetDisplayedCookies(cookies_model.get()).c_str());
303 EXPECT_EQ("db1,db2", GetDisplayedDatabases(cookies_model.get())); 334 EXPECT_EQ("db1,db2", GetDisplayedDatabases(cookies_model.get()));
304 EXPECT_EQ("origin1,origin2", 335 EXPECT_EQ("http://host1:1/,http://host2:2/",
305 GetDisplayedLocalStorages(cookies_model.get())); 336 GetDisplayedLocalStorages(cookies_model.get()));
306 // 20 because in this case, the origin remains, although the COOKIES 337 // 20 because in this case, the origin remains, although the COOKIES
307 // node beneath it has been deleted. So, we have 338 // node beneath it has been deleted. So, we have
308 // root -> foo1 -> cookies -> a, foo2, foo3 -> cookies -> c 339 // root -> foo1 -> cookies -> a, foo2, foo3 -> cookies -> c
309 // dbhost1 -> database -> db1, dbhost2 -> database -> db2, 340 // dbhost1 -> database -> db1, dbhost2 -> database -> db2,
310 // host1 -> localstorage -> origin1, host2 -> localstorage -> origin2. 341 // host1 -> localstorage -> http://host1:1/,
342 // host2 -> localstorage -> http://host2:2/.
311 EXPECT_EQ(20, cookies_model->GetRoot()->GetTotalNodeCount()); 343 EXPECT_EQ(20, cookies_model->GetRoot()->GetTotalNodeCount());
312 } 344 }
313 345
314 DeleteStoredObjects(cookies_model->GetRoot()->GetChild(3)->GetChild(0)); 346 DeleteStoredObjects(cookies_model->GetRoot()->GetChild(3)->GetChild(0));
315 { 347 {
316 SCOPED_TRACE("First database removed"); 348 SCOPED_TRACE("First database removed");
317 EXPECT_STREQ("A,C", GetMonsterCookies(monster).c_str()); 349 EXPECT_STREQ("A,C", GetMonsterCookies(monster).c_str());
318 EXPECT_STREQ("A,C", GetDisplayedCookies(cookies_model.get()).c_str()); 350 EXPECT_STREQ("A,C", GetDisplayedCookies(cookies_model.get()).c_str());
319 EXPECT_EQ("db2", GetDisplayedDatabases(cookies_model.get())); 351 EXPECT_EQ("db2", GetDisplayedDatabases(cookies_model.get()));
320 EXPECT_EQ("origin1,origin2", 352 EXPECT_EQ("http://host1:1/,http://host2:2/",
321 GetDisplayedLocalStorages(cookies_model.get())); 353 GetDisplayedLocalStorages(cookies_model.get()));
322 EXPECT_EQ(18, cookies_model->GetRoot()->GetTotalNodeCount()); 354 EXPECT_EQ(18, cookies_model->GetRoot()->GetTotalNodeCount());
323 } 355 }
324 356
325 DeleteStoredObjects(cookies_model->GetRoot()->GetChild(5)->GetChild(0)); 357 DeleteStoredObjects(cookies_model->GetRoot()->GetChild(5)->GetChild(0));
326 { 358 {
327 SCOPED_TRACE("First origin removed"); 359 SCOPED_TRACE("First origin removed");
328 EXPECT_STREQ("A,C", GetMonsterCookies(monster).c_str()); 360 EXPECT_STREQ("A,C", GetMonsterCookies(monster).c_str());
329 EXPECT_STREQ("A,C", GetDisplayedCookies(cookies_model.get()).c_str()); 361 EXPECT_STREQ("A,C", GetDisplayedCookies(cookies_model.get()).c_str());
330 EXPECT_EQ("db2", GetDisplayedDatabases(cookies_model.get())); 362 EXPECT_EQ("db2", GetDisplayedDatabases(cookies_model.get()));
331 EXPECT_EQ("origin2", GetDisplayedLocalStorages(cookies_model.get())); 363 EXPECT_EQ("http://host2:2/",
364 GetDisplayedLocalStorages(cookies_model.get()));
332 EXPECT_EQ(16, cookies_model->GetRoot()->GetTotalNodeCount()); 365 EXPECT_EQ(16, cookies_model->GetRoot()->GetTotalNodeCount());
333 } 366 }
334 } 367 }
335 368
336 TEST_F(CookiesTreeModelTest, RemoveSingleCookieNode) { 369 TEST_F(CookiesTreeModelTest, RemoveSingleCookieNode) {
337 net::CookieMonster* monster = profile_->GetCookieMonster(); 370 net::CookieMonster* monster = profile_->GetCookieMonster();
338 monster->SetCookie(GURL("http://foo1"), "A=1"); 371 monster->SetCookie(GURL("http://foo1"), "A=1");
339 monster->SetCookie(GURL("http://foo2"), "B=1"); 372 monster->SetCookie(GURL("http://foo2"), "B=1");
340 monster->SetCookie(GURL("http://foo3"), "C=1"); 373 monster->SetCookie(GURL("http://foo3"), "C=1");
341 monster->SetCookie(GURL("http://foo3"), "D=1"); 374 monster->SetCookie(GURL("http://foo3"), "D=1");
342 CookiesTreeModel cookies_model(monster, 375 CookiesTreeModel cookies_model(monster,
343 mock_browsing_data_database_helper_, 376 mock_browsing_data_database_helper_,
344 mock_browsing_data_local_storage_helper_, 377 mock_browsing_data_local_storage_helper_,
345 mock_browsing_data_appcache_helper_); 378 mock_browsing_data_appcache_helper_);
346 mock_browsing_data_database_helper_->AddDatabaseSamples(); 379 mock_browsing_data_database_helper_->AddDatabaseSamples();
347 mock_browsing_data_database_helper_->Notify(); 380 mock_browsing_data_database_helper_->Notify();
348 mock_browsing_data_local_storage_helper_->AddLocalStorageSamples(); 381 mock_browsing_data_local_storage_helper_->AddLocalStorageSamples();
349 mock_browsing_data_local_storage_helper_->Notify(); 382 mock_browsing_data_local_storage_helper_->Notify();
350 383
351 { 384 {
352 SCOPED_TRACE("Initial State 4 cookies, 2 databases, 2 local storages"); 385 SCOPED_TRACE("Initial State 4 cookies, 2 databases, 2 local storages");
353 // 23 because there's the root, then foo1 -> cookies -> a, 386 // 23 because there's the root, then foo1 -> cookies -> a,
354 // foo2 -> cookies -> b, foo3 -> cookies -> c,d 387 // foo2 -> cookies -> b, foo3 -> cookies -> c,d
355 // dbhost1 -> database -> db1, dbhost2 -> database -> db2, 388 // dbhost1 -> database -> db1, dbhost2 -> database -> db2,
356 // host1 -> localstorage -> origin1, host2 -> localstorage -> origin2. 389 // host1 -> localstorage -> http://host1:1/,
390 // host2 -> localstorage -> http://host2:2/.
357 EXPECT_EQ(23, cookies_model.GetRoot()->GetTotalNodeCount()); 391 EXPECT_EQ(23, cookies_model.GetRoot()->GetTotalNodeCount());
358 EXPECT_STREQ("A,B,C,D", GetMonsterCookies(monster).c_str()); 392 EXPECT_STREQ("A,B,C,D", GetMonsterCookies(monster).c_str());
359 EXPECT_STREQ("A,B,C,D", GetDisplayedCookies(&cookies_model).c_str()); 393 EXPECT_STREQ("A,B,C,D", GetDisplayedCookies(&cookies_model).c_str());
360 EXPECT_EQ("db1,db2", GetDisplayedDatabases(&cookies_model)); 394 EXPECT_EQ("db1,db2", GetDisplayedDatabases(&cookies_model));
361 EXPECT_EQ("origin1,origin2", GetDisplayedLocalStorages(&cookies_model)); 395 EXPECT_EQ("http://host1:1/,http://host2:2/",
396 GetDisplayedLocalStorages(&cookies_model));
362 } 397 }
363 DeleteStoredObjects(cookies_model.GetRoot()->GetChild(2)); 398 DeleteStoredObjects(cookies_model.GetRoot()->GetChild(2));
364 { 399 {
365 SCOPED_TRACE("Third origin removed"); 400 SCOPED_TRACE("Third origin removed");
366 EXPECT_STREQ("A,B", GetMonsterCookies(monster).c_str()); 401 EXPECT_STREQ("A,B", GetMonsterCookies(monster).c_str());
367 EXPECT_STREQ("A,B", GetDisplayedCookies(&cookies_model).c_str()); 402 EXPECT_STREQ("A,B", GetDisplayedCookies(&cookies_model).c_str());
368 EXPECT_EQ("db1,db2", GetDisplayedDatabases(&cookies_model)); 403 EXPECT_EQ("db1,db2", GetDisplayedDatabases(&cookies_model));
369 EXPECT_EQ("origin1,origin2", GetDisplayedLocalStorages(&cookies_model)); 404 EXPECT_EQ("http://host1:1/,http://host2:2/",
405 GetDisplayedLocalStorages(&cookies_model));
370 EXPECT_EQ(19, cookies_model.GetRoot()->GetTotalNodeCount()); 406 EXPECT_EQ(19, cookies_model.GetRoot()->GetTotalNodeCount());
371 } 407 }
372 } 408 }
373 409
374 TEST_F(CookiesTreeModelTest, RemoveSingleCookieNodeOf3) { 410 TEST_F(CookiesTreeModelTest, RemoveSingleCookieNodeOf3) {
375 net::CookieMonster* monster = profile_->GetCookieMonster(); 411 net::CookieMonster* monster = profile_->GetCookieMonster();
376 monster->SetCookie(GURL("http://foo1"), "A=1"); 412 monster->SetCookie(GURL("http://foo1"), "A=1");
377 monster->SetCookie(GURL("http://foo2"), "B=1"); 413 monster->SetCookie(GURL("http://foo2"), "B=1");
378 monster->SetCookie(GURL("http://foo3"), "C=1"); 414 monster->SetCookie(GURL("http://foo3"), "C=1");
379 monster->SetCookie(GURL("http://foo3"), "D=1"); 415 monster->SetCookie(GURL("http://foo3"), "D=1");
380 monster->SetCookie(GURL("http://foo3"), "E=1"); 416 monster->SetCookie(GURL("http://foo3"), "E=1");
381 CookiesTreeModel cookies_model(monster, 417 CookiesTreeModel cookies_model(monster,
382 mock_browsing_data_database_helper_, 418 mock_browsing_data_database_helper_,
383 mock_browsing_data_local_storage_helper_, 419 mock_browsing_data_local_storage_helper_,
384 mock_browsing_data_appcache_helper_); 420 mock_browsing_data_appcache_helper_);
385 mock_browsing_data_database_helper_->AddDatabaseSamples(); 421 mock_browsing_data_database_helper_->AddDatabaseSamples();
386 mock_browsing_data_database_helper_->Notify(); 422 mock_browsing_data_database_helper_->Notify();
387 mock_browsing_data_local_storage_helper_->AddLocalStorageSamples(); 423 mock_browsing_data_local_storage_helper_->AddLocalStorageSamples();
388 mock_browsing_data_local_storage_helper_->Notify(); 424 mock_browsing_data_local_storage_helper_->Notify();
389 425
390 { 426 {
391 SCOPED_TRACE("Initial State 5 cookies, 2 databases, 2 local storages"); 427 SCOPED_TRACE("Initial State 5 cookies, 2 databases, 2 local storages");
392 // 24 because there's the root, then foo1 -> cookies -> a, 428 // 24 because there's the root, then foo1 -> cookies -> a,
393 // foo2 -> cookies -> b, foo3 -> cookies -> c,d,e 429 // foo2 -> cookies -> b, foo3 -> cookies -> c,d,e
394 // dbhost1 -> database -> db1, dbhost2 -> database -> db2, 430 // dbhost1 -> database -> db1, dbhost2 -> database -> db2,
395 // host1 -> localstorage -> origin1, host2 -> localstorage -> origin2. 431 // host1 -> localstorage -> http://host1:1/,
432 // host2 -> localstorage -> http://host2:2/.
396 EXPECT_EQ(24, cookies_model.GetRoot()->GetTotalNodeCount()); 433 EXPECT_EQ(24, cookies_model.GetRoot()->GetTotalNodeCount());
397 EXPECT_STREQ("A,B,C,D,E", GetMonsterCookies(monster).c_str()); 434 EXPECT_STREQ("A,B,C,D,E", GetMonsterCookies(monster).c_str());
398 EXPECT_STREQ("A,B,C,D,E", GetDisplayedCookies(&cookies_model).c_str()); 435 EXPECT_STREQ("A,B,C,D,E", GetDisplayedCookies(&cookies_model).c_str());
399 EXPECT_EQ("db1,db2", GetDisplayedDatabases(&cookies_model)); 436 EXPECT_EQ("db1,db2", GetDisplayedDatabases(&cookies_model));
400 EXPECT_EQ("origin1,origin2", GetDisplayedLocalStorages(&cookies_model)); 437 EXPECT_EQ("http://host1:1/,http://host2:2/",
438 GetDisplayedLocalStorages(&cookies_model));
401 } 439 }
402 DeleteStoredObjects(cookies_model.GetRoot()->GetChild(2)->GetChild(0)-> 440 DeleteStoredObjects(cookies_model.GetRoot()->GetChild(2)->GetChild(0)->
403 GetChild(1)); 441 GetChild(1));
404 { 442 {
405 SCOPED_TRACE("Middle cookie in third origin removed"); 443 SCOPED_TRACE("Middle cookie in third origin removed");
406 EXPECT_STREQ("A,B,C,E", GetMonsterCookies(monster).c_str()); 444 EXPECT_STREQ("A,B,C,E", GetMonsterCookies(monster).c_str());
407 EXPECT_STREQ("A,B,C,E", GetDisplayedCookies(&cookies_model).c_str()); 445 EXPECT_STREQ("A,B,C,E", GetDisplayedCookies(&cookies_model).c_str());
408 EXPECT_EQ(23, cookies_model.GetRoot()->GetTotalNodeCount()); 446 EXPECT_EQ(23, cookies_model.GetRoot()->GetTotalNodeCount());
409 EXPECT_EQ("db1,db2", GetDisplayedDatabases(&cookies_model)); 447 EXPECT_EQ("db1,db2", GetDisplayedDatabases(&cookies_model));
410 EXPECT_EQ("origin1,origin2", GetDisplayedLocalStorages(&cookies_model)); 448 EXPECT_EQ("http://host1:1/,http://host2:2/",
449 GetDisplayedLocalStorages(&cookies_model));
411 } 450 }
412 } 451 }
413 452
414 TEST_F(CookiesTreeModelTest, RemoveSecondOrigin) { 453 TEST_F(CookiesTreeModelTest, RemoveSecondOrigin) {
415 net::CookieMonster* monster = profile_->GetCookieMonster(); 454 net::CookieMonster* monster = profile_->GetCookieMonster();
416 monster->SetCookie(GURL("http://foo1"), "A=1"); 455 monster->SetCookie(GURL("http://foo1"), "A=1");
417 monster->SetCookie(GURL("http://foo2"), "B=1"); 456 monster->SetCookie(GURL("http://foo2"), "B=1");
418 monster->SetCookie(GURL("http://foo3"), "C=1"); 457 monster->SetCookie(GURL("http://foo3"), "C=1");
419 monster->SetCookie(GURL("http://foo3"), "D=1"); 458 monster->SetCookie(GURL("http://foo3"), "D=1");
420 monster->SetCookie(GURL("http://foo3"), "E=1"); 459 monster->SetCookie(GURL("http://foo3"), "E=1");
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
465 GetDisplayedCookies(&cookies_model).c_str()); 504 GetDisplayedCookies(&cookies_model).c_str());
466 } 505 }
467 DeleteStoredObjects(cookies_model.GetRoot()->GetChild(1)); // Delete "E" 506 DeleteStoredObjects(cookies_model.GetRoot()->GetChild(1)); // Delete "E"
468 { 507 {
469 SCOPED_TRACE("Second origin removed"); 508 SCOPED_TRACE("Second origin removed");
470 EXPECT_STREQ("D,A,C,F,B,G,H", GetMonsterCookies(monster).c_str()); 509 EXPECT_STREQ("D,A,C,F,B,G,H", GetMonsterCookies(monster).c_str());
471 EXPECT_STREQ("F,C,B,A,G,D,H", GetDisplayedCookies(&cookies_model).c_str()); 510 EXPECT_STREQ("F,C,B,A,G,D,H", GetDisplayedCookies(&cookies_model).c_str());
472 } 511 }
473 } 512 }
474 513
514 TEST_F(CookiesTreeModelTest, ContentSettings) {
515 GURL host("http://example.com/");
516 HostContentSettingsMap::Pattern pattern("[*.]example.com");
517 net::CookieMonster* monster = profile_->GetCookieMonster();
518 monster->SetCookie(host, "A=1");
519
520 CookiesTreeModel cookies_model(monster,
521 new MockBrowsingDataDatabaseHelper(profile_.get()),
522 new MockBrowsingDataLocalStorageHelper(profile_.get()),
523 new MockBrowsingDataAppCacheHelper(profile_.get()));
524
525 TestingProfile profile;
526 HostContentSettingsMap* content_settings =
527 profile.GetHostContentSettingsMap();
528 StubSettingsObserver observer;
529
530 CookieTreeRootNode* root =
531 static_cast<CookieTreeRootNode*>(cookies_model.GetRoot());
532 CookieTreeOriginNode* origin = root->GetOrCreateOriginNode(host);
533
534 EXPECT_EQ(1, origin->GetChildCount());
535 EXPECT_TRUE(origin->CanCreateContentException());
536 origin->CreateContentException(
537 content_settings, CONTENT_SETTING_SESSION_ONLY);
538
539 EXPECT_EQ(2, observer.counter);
540 EXPECT_EQ(pattern, observer.last_pattern);
541 EXPECT_EQ(CONTENT_SETTING_SESSION_ONLY,
542 content_settings->GetContentSetting(host, CONTENT_SETTINGS_TYPE_COOKIES));
543 }
544
475 } // namespace 545 } // namespace
OLDNEW
« no previous file with comments | « chrome/browser/cookies_tree_model.cc ('k') | chrome/browser/gtk/options/cookies_view_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698