Index: chrome/browser/safe_browsing/safe_browsing_test.cc |
diff --git a/chrome/browser/safe_browsing/safe_browsing_test.cc b/chrome/browser/safe_browsing/safe_browsing_test.cc |
index f0c8f42b8a88eec064f22053732d45c7b3e7dbaf..f87bb540f2f2409c1432651f3d39af2fa0c36089 100644 |
--- a/chrome/browser/safe_browsing/safe_browsing_test.cc |
+++ b/chrome/browser/safe_browsing/safe_browsing_test.cc |
@@ -38,7 +38,7 @@ |
#include "chrome/browser/safe_browsing/local_database_manager.h" |
#include "chrome/browser/safe_browsing/local_safebrowsing_test_server.h" |
#include "chrome/browser/safe_browsing/protocol_manager.h" |
-#include "chrome/browser/safe_browsing/safe_browsing_service.h" |
+#include "chrome/browser/safe_browsing/test_safe_browsing_service.h" |
#include "chrome/browser/ui/browser.h" |
#include "chrome/common/chrome_switches.h" |
#include "chrome/common/url_constants.h" |
@@ -115,51 +115,13 @@ bool ParsePhishingUrls(const std::string& data, |
return true; |
} |
-class FakeSafeBrowsingService : public SafeBrowsingService { |
- public: |
- explicit FakeSafeBrowsingService(const std::string& url_prefix) |
- : url_prefix_(url_prefix) {} |
- |
- SafeBrowsingProtocolConfig GetProtocolConfig() const override { |
- SafeBrowsingProtocolConfig config; |
- config.url_prefix = url_prefix_; |
- // Makes sure the auto update is not triggered. The tests will force the |
- // update when needed. |
- config.disable_auto_update = true; |
- config.client_name = "browser_tests"; |
- return config; |
- } |
- |
- private: |
- ~FakeSafeBrowsingService() override {} |
- |
- std::string url_prefix_; |
- |
- DISALLOW_COPY_AND_ASSIGN(FakeSafeBrowsingService); |
-}; |
- |
-// Factory that creates FakeSafeBrowsingService instances. |
-class TestSafeBrowsingServiceFactory : public SafeBrowsingServiceFactory { |
- public: |
- explicit TestSafeBrowsingServiceFactory(const std::string& url_prefix) |
- : url_prefix_(url_prefix) {} |
- |
- SafeBrowsingService* CreateSafeBrowsingService() override { |
- return new FakeSafeBrowsingService(url_prefix_); |
- } |
- |
- private: |
- std::string url_prefix_; |
-}; |
- |
} // namespace |
// This starts the browser and keeps status of states related to SafeBrowsing. |
class SafeBrowsingServerTest : public InProcessBrowserTest { |
public: |
SafeBrowsingServerTest() |
- : safe_browsing_service_(NULL), |
- is_database_ready_(true), |
+ : is_database_ready_(true), |
is_update_scheduled_(false), |
is_checked_url_in_db_(false), |
is_checked_url_safe_(false) { |
@@ -168,11 +130,13 @@ class SafeBrowsingServerTest : public InProcessBrowserTest { |
~SafeBrowsingServerTest() override {} |
void UpdateSafeBrowsingStatus() { |
- ASSERT_TRUE(safe_browsing_service_); |
+ ASSERT_TRUE(sb_factory_->test_safe_browsing_service()); |
base::AutoLock lock(update_status_mutex_); |
- last_update_ = safe_browsing_service_->protocol_manager_->last_update(); |
+ last_update_ = sb_factory_->test_safe_browsing_service() |
+ ->protocol_manager_->last_update(); |
is_update_scheduled_ = |
- safe_browsing_service_->protocol_manager_->update_timer_.IsRunning(); |
+ sb_factory_->test_safe_browsing_service()->protocol_manager_ |
+ ->update_timer_.IsRunning(); |
} |
void ForceUpdate() { |
@@ -187,9 +151,9 @@ class SafeBrowsingServerTest : public InProcessBrowserTest { |
void ForceUpdateOnIOThread() { |
EXPECT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
- ASSERT_TRUE(safe_browsing_service_); |
- safe_browsing_service_->protocol_manager_->ForceScheduleNextUpdate( |
- base::TimeDelta::FromSeconds(0)); |
+ ASSERT_TRUE(sb_factory_->test_safe_browsing_service()); |
+ sb_factory_->test_safe_browsing_service()->protocol_manager_ |
+ ->ForceScheduleNextUpdate(base::TimeDelta::FromSeconds(0)); |
} |
@@ -200,7 +164,7 @@ class SafeBrowsingServerTest : public InProcessBrowserTest { |
} |
void CheckUrl(SafeBrowsingDatabaseManager::Client* helper, const GURL& url) { |
- ASSERT_TRUE(safe_browsing_service_); |
+ ASSERT_TRUE(sb_factory_->test_safe_browsing_service()); |
base::AutoLock lock(update_status_mutex_); |
if (database_manager()->CheckBrowseUrl(url, helper)) { |
is_checked_url_in_db_ = false; |
@@ -214,7 +178,7 @@ class SafeBrowsingServerTest : public InProcessBrowserTest { |
} |
SafeBrowsingDatabaseManager* database_manager() { |
- return safe_browsing_service_->database_manager().get(); |
+ return sb_factory_->test_safe_browsing_service()->database_manager().get(); |
} |
// TODO(nparker): Remove the need for this by wiring in our own |
@@ -263,9 +227,14 @@ class SafeBrowsingServerTest : public InProcessBrowserTest { |
} |
protected: |
- bool InitSafeBrowsingService() { |
- safe_browsing_service_ = g_browser_process->safe_browsing_service(); |
- return safe_browsing_service_ != NULL; |
+ void SetProtocolConfigURLPrefix(const std::string& url_prefix) { |
+ SafeBrowsingProtocolConfig config; |
+ config.url_prefix = url_prefix; |
+ // Makes sure the auto update is not triggered. The tests will force the |
+ // update when needed. |
+ config.disable_auto_update = true; |
+ config.client_name = "browser_tests"; |
+ sb_factory_->SetTestProtocolConfig(config); |
} |
void SetUp() override { |
@@ -280,9 +249,9 @@ class SafeBrowsingServerTest : public InProcessBrowserTest { |
ASSERT_TRUE(test_server_->Start()); |
LOG(INFO) << "server is " << test_server_->host_port_pair().ToString(); |
+ sb_factory_.reset(new TestSafeBrowsingServiceFactory()); |
// Point to the testing server for all SafeBrowsing requests. |
- std::string url_prefix = test_server_->GetURL("safebrowsing").spec(); |
- sb_factory_.reset(new TestSafeBrowsingServiceFactory(url_prefix)); |
+ SetProtocolConfigURLPrefix(test_server_->GetURL("safebrowsing").spec()); |
SafeBrowsingService::RegisterFactory(sb_factory_.get()); |
InProcessBrowserTest::SetUp(); |
@@ -311,14 +280,13 @@ class SafeBrowsingServerTest : public InProcessBrowserTest { |
void SetTestStep(int step) { |
std::string test_step = base::StringPrintf("test_step=%d", step); |
- safe_browsing_service_->protocol_manager_->set_additional_query(test_step); |
+ sb_factory_->test_safe_browsing_service()->protocol_manager_ |
+ ->set_additional_query(test_step); |
} |
- private: |
std::unique_ptr<TestSafeBrowsingServiceFactory> sb_factory_; |
- SafeBrowsingService* safe_browsing_service_; |
- |
+ private: |
std::unique_ptr<net::SpawnedTestServer> test_server_; |
// Protects all variables below since they are read on UI thread |
@@ -501,8 +469,7 @@ class SafeBrowsingServerTestHelper |
// TODO(shess): Disabled pending new data for third_party/safe_browsing/testing/ |
IN_PROC_BROWSER_TEST_F(SafeBrowsingServerTest, |
DISABLED_SafeBrowsingServerTest) { |
- LOG(INFO) << "Start test"; |
- ASSERT_TRUE(InitSafeBrowsingService()); |
+ ASSERT_TRUE(sb_factory_->test_safe_browsing_service() != NULL); |
net::URLRequestContextGetter* request_context = |
browser()->profile()->GetRequestContext(); |
@@ -512,7 +479,7 @@ IN_PROC_BROWSER_TEST_F(SafeBrowsingServerTest, |
// Waits and makes sure safebrowsing update is not happening. |
// The wait will stop once OnWaitForStatusUpdateDone in |
- // safe_browsing_helper is called and status from safe_browsing_service_ |
+ // safe_browsing_helper is called and status from test_safe_browsing_service |
// is checked. |
safe_browsing_helper->UpdateStatus(); |
EXPECT_TRUE(is_database_ready()); |