Index: components/safe_browsing_db/v4_update_protocol_manager_unittest.cc |
diff --git a/components/safe_browsing_db/v4_update_protocol_manager_unittest.cc b/components/safe_browsing_db/v4_update_protocol_manager_unittest.cc |
index 336c7e7db2a64c2d58ce9afdad545c74fab5f50a..f380e55f903d35d6d5b3c8d3d71b6a257fad0f27 100644 |
--- a/components/safe_browsing_db/v4_update_protocol_manager_unittest.cc |
+++ b/components/safe_browsing_db/v4_update_protocol_manager_unittest.cc |
@@ -8,6 +8,7 @@ |
#include <vector> |
#include "base/base64.h" |
+#include "base/memory/ptr_util.h" |
#include "base/strings/stringprintf.h" |
#include "base/test/test_simple_task_runner.h" |
#include "base/threading/thread_task_runner_handle.h" |
@@ -19,6 +20,7 @@ |
#include "net/base/net_errors.h" |
#include "net/url_request/test_url_fetcher_factory.h" |
#include "testing/gtest/include/gtest/gtest.h" |
+#include "testing/platform_test.h" |
using base::Time; |
using base::TimeDelta; |
@@ -33,7 +35,13 @@ const char kKeyParam[] = "test_key_param"; |
namespace safe_browsing { |
-class V4UpdateProtocolManagerTest : public testing::Test { |
+class V4UpdateProtocolManagerTest : public PlatformTest { |
+ void SetUp() override { |
+ PlatformTest::SetUp(); |
+ |
+ SetupStoreStates(); |
+ } |
+ |
protected: |
void ValidateGetUpdatesResults( |
const std::vector<ListUpdateResponse>& expected_lurs, |
@@ -58,8 +66,6 @@ class V4UpdateProtocolManagerTest : public testing::Test { |
} |
std::unique_ptr<V4UpdateProtocolManager> CreateProtocolManager( |
- const base::hash_map<UpdateListIdentifier, std::string> |
- current_list_states, |
const std::vector<ListUpdateResponse>& expected_lurs) { |
V4ProtocolConfig config; |
config.client_name = kClient; |
@@ -67,28 +73,23 @@ class V4UpdateProtocolManagerTest : public testing::Test { |
config.key_param = kKeyParam; |
config.disable_auto_update = false; |
return V4UpdateProtocolManager::Create( |
- NULL, config, current_list_states, |
+ NULL, config, |
base::Bind(&V4UpdateProtocolManagerTest::ValidateGetUpdatesResults, |
base::Unretained(this), expected_lurs)); |
} |
- void SetupCurrentListStates( |
- base::hash_map<UpdateListIdentifier, std::string>* current_list_states) { |
- UpdateListIdentifier list_identifier; |
- list_identifier.platform_type = WINDOWS_PLATFORM; |
- list_identifier.threat_entry_type = URL; |
- list_identifier.threat_type = MALWARE_THREAT; |
- current_list_states->insert({list_identifier, "initial_state_1"}); |
- |
- list_identifier.platform_type = WINDOWS_PLATFORM; |
- list_identifier.threat_entry_type = URL; |
- list_identifier.threat_type = UNWANTED_SOFTWARE; |
- current_list_states->insert({list_identifier, "initial_state_2"}); |
- |
- list_identifier.platform_type = WINDOWS_PLATFORM; |
- list_identifier.threat_entry_type = EXECUTABLE; |
- list_identifier.threat_type = MALWARE_THREAT; |
- current_list_states->insert({list_identifier, "initial_state_3"}); |
+ void SetupStoreStates() { |
+ store_state_map_ = base::MakeUnique<StoreStateMap>(); |
+ |
+ UpdateListIdentifier win_url_malware(WINDOWS_PLATFORM, URL, MALWARE_THREAT); |
+ store_state_map_->insert({win_url_malware, "initial_state_1"}); |
+ |
+ UpdateListIdentifier win_url_uws(WINDOWS_PLATFORM, URL, UNWANTED_SOFTWARE); |
+ store_state_map_->insert({win_url_uws, "initial_state_2"}); |
+ |
+ UpdateListIdentifier win_exe_uws(WINDOWS_PLATFORM, EXECUTABLE, |
+ UNWANTED_SOFTWARE); |
+ store_state_map_->insert({win_exe_uws, "initial_state_3"}); |
} |
void SetupExpectedListUpdateResponse( |
@@ -137,6 +138,7 @@ class V4UpdateProtocolManagerTest : public testing::Test { |
} |
bool expect_callback_to_be_called_; |
+ std::unique_ptr<StoreStateMap> store_state_map_; |
}; |
// TODO(vakh): Add many more tests. |
@@ -145,16 +147,16 @@ TEST_F(V4UpdateProtocolManagerTest, TestGetUpdatesErrorHandlingNetwork) { |
new base::TestSimpleTaskRunner()); |
base::ThreadTaskRunnerHandle runner_handler(runner); |
net::TestURLFetcherFactory factory; |
- const base::hash_map<UpdateListIdentifier, std::string> current_list_states; |
const std::vector<ListUpdateResponse> expected_lurs; |
std::unique_ptr<V4UpdateProtocolManager> pm( |
- CreateProtocolManager(current_list_states, expected_lurs)); |
+ CreateProtocolManager(expected_lurs)); |
runner->ClearPendingTasks(); |
// Initial state. No errors. |
EXPECT_EQ(0ul, pm->update_error_count_); |
EXPECT_EQ(1ul, pm->update_back_off_mult_); |
expect_callback_to_be_called_ = false; |
+ pm->store_state_map_ = std::move(store_state_map_); |
pm->IssueUpdateRequest(); |
EXPECT_FALSE(pm->IsUpdateScheduled()); |
@@ -180,15 +182,15 @@ TEST_F(V4UpdateProtocolManagerTest, TestGetUpdatesErrorHandlingResponseCode) { |
base::ThreadTaskRunnerHandle runner_handler(runner); |
net::TestURLFetcherFactory factory; |
const std::vector<ListUpdateResponse> expected_lurs; |
- const base::hash_map<UpdateListIdentifier, std::string> current_list_states; |
std::unique_ptr<V4UpdateProtocolManager> pm( |
- CreateProtocolManager(current_list_states, expected_lurs)); |
+ CreateProtocolManager(expected_lurs)); |
runner->ClearPendingTasks(); |
// Initial state. No errors. |
EXPECT_EQ(0ul, pm->update_error_count_); |
EXPECT_EQ(1ul, pm->update_back_off_mult_); |
expect_callback_to_be_called_ = false; |
+ pm->store_state_map_ = std::move(store_state_map_); |
pm->IssueUpdateRequest(); |
EXPECT_FALSE(pm->IsUpdateScheduled()); |
@@ -216,16 +218,15 @@ TEST_F(V4UpdateProtocolManagerTest, TestGetUpdatesNoError) { |
net::TestURLFetcherFactory factory; |
std::vector<ListUpdateResponse> expected_lurs; |
SetupExpectedListUpdateResponse(&expected_lurs); |
- base::hash_map<UpdateListIdentifier, std::string> current_list_states; |
- SetupCurrentListStates(¤t_list_states); |
std::unique_ptr<V4UpdateProtocolManager> pm( |
- CreateProtocolManager(current_list_states, expected_lurs)); |
+ CreateProtocolManager(expected_lurs)); |
runner->ClearPendingTasks(); |
// Initial state. No errors. |
EXPECT_EQ(0ul, pm->update_error_count_); |
EXPECT_EQ(1ul, pm->update_back_off_mult_); |
expect_callback_to_be_called_ = true; |
+ pm->store_state_map_ = std::move(store_state_map_); |
pm->IssueUpdateRequest(); |
EXPECT_FALSE(pm->IsUpdateScheduled()); |
@@ -252,16 +253,15 @@ TEST_F(V4UpdateProtocolManagerTest, TestGetUpdatesWithOneBackoff) { |
net::TestURLFetcherFactory factory; |
std::vector<ListUpdateResponse> expected_lurs; |
SetupExpectedListUpdateResponse(&expected_lurs); |
- base::hash_map<UpdateListIdentifier, std::string> current_list_states; |
- SetupCurrentListStates(¤t_list_states); |
std::unique_ptr<V4UpdateProtocolManager> pm( |
- CreateProtocolManager(current_list_states, expected_lurs)); |
+ CreateProtocolManager(expected_lurs)); |
runner->ClearPendingTasks(); |
// Initial state. No errors. |
EXPECT_EQ(0ul, pm->update_error_count_); |
EXPECT_EQ(1ul, pm->update_back_off_mult_); |
expect_callback_to_be_called_ = false; |
+ pm->store_state_map_ = std::move(store_state_map_); |
pm->IssueUpdateRequest(); |
EXPECT_FALSE(pm->IsUpdateScheduled()); |