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

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

Issue 875423002: Don't notify existing observers in SupervisedUserWhitelistService::AddSiteListsChangedCallback(). (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: o Created 5 years, 11 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
« no previous file with comments | « no previous file | chrome/browser/supervised_user/supervised_user_url_filter.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "chrome/browser/chrome_notification_types.h" 10 #include "chrome/browser/chrome_notification_types.h"
(...skipping 28 matching lines...) Expand all
39 #endif 39 #endif
40 40
41 using content::MessageLoopRunner; 41 using content::MessageLoopRunner;
42 42
43 namespace { 43 namespace {
44 44
45 void OnProfileDownloadedFail(const base::string16& full_name) { 45 void OnProfileDownloadedFail(const base::string16& full_name) {
46 ASSERT_TRUE(false) << "Profile download should not have succeeded."; 46 ASSERT_TRUE(false) << "Profile download should not have succeeded.";
47 } 47 }
48 48
49 class SupervisedUserURLFilterObserver : 49 // Base class for helper objects that wait for certain events to happen.
50 public SupervisedUserURLFilter::Observer { 50 // This class will ensure that calls to QuitRunLoop() (triggered by a subclass)
51 // are balanced with Wait() calls.
52 class AsyncTestHelper {
51 public: 53 public:
52 explicit SupervisedUserURLFilterObserver(SupervisedUserURLFilter* url_filter)
53 : url_filter_(url_filter) {
54 Reset();
55 url_filter_->AddObserver(this);
56 }
57
58 ~SupervisedUserURLFilterObserver() {
59 url_filter_->RemoveObserver(this);
60 }
61
62 void Wait() { 54 void Wait() {
63 message_loop_runner_->Run(); 55 run_loop_->Run();
64 Reset(); 56 Reset();
65 } 57 }
66 58
67 // SupervisedUserURLFilter::Observer 59 protected:
68 void OnSiteListUpdated() override { message_loop_runner_->Quit(); } 60 AsyncTestHelper() {
61 // |quit_called_| will be initialied in Reset().
Marc Treib 2015/01/28 09:01:14 typo: initialiZed
Bernhard Bauer 2015/01/28 10:49:58 Done.
62 Reset();
63 }
64
65 ~AsyncTestHelper() {
66 EXPECT_FALSE(quit_called_);
67 }
68
69 void QuitRunLoop() {
70 // QuitRunLoop() can not be called more than once between calls to Wait().
71 ASSERT_FALSE(quit_called_);
72 quit_called_ = true;
73 run_loop_->Quit();
74 }
69 75
70 private: 76 private:
71 void Reset() { 77 void Reset() {
72 message_loop_runner_ = new MessageLoopRunner; 78 quit_called_ = false;
79 run_loop_.reset(new base::RunLoop);
73 } 80 }
74 81
75 SupervisedUserURLFilter* url_filter_; 82 scoped_ptr<base::RunLoop> run_loop_;
76 scoped_refptr<MessageLoopRunner> message_loop_runner_; 83 bool quit_called_;
84
85 DISALLOW_COPY_AND_ASSIGN(AsyncTestHelper);
86 };
87
88 class SupervisedUserURLFilterObserver
89 : public AsyncTestHelper,
90 public SupervisedUserURLFilter::Observer {
91 public:
92 SupervisedUserURLFilterObserver() : scoped_observer_(this) {}
93 ~SupervisedUserURLFilterObserver() {}
94
95 void Init(SupervisedUserURLFilter* url_filter) {
96 scoped_observer_.Add(url_filter);
97 }
98
99 // SupervisedUserURLFilter::Observer
100 void OnSiteListUpdated() override {
101 QuitRunLoop();
102 }
103
104 private:
105 ScopedObserver<SupervisedUserURLFilter, SupervisedUserURLFilter::Observer>
106 scoped_observer_;
107
108 DISALLOW_COPY_AND_ASSIGN(SupervisedUserURLFilterObserver);
109 };
110
111 class SiteListObserver : public AsyncTestHelper {
112 public:
113 SiteListObserver() {}
114 ~SiteListObserver() {}
115
116 void Init(SupervisedUserWhitelistService* service) {
117 service->AddSiteListsChangedCallback(base::Bind(
118 &SiteListObserver::OnSiteListsChanged, base::Unretained(this)));
119
120 // The initial call to AddSiteListsChangedCallback will call
121 // OnSiteListsChanged(), so we balance it out by calling Wait().
122 Wait();
123 }
124
125 const std::vector<scoped_refptr<SupervisedUserSiteList>>& site_lists() {
126 return site_lists_;
127 }
128
129 const std::vector<SupervisedUserSiteList::Site>& sites() {
130 return sites_;
131 }
132
133 private:
134 void OnSiteListsChanged(
135 const std::vector<scoped_refptr<SupervisedUserSiteList>>& site_lists) {
136 site_lists_ = site_lists;
137 sites_.clear();
138 for (const scoped_refptr<SupervisedUserSiteList>& site_list : site_lists) {
139 const std::vector<SupervisedUserSiteList::Site>& sites =
140 site_list->sites();
141 sites_.insert(sites_.end(), sites.begin(), sites.end());
142 }
143
144 QuitRunLoop();
145 }
146
147 std::vector<scoped_refptr<SupervisedUserSiteList>> site_lists_;
148 std::vector<SupervisedUserSiteList::Site> sites_;
149
150 DISALLOW_COPY_AND_ASSIGN(SiteListObserver);
77 }; 151 };
78 152
79 class AsyncResultHolder { 153 class AsyncResultHolder {
80 public: 154 public:
81 AsyncResultHolder() : result_(false) {} 155 AsyncResultHolder() : result_(false) {}
82 ~AsyncResultHolder() {} 156 ~AsyncResultHolder() {}
83 157
84 void SetResult(bool result) { 158 void SetResult(bool result) {
85 result_ = result; 159 result_ = result;
86 run_loop_.Quit(); 160 run_loop_.Quit();
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 358
285 void SetUp() override { 359 void SetUp() override {
286 ExtensionServiceTestBase::SetUp(); 360 ExtensionServiceTestBase::SetUp();
287 ExtensionServiceTestBase::ExtensionServiceInitParams params = 361 ExtensionServiceTestBase::ExtensionServiceInitParams params =
288 CreateDefaultInitParams(); 362 CreateDefaultInitParams();
289 params.profile_is_supervised = is_supervised_; 363 params.profile_is_supervised = is_supervised_;
290 InitializeExtensionService(params); 364 InitializeExtensionService(params);
291 SupervisedUserService* service = 365 SupervisedUserService* service =
292 SupervisedUserServiceFactory::GetForProfile(profile_.get()); 366 SupervisedUserServiceFactory::GetForProfile(profile_.get());
293 service->Init(); 367 service->Init();
294 service->GetWhitelistService()->AddSiteListsChangedCallback( 368 site_list_observer_.Init(service->GetWhitelistService());
295 base::Bind(&SupervisedUserServiceExtensionTestBase::OnSiteListsChanged, 369
296 base::Unretained(this))); 370 SupervisedUserURLFilter* url_filter = service->GetURLFilterForUIThread();
371 url_filter->SetBlockingTaskRunnerForTesting(
372 base::MessageLoopProxy::current());
373 url_filter_observer_.Init(url_filter);
374
375 // Wait for the initial update to finish.
376 url_filter_observer_.Wait();
377 }
378
379 void TearDown() override {
380 // Flush the message loop, to ensure all posted tasks run.
381 base::RunLoop().RunUntilIdle();
297 } 382 }
298 383
299 protected: 384 protected:
300 scoped_refptr<extensions::Extension> MakeThemeExtension() { 385 scoped_refptr<extensions::Extension> MakeThemeExtension() {
301 scoped_ptr<base::DictionaryValue> source(new base::DictionaryValue()); 386 scoped_ptr<base::DictionaryValue> source(new base::DictionaryValue());
302 source->SetString(extensions::manifest_keys::kName, "Theme"); 387 source->SetString(extensions::manifest_keys::kName, "Theme");
303 source->Set(extensions::manifest_keys::kTheme, new base::DictionaryValue()); 388 source->Set(extensions::manifest_keys::kTheme, new base::DictionaryValue());
304 source->SetString(extensions::manifest_keys::kVersion, "1.0"); 389 source->SetString(extensions::manifest_keys::kVersion, "1.0");
305 extensions::ExtensionBuilder builder; 390 extensions::ExtensionBuilder builder;
306 scoped_refptr<extensions::Extension> extension = 391 scoped_refptr<extensions::Extension> extension =
307 builder.SetManifest(source.Pass()).Build(); 392 builder.SetManifest(source.Pass()).Build();
308 return extension; 393 return extension;
309 } 394 }
310 395
311 scoped_refptr<extensions::Extension> MakeExtension(bool by_custodian) { 396 scoped_refptr<extensions::Extension> MakeExtension(bool by_custodian) {
312 scoped_ptr<base::DictionaryValue> manifest = extensions::DictionaryBuilder() 397 scoped_ptr<base::DictionaryValue> manifest = extensions::DictionaryBuilder()
313 .Set(extensions::manifest_keys::kName, "Extension") 398 .Set(extensions::manifest_keys::kName, "Extension")
314 .Set(extensions::manifest_keys::kVersion, "1.0") 399 .Set(extensions::manifest_keys::kVersion, "1.0")
315 .Build(); 400 .Build();
316 int creation_flags = extensions::Extension::NO_FLAGS; 401 int creation_flags = extensions::Extension::NO_FLAGS;
317 if (by_custodian) 402 if (by_custodian)
318 creation_flags |= extensions::Extension::WAS_INSTALLED_BY_CUSTODIAN; 403 creation_flags |= extensions::Extension::WAS_INSTALLED_BY_CUSTODIAN;
319 extensions::ExtensionBuilder builder; 404 extensions::ExtensionBuilder builder;
320 scoped_refptr<extensions::Extension> extension = 405 scoped_refptr<extensions::Extension> extension =
321 builder.SetManifest(manifest.Pass()).AddFlags(creation_flags).Build(); 406 builder.SetManifest(manifest.Pass()).AddFlags(creation_flags).Build();
322 return extension; 407 return extension;
323 } 408 }
324 409
325 void OnSiteListsChanged(
326 const std::vector<scoped_refptr<SupervisedUserSiteList> >& site_lists) {
327 site_lists_ = site_lists;
328 sites_.clear();
329 for (const scoped_refptr<SupervisedUserSiteList>& site_list : site_lists) {
330 const std::vector<SupervisedUserSiteList::Site>& sites =
331 site_list->sites();
332 sites_.insert(sites_.end(), sites.begin(), sites.end());
333 }
334 }
335
336 bool is_supervised_; 410 bool is_supervised_;
337 extensions::ScopedCurrentChannel channel_; 411 extensions::ScopedCurrentChannel channel_;
338 std::vector<scoped_refptr<SupervisedUserSiteList> > site_lists_; 412 SiteListObserver site_list_observer_;
339 std::vector<SupervisedUserSiteList::Site> sites_; 413 SupervisedUserURLFilterObserver url_filter_observer_;
340 }; 414 };
341 415
342 class SupervisedUserServiceExtensionTestUnsupervised 416 class SupervisedUserServiceExtensionTestUnsupervised
343 : public SupervisedUserServiceExtensionTestBase { 417 : public SupervisedUserServiceExtensionTestBase {
344 public: 418 public:
345 SupervisedUserServiceExtensionTestUnsupervised() 419 SupervisedUserServiceExtensionTestUnsupervised()
346 : SupervisedUserServiceExtensionTestBase(false) {} 420 : SupervisedUserServiceExtensionTestBase(false) {}
347 }; 421 };
348 422
349 class SupervisedUserServiceExtensionTest 423 class SupervisedUserServiceExtensionTest
(...skipping 17 matching lines...) Expand all
367 base::string16 error_2; 441 base::string16 error_2;
368 EXPECT_TRUE( 442 EXPECT_TRUE(
369 supervised_user_service->UserMayModifySettings(extension.get(), 443 supervised_user_service->UserMayModifySettings(extension.get(),
370 &error_2)); 444 &error_2));
371 EXPECT_EQ(base::string16(), error_2); 445 EXPECT_EQ(base::string16(), error_2);
372 } 446 }
373 447
374 TEST_F(SupervisedUserServiceExtensionTest, ExtensionManagementPolicyProvider) { 448 TEST_F(SupervisedUserServiceExtensionTest, ExtensionManagementPolicyProvider) {
375 SupervisedUserService* supervised_user_service = 449 SupervisedUserService* supervised_user_service =
376 SupervisedUserServiceFactory::GetForProfile(profile_.get()); 450 SupervisedUserServiceFactory::GetForProfile(profile_.get());
377 SupervisedUserURLFilterObserver observer(
378 supervised_user_service->GetURLFilterForUIThread());
379 ASSERT_TRUE(profile_->IsSupervised()); 451 ASSERT_TRUE(profile_->IsSupervised());
380 // Wait for the initial update to finish (otherwise we'll get leaks).
381 observer.Wait();
382 452
383 // Check that a supervised user can install a theme. 453 // Check that a supervised user can install a theme.
384 scoped_refptr<extensions::Extension> theme = MakeThemeExtension(); 454 scoped_refptr<extensions::Extension> theme = MakeThemeExtension();
385 base::string16 error_1; 455 base::string16 error_1;
386 EXPECT_TRUE(supervised_user_service->UserMayLoad(theme.get(), &error_1)); 456 EXPECT_TRUE(supervised_user_service->UserMayLoad(theme.get(), &error_1));
387 EXPECT_TRUE(error_1.empty()); 457 EXPECT_TRUE(error_1.empty());
388 EXPECT_TRUE( 458 EXPECT_TRUE(
389 supervised_user_service->UserMayModifySettings(theme.get(), &error_1)); 459 supervised_user_service->UserMayModifySettings(theme.get(), &error_1));
390 EXPECT_TRUE(error_1.empty()); 460 EXPECT_TRUE(error_1.empty());
391 461
(...skipping 25 matching lines...) Expand all
417 EXPECT_FALSE(supervised_user_service->GetDebugPolicyProviderName().empty()); 487 EXPECT_FALSE(supervised_user_service->GetDebugPolicyProviderName().empty());
418 #endif 488 #endif
419 } 489 }
420 490
421 TEST_F(SupervisedUserServiceExtensionTest, NoContentPacks) { 491 TEST_F(SupervisedUserServiceExtensionTest, NoContentPacks) {
422 SupervisedUserService* supervised_user_service = 492 SupervisedUserService* supervised_user_service =
423 SupervisedUserServiceFactory::GetForProfile(profile_.get()); 493 SupervisedUserServiceFactory::GetForProfile(profile_.get());
424 SupervisedUserURLFilter* url_filter = 494 SupervisedUserURLFilter* url_filter =
425 supervised_user_service->GetURLFilterForUIThread(); 495 supervised_user_service->GetURLFilterForUIThread();
426 496
497 // ASSERT_EQ instead of ASSERT_TRUE([...].empty()) so that the error
498 // message contains the size in case of failure.
499 ASSERT_EQ(0u, site_list_observer_.site_lists().size());
500
427 GURL url("http://youtube.com"); 501 GURL url("http://youtube.com");
428 // ASSERT_EQ instead of ASSERT_TRUE(site_lists_.empty()) so that the error
429 // message contains the size in case of failure.
430 ASSERT_EQ(0u, site_lists_.size());
431 EXPECT_EQ(SupervisedUserURLFilter::ALLOW, 502 EXPECT_EQ(SupervisedUserURLFilter::ALLOW,
432 url_filter->GetFilteringBehaviorForURL(url)); 503 url_filter->GetFilteringBehaviorForURL(url));
433 } 504 }
434 505
435 TEST_F(SupervisedUserServiceExtensionTest, InstallContentPacks) { 506 TEST_F(SupervisedUserServiceExtensionTest, InstallContentPacks) {
436 SupervisedUserService* supervised_user_service = 507 SupervisedUserService* supervised_user_service =
437 SupervisedUserServiceFactory::GetForProfile(profile_.get()); 508 SupervisedUserServiceFactory::GetForProfile(profile_.get());
438 SupervisedUserURLFilter* url_filter = 509 SupervisedUserURLFilter* url_filter =
439 supervised_user_service->GetURLFilterForUIThread(); 510 supervised_user_service->GetURLFilterForUIThread();
440 SupervisedUserURLFilterObserver observer(url_filter);
441 observer.Wait();
442 511
443 GURL example_url("http://example.com"); 512 GURL example_url("http://example.com");
444 GURL moose_url("http://moose.org"); 513 GURL moose_url("http://moose.org");
445 EXPECT_EQ(SupervisedUserURLFilter::ALLOW, 514 EXPECT_EQ(SupervisedUserURLFilter::ALLOW,
446 url_filter->GetFilteringBehaviorForURL(example_url)); 515 url_filter->GetFilteringBehaviorForURL(example_url));
447 516
448 profile_->GetPrefs()->SetInteger( 517 profile_->GetPrefs()->SetInteger(
449 prefs::kDefaultSupervisedUserFilteringBehavior, 518 prefs::kDefaultSupervisedUserFilteringBehavior,
450 SupervisedUserURLFilter::BLOCK); 519 SupervisedUserURLFilter::BLOCK);
451 EXPECT_EQ(SupervisedUserURLFilter::BLOCK, 520 EXPECT_EQ(SupervisedUserURLFilter::BLOCK,
452 url_filter->GetFilteringBehaviorForURL(example_url)); 521 url_filter->GetFilteringBehaviorForURL(example_url));
453 522
454 profile_->GetPrefs()->SetInteger( 523 profile_->GetPrefs()->SetInteger(
455 prefs::kDefaultSupervisedUserFilteringBehavior, 524 prefs::kDefaultSupervisedUserFilteringBehavior,
456 SupervisedUserURLFilter::WARN); 525 SupervisedUserURLFilter::WARN);
457 EXPECT_EQ(SupervisedUserURLFilter::WARN, 526 EXPECT_EQ(SupervisedUserURLFilter::WARN,
458 url_filter->GetFilteringBehaviorForURL(example_url)); 527 url_filter->GetFilteringBehaviorForURL(example_url));
459 528
460 // Load a whitelist. 529 // Load a whitelist.
461 base::FilePath test_data_dir; 530 base::FilePath test_data_dir;
462 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir)); 531 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir));
463 SupervisedUserWhitelistService* whitelist_service = 532 SupervisedUserWhitelistService* whitelist_service =
464 supervised_user_service->GetWhitelistService(); 533 supervised_user_service->GetWhitelistService();
465 base::FilePath whitelist_path = 534 base::FilePath whitelist_path =
466 test_data_dir.AppendASCII("whitelists/content_pack/site_list.json"); 535 test_data_dir.AppendASCII("whitelists/content_pack/site_list.json");
467 whitelist_service->LoadWhitelistForTesting("aaaa", whitelist_path); 536 whitelist_service->LoadWhitelistForTesting("aaaa", whitelist_path);
468 observer.Wait(); 537 site_list_observer_.Wait();
469 538
470 ASSERT_EQ(1u, site_lists_.size()); 539 ASSERT_EQ(1u, site_list_observer_.site_lists().size());
471 ASSERT_EQ(3u, sites_.size()); 540 ASSERT_EQ(3u, site_list_observer_.sites().size());
472 EXPECT_EQ(base::ASCIIToUTF16("YouTube"), sites_[0].name); 541 EXPECT_EQ(base::ASCIIToUTF16("YouTube"), site_list_observer_.sites()[0].name);
473 EXPECT_EQ(base::ASCIIToUTF16("Homestar Runner"), sites_[1].name); 542 EXPECT_EQ(base::ASCIIToUTF16("Homestar Runner"),
474 EXPECT_EQ(base::string16(), sites_[2].name); 543 site_list_observer_.sites()[1].name);
544 EXPECT_EQ(base::string16(), site_list_observer_.sites()[2].name);
475 545
546 url_filter_observer_.Wait();
476 EXPECT_EQ(SupervisedUserURLFilter::ALLOW, 547 EXPECT_EQ(SupervisedUserURLFilter::ALLOW,
477 url_filter->GetFilteringBehaviorForURL(example_url)); 548 url_filter->GetFilteringBehaviorForURL(example_url));
478 EXPECT_EQ(SupervisedUserURLFilter::WARN, 549 EXPECT_EQ(SupervisedUserURLFilter::WARN,
479 url_filter->GetFilteringBehaviorForURL(moose_url)); 550 url_filter->GetFilteringBehaviorForURL(moose_url));
480 551
481 // Load a second whitelist. 552 // Load a second whitelist.
482 whitelist_path = 553 whitelist_path =
483 test_data_dir.AppendASCII("whitelists/content_pack_2/site_list.json"); 554 test_data_dir.AppendASCII("whitelists/content_pack_2/site_list.json");
484 whitelist_service->LoadWhitelistForTesting("bbbb", whitelist_path); 555 whitelist_service->LoadWhitelistForTesting("bbbb", whitelist_path);
485 observer.Wait(); 556 site_list_observer_.Wait();
486 557
487 ASSERT_EQ(2u, site_lists_.size()); 558 ASSERT_EQ(2u, site_list_observer_.site_lists().size());
488 ASSERT_EQ(4u, sites_.size()); 559 ASSERT_EQ(4u, site_list_observer_.sites().size());
489 560
490 // The site lists might be returned in any order, so we put them into a set. 561 // The site lists might be returned in any order, so we put them into a set.
491 std::set<std::string> site_names; 562 std::set<std::string> site_names;
492 for (const SupervisedUserSiteList::Site& site : sites_) 563 for (const SupervisedUserSiteList::Site& site : site_list_observer_.sites())
493 site_names.insert(base::UTF16ToUTF8(site.name)); 564 site_names.insert(base::UTF16ToUTF8(site.name));
494 EXPECT_EQ(1u, site_names.count("YouTube")); 565 EXPECT_EQ(1u, site_names.count("YouTube"));
495 EXPECT_EQ(1u, site_names.count("Homestar Runner")); 566 EXPECT_EQ(1u, site_names.count("Homestar Runner"));
496 EXPECT_EQ(1u, site_names.count(std::string())); 567 EXPECT_EQ(1u, site_names.count(std::string()));
497 EXPECT_EQ(1u, site_names.count("Moose")); 568 EXPECT_EQ(1u, site_names.count("Moose"));
498 569
570 url_filter_observer_.Wait();
499 EXPECT_EQ(SupervisedUserURLFilter::ALLOW, 571 EXPECT_EQ(SupervisedUserURLFilter::ALLOW,
500 url_filter->GetFilteringBehaviorForURL(example_url)); 572 url_filter->GetFilteringBehaviorForURL(example_url));
501 EXPECT_EQ(SupervisedUserURLFilter::ALLOW, 573 EXPECT_EQ(SupervisedUserURLFilter::ALLOW,
502 url_filter->GetFilteringBehaviorForURL(moose_url)); 574 url_filter->GetFilteringBehaviorForURL(moose_url));
503 575
504 // Unload the first whitelist. 576 // Unload the first whitelist.
505 whitelist_service->UnloadWhitelist("aaaa"); 577 whitelist_service->UnloadWhitelist("aaaa");
506 observer.Wait(); 578 site_list_observer_.Wait();
507 579
508 ASSERT_EQ(1u, site_lists_.size()); 580 ASSERT_EQ(1u, site_list_observer_.site_lists().size());
509 ASSERT_EQ(1u, sites_.size()); 581 ASSERT_EQ(1u, site_list_observer_.sites().size());
510 EXPECT_EQ(base::ASCIIToUTF16("Moose"), sites_[0].name); 582 EXPECT_EQ(base::ASCIIToUTF16("Moose"), site_list_observer_.sites()[0].name);
511 583
584 url_filter_observer_.Wait();
512 EXPECT_EQ(SupervisedUserURLFilter::WARN, 585 EXPECT_EQ(SupervisedUserURLFilter::WARN,
513 url_filter->GetFilteringBehaviorForURL(example_url)); 586 url_filter->GetFilteringBehaviorForURL(example_url));
514 EXPECT_EQ(SupervisedUserURLFilter::ALLOW, 587 EXPECT_EQ(SupervisedUserURLFilter::ALLOW,
515 url_filter->GetFilteringBehaviorForURL(moose_url)); 588 url_filter->GetFilteringBehaviorForURL(moose_url));
516 } 589 }
517 #endif // defined(ENABLE_EXTENSIONS) 590 #endif // defined(ENABLE_EXTENSIONS)
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/supervised_user/supervised_user_url_filter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698