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

Side by Side Diff: chrome/browser/supervised_user/supervised_user_service_unittest.cc

Issue 1443033004: Supervised User whitelists: update to json format v2 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove l10n Created 5 years, 1 month 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "base/memory/scoped_ptr.h" 5 #include "base/memory/scoped_ptr.h"
6 #include "base/path_service.h" 6 #include "base/path_service.h"
7 #include "base/prefs/pref_service.h" 7 #include "base/prefs/pref_service.h"
8 #include "base/prefs/scoped_user_pref_update.h" 8 #include "base/prefs/scoped_user_pref_update.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "base/thread_task_runner_handle.h" 10 #include "base/thread_task_runner_handle.h"
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 123
124 // The initial call to AddSiteListsChangedCallback will call 124 // The initial call to AddSiteListsChangedCallback will call
125 // OnSiteListsChanged(), so we balance it out by calling Wait(). 125 // OnSiteListsChanged(), so we balance it out by calling Wait().
126 Wait(); 126 Wait();
127 } 127 }
128 128
129 const std::vector<scoped_refptr<SupervisedUserSiteList>>& site_lists() { 129 const std::vector<scoped_refptr<SupervisedUserSiteList>>& site_lists() {
130 return site_lists_; 130 return site_lists_;
131 } 131 }
132 132
133 const std::vector<SupervisedUserSiteList::Site>& sites() {
134 return sites_;
135 }
136
137 private: 133 private:
138 void OnSiteListsChanged( 134 void OnSiteListsChanged(
139 const std::vector<scoped_refptr<SupervisedUserSiteList>>& site_lists) { 135 const std::vector<scoped_refptr<SupervisedUserSiteList>>& site_lists) {
140 site_lists_ = site_lists; 136 site_lists_ = site_lists;
141 sites_.clear();
142 for (const scoped_refptr<SupervisedUserSiteList>& site_list : site_lists) {
143 const std::vector<SupervisedUserSiteList::Site>& sites =
144 site_list->sites();
145 sites_.insert(sites_.end(), sites.begin(), sites.end());
146 }
147 137
148 QuitRunLoop(); 138 QuitRunLoop();
149 } 139 }
150 140
151 std::vector<scoped_refptr<SupervisedUserSiteList>> site_lists_; 141 std::vector<scoped_refptr<SupervisedUserSiteList>> site_lists_;
152 std::vector<SupervisedUserSiteList::Site> sites_;
153 142
154 DISALLOW_COPY_AND_ASSIGN(SiteListObserver); 143 DISALLOW_COPY_AND_ASSIGN(SiteListObserver);
155 }; 144 };
156 145
157 class AsyncResultHolder { 146 class AsyncResultHolder {
158 public: 147 public:
159 AsyncResultHolder() : result_(false) {} 148 AsyncResultHolder() : result_(false) {}
160 ~AsyncResultHolder() {} 149 ~AsyncResultHolder() {}
161 150
162 void SetResult(bool result) { 151 void SetResult(bool result) {
(...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 EXPECT_EQ(SupervisedUserURLFilter::ALLOW, 492 EXPECT_EQ(SupervisedUserURLFilter::ALLOW,
504 url_filter->GetFilteringBehaviorForURL(url)); 493 url_filter->GetFilteringBehaviorForURL(url));
505 } 494 }
506 495
507 TEST_F(SupervisedUserServiceExtensionTest, InstallContentPacks) { 496 TEST_F(SupervisedUserServiceExtensionTest, InstallContentPacks) {
508 SupervisedUserService* supervised_user_service = 497 SupervisedUserService* supervised_user_service =
509 SupervisedUserServiceFactory::GetForProfile(profile_.get()); 498 SupervisedUserServiceFactory::GetForProfile(profile_.get());
510 SupervisedUserURLFilter* url_filter = 499 SupervisedUserURLFilter* url_filter =
511 supervised_user_service->GetURLFilterForUIThread(); 500 supervised_user_service->GetURLFilterForUIThread();
512 501
513 GURL example_url("http://example.com"); 502 const base::string16 title1 = base::ASCIIToUTF16("Title 1");
503 const base::string16 title2 = base::ASCIIToUTF16("Title 2");
504
505 GURL youtube_url("http://www.youtube.com");
514 GURL moose_url("http://moose.org"); 506 GURL moose_url("http://moose.org");
515 EXPECT_EQ(SupervisedUserURLFilter::ALLOW, 507 EXPECT_EQ(SupervisedUserURLFilter::ALLOW,
516 url_filter->GetFilteringBehaviorForURL(example_url)); 508 url_filter->GetFilteringBehaviorForURL(youtube_url));
517 509
518 profile_->GetPrefs()->SetInteger( 510 profile_->GetPrefs()->SetInteger(
519 prefs::kDefaultSupervisedUserFilteringBehavior, 511 prefs::kDefaultSupervisedUserFilteringBehavior,
520 SupervisedUserURLFilter::BLOCK); 512 SupervisedUserURLFilter::BLOCK);
521 EXPECT_EQ(SupervisedUserURLFilter::BLOCK, 513 EXPECT_EQ(SupervisedUserURLFilter::BLOCK,
522 url_filter->GetFilteringBehaviorForURL(example_url)); 514 url_filter->GetFilteringBehaviorForURL(youtube_url));
523 515
524 profile_->GetPrefs()->SetInteger( 516 profile_->GetPrefs()->SetInteger(
525 prefs::kDefaultSupervisedUserFilteringBehavior, 517 prefs::kDefaultSupervisedUserFilteringBehavior,
526 SupervisedUserURLFilter::WARN); 518 SupervisedUserURLFilter::WARN);
527 EXPECT_EQ(SupervisedUserURLFilter::WARN, 519 EXPECT_EQ(SupervisedUserURLFilter::WARN,
528 url_filter->GetFilteringBehaviorForURL(example_url)); 520 url_filter->GetFilteringBehaviorForURL(youtube_url));
529 521
530 // Load a whitelist. 522 // Load a whitelist.
531 base::FilePath test_data_dir; 523 base::FilePath test_data_dir;
532 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir)); 524 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir));
533 SupervisedUserWhitelistService* whitelist_service = 525 SupervisedUserWhitelistService* whitelist_service =
534 supervised_user_service->GetWhitelistService(); 526 supervised_user_service->GetWhitelistService();
535 base::FilePath whitelist_path = 527 base::FilePath whitelist_path =
536 test_data_dir.AppendASCII("whitelists/content_pack/site_list.json"); 528 test_data_dir.AppendASCII("whitelists/content_pack/site_list.json");
537 whitelist_service->LoadWhitelistForTesting("aaaa", whitelist_path); 529 whitelist_service->LoadWhitelistForTesting("aaaa", title1, whitelist_path);
538 site_list_observer_.Wait(); 530 site_list_observer_.Wait();
539 531
540 ASSERT_EQ(1u, site_list_observer_.site_lists().size()); 532 ASSERT_EQ(1u, site_list_observer_.site_lists().size());
541 ASSERT_EQ(3u, site_list_observer_.sites().size()); 533 EXPECT_EQ(title1, site_list_observer_.site_lists()[0]->title());
542 EXPECT_EQ(base::ASCIIToUTF16("YouTube"), site_list_observer_.sites()[0].name); 534 EXPECT_EQ(youtube_url, site_list_observer_.site_lists()[0]->entry_point());
543 EXPECT_EQ(base::ASCIIToUTF16("Homestar Runner"),
544 site_list_observer_.sites()[1].name);
545 EXPECT_EQ(base::string16(), site_list_observer_.sites()[2].name);
546 535
547 url_filter_observer_.Wait(); 536 url_filter_observer_.Wait();
548 EXPECT_EQ(SupervisedUserURLFilter::ALLOW, 537 EXPECT_EQ(SupervisedUserURLFilter::ALLOW,
549 url_filter->GetFilteringBehaviorForURL(example_url)); 538 url_filter->GetFilteringBehaviorForURL(youtube_url));
550 EXPECT_EQ(SupervisedUserURLFilter::WARN, 539 EXPECT_EQ(SupervisedUserURLFilter::WARN,
551 url_filter->GetFilteringBehaviorForURL(moose_url)); 540 url_filter->GetFilteringBehaviorForURL(moose_url));
552 541
553 // Load a second whitelist. 542 // Load a second whitelist.
554 whitelist_path = 543 whitelist_path =
555 test_data_dir.AppendASCII("whitelists/content_pack_2/site_list.json"); 544 test_data_dir.AppendASCII("whitelists/content_pack_2/site_list.json");
556 whitelist_service->LoadWhitelistForTesting("bbbb", whitelist_path); 545 whitelist_service->LoadWhitelistForTesting("bbbb", title2, whitelist_path);
557 site_list_observer_.Wait(); 546 site_list_observer_.Wait();
558 547
559 ASSERT_EQ(2u, site_list_observer_.site_lists().size()); 548 ASSERT_EQ(2u, site_list_observer_.site_lists().size());
560 ASSERT_EQ(4u, site_list_observer_.sites().size()); 549 EXPECT_EQ(title1, site_list_observer_.site_lists()[0]->title());
561 550 EXPECT_EQ(youtube_url, site_list_observer_.site_lists()[0]->entry_point());
562 // The site lists might be returned in any order, so we put them into a set. 551 EXPECT_EQ(title2, site_list_observer_.site_lists()[1]->title());
563 std::set<std::string> site_names; 552 EXPECT_TRUE(site_list_observer_.site_lists()[1]->entry_point().is_empty());
564 for (const SupervisedUserSiteList::Site& site : site_list_observer_.sites())
565 site_names.insert(base::UTF16ToUTF8(site.name));
566 EXPECT_EQ(1u, site_names.count("YouTube"));
567 EXPECT_EQ(1u, site_names.count("Homestar Runner"));
568 EXPECT_EQ(1u, site_names.count(std::string()));
569 EXPECT_EQ(1u, site_names.count("Moose"));
570 553
571 url_filter_observer_.Wait(); 554 url_filter_observer_.Wait();
572 EXPECT_EQ(SupervisedUserURLFilter::ALLOW, 555 EXPECT_EQ(SupervisedUserURLFilter::ALLOW,
573 url_filter->GetFilteringBehaviorForURL(example_url)); 556 url_filter->GetFilteringBehaviorForURL(youtube_url));
574 EXPECT_EQ(SupervisedUserURLFilter::ALLOW, 557 EXPECT_EQ(SupervisedUserURLFilter::ALLOW,
575 url_filter->GetFilteringBehaviorForURL(moose_url)); 558 url_filter->GetFilteringBehaviorForURL(moose_url));
576 559
577 // Unload the first whitelist. 560 // Unload the first whitelist.
578 whitelist_service->UnloadWhitelist("aaaa"); 561 whitelist_service->UnloadWhitelist("aaaa");
579 site_list_observer_.Wait(); 562 site_list_observer_.Wait();
580 563
581 ASSERT_EQ(1u, site_list_observer_.site_lists().size()); 564 ASSERT_EQ(1u, site_list_observer_.site_lists().size());
582 ASSERT_EQ(1u, site_list_observer_.sites().size()); 565 EXPECT_EQ(title2, site_list_observer_.site_lists()[0]->title());
583 EXPECT_EQ(base::ASCIIToUTF16("Moose"), site_list_observer_.sites()[0].name); 566 EXPECT_TRUE(site_list_observer_.site_lists()[0]->entry_point().is_empty());
584 567
585 url_filter_observer_.Wait(); 568 url_filter_observer_.Wait();
586 EXPECT_EQ(SupervisedUserURLFilter::WARN, 569 EXPECT_EQ(SupervisedUserURLFilter::WARN,
587 url_filter->GetFilteringBehaviorForURL(example_url)); 570 url_filter->GetFilteringBehaviorForURL(youtube_url));
588 EXPECT_EQ(SupervisedUserURLFilter::ALLOW, 571 EXPECT_EQ(SupervisedUserURLFilter::ALLOW,
589 url_filter->GetFilteringBehaviorForURL(moose_url)); 572 url_filter->GetFilteringBehaviorForURL(moose_url));
590 } 573 }
591 #endif // defined(ENABLE_EXTENSIONS) 574 #endif // defined(ENABLE_EXTENSIONS)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698