| Index: chrome/browser/safe_browsing/safe_browsing_service_browsertest.cc
|
| diff --git a/chrome/browser/safe_browsing/safe_browsing_service_browsertest.cc b/chrome/browser/safe_browsing/safe_browsing_service_browsertest.cc
|
| index 871ae6960b9da294af10483c059a8c2c7f4d976a..ea5743ae908ac74d34d571869ec2ce966dc870ca 100644
|
| --- a/chrome/browser/safe_browsing/safe_browsing_service_browsertest.cc
|
| +++ b/chrome/browser/safe_browsing/safe_browsing_service_browsertest.cc
|
| @@ -15,6 +15,7 @@
|
| #include "chrome/browser/prefs/pref_service.h"
|
| #include "chrome/browser/prerender/prerender_manager.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| +#include "chrome/browser/safe_browsing/client_side_detection_service.h"
|
| #include "chrome/browser/safe_browsing/safe_browsing_database.h"
|
| #include "chrome/browser/safe_browsing/safe_browsing_service.h"
|
| #include "chrome/browser/safe_browsing/safe_browsing_util.h"
|
| @@ -315,7 +316,7 @@ class SafeBrowsingServiceTest : public InProcessBrowserTest {
|
| }
|
|
|
| virtual void SetUp() {
|
| - // InProcessBrowserTest::SetUp() intantiates SafebrowsingService and
|
| + // InProcessBrowserTest::SetUp() instantiates SafebrowsingService and
|
| // RegisterFactory has to be called before SafeBrowsingService is created.
|
| SafeBrowsingDatabase::RegisterFactory(&db_factory_);
|
| SafeBrowsingProtocolManager::RegisterFactory(&pm_factory_);
|
| @@ -397,6 +398,15 @@ class SafeBrowsingServiceTest : public InProcessBrowserTest {
|
| sb_service->download_hashcheck_timeout_ms_ = ms;
|
| }
|
|
|
| + void CreateCSDService() {
|
| + safe_browsing::ClientSideDetectionService* csd_service =
|
| + safe_browsing::ClientSideDetectionService::Create(NULL);
|
| + SafeBrowsingService* sb_service =
|
| + g_browser_process->safe_browsing_service();
|
| + sb_service->csd_service_.reset(csd_service);
|
| + sb_service->RefreshState();
|
| + }
|
| +
|
| protected:
|
| StrictMock<MockObserver> observer_;
|
|
|
| @@ -698,14 +708,22 @@ IN_PROC_BROWSER_TEST_F(SafeBrowsingServiceTest, CheckDownloadHashTimedOut) {
|
| }
|
|
|
| IN_PROC_BROWSER_TEST_F(SafeBrowsingServiceTest, StartAndStop) {
|
| + CreateCSDService();
|
| SafeBrowsingService* sb_service = g_browser_process->safe_browsing_service();
|
| + safe_browsing::ClientSideDetectionService* csd_service =
|
| + sb_service->safe_browsing_detection_service();
|
| PrefService* pref_service = browser()->profile()->GetPrefs();
|
|
|
| + ASSERT_TRUE(sb_service != NULL);
|
| + ASSERT_TRUE(csd_service != NULL);
|
| + ASSERT_TRUE(pref_service != NULL);
|
| +
|
| EXPECT_TRUE(pref_service->GetBoolean(prefs::kSafeBrowsingEnabled));
|
|
|
| // SBS might still be starting, make sure this doesn't flake.
|
| WaitForIOThread();
|
| EXPECT_TRUE(sb_service->enabled());
|
| + EXPECT_TRUE(csd_service->enabled());
|
|
|
| // Add a new Profile. SBS should keep running.
|
| ScopedTempDir temp_dir;
|
| @@ -717,27 +735,32 @@ IN_PROC_BROWSER_TEST_F(SafeBrowsingServiceTest, StartAndStop) {
|
| // We don't expect the state to have changed, but if it did, wait for it.
|
| WaitForIOThread();
|
| EXPECT_TRUE(sb_service->enabled());
|
| + EXPECT_TRUE(csd_service->enabled());
|
|
|
| // Change one of the prefs. SBS should keep running.
|
| pref_service->SetBoolean(prefs::kSafeBrowsingEnabled, false);
|
| WaitForIOThread();
|
| EXPECT_TRUE(sb_service->enabled());
|
| + EXPECT_TRUE(csd_service->enabled());
|
|
|
| // Change the other pref. SBS should stop now.
|
| pref_service2->SetBoolean(prefs::kSafeBrowsingEnabled, false);
|
| WaitForIOThread();
|
| EXPECT_FALSE(sb_service->enabled());
|
| + EXPECT_FALSE(csd_service->enabled());
|
|
|
| // Turn it back on. SBS comes back.
|
| pref_service2->SetBoolean(prefs::kSafeBrowsingEnabled, true);
|
| WaitForIOThread();
|
| EXPECT_TRUE(sb_service->enabled());
|
| + EXPECT_TRUE(csd_service->enabled());
|
|
|
| // Delete the Profile. SBS stops again.
|
| pref_service2 = NULL;
|
| profile2.reset();
|
| WaitForIOThread();
|
| EXPECT_FALSE(sb_service->enabled());
|
| + EXPECT_FALSE(csd_service->enabled());
|
| }
|
|
|
| } // namespace
|
|
|