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

Side by Side Diff: chrome/browser/safe_browsing/safe_browsing_service_browsertest.cc

Issue 12212048: Linux/ChromeOS Chromium style checker cleanup, chrome/browser edition. (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: Created 7 years, 10 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 // This test creates a safebrowsing service using test safebrowsing database 5 // This test creates a safebrowsing service using test safebrowsing database
6 // and a test protocol manager. It is used to test logics in safebrowsing 6 // and a test protocol manager. It is used to test logics in safebrowsing
7 // service. 7 // service.
8 8
9 #include <algorithm> 9 #include <algorithm>
10 10
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 } // namespace 63 } // namespace
64 64
65 // A SafeBrowingDatabase class that allows us to inject the malicious URLs. 65 // A SafeBrowingDatabase class that allows us to inject the malicious URLs.
66 class TestSafeBrowsingDatabase : public SafeBrowsingDatabase { 66 class TestSafeBrowsingDatabase : public SafeBrowsingDatabase {
67 public: 67 public:
68 TestSafeBrowsingDatabase() {} 68 TestSafeBrowsingDatabase() {}
69 69
70 virtual ~TestSafeBrowsingDatabase() {} 70 virtual ~TestSafeBrowsingDatabase() {}
71 71
72 // Initializes the database with the given filename. 72 // Initializes the database with the given filename.
73 virtual void Init(const FilePath& filename) {} 73 virtual void Init(const FilePath& filename) OVERRIDE {}
74 74
75 // Deletes the current database and creates a new one. 75 // Deletes the current database and creates a new one.
76 virtual bool ResetDatabase() { 76 virtual bool ResetDatabase() OVERRIDE {
77 badurls_.clear(); 77 badurls_.clear();
78 return true; 78 return true;
79 } 79 }
80 80
81 // Called on the IO thread to check if the given URL is safe or not. If we 81 // Called on the IO thread to check if the given URL is safe or not. If we
82 // can synchronously determine that the URL is safe, CheckUrl returns true, 82 // can synchronously determine that the URL is safe, CheckUrl returns true,
83 // otherwise it returns false. 83 // otherwise it returns false.
84 virtual bool ContainsBrowseUrl(const GURL& url, 84 virtual bool ContainsBrowseUrl(const GURL& url,
85 std::string* matching_list, 85 std::string* matching_list,
86 std::vector<SBPrefix>* prefix_hits, 86 std::vector<SBPrefix>* prefix_hits,
87 std::vector<SBFullHashResult>* full_hits, 87 std::vector<SBFullHashResult>* full_hits,
88 base::Time last_update) { 88 base::Time last_update) OVERRIDE {
89 std::vector<GURL> urls(1, url); 89 std::vector<GURL> urls(1, url);
90 return ContainsUrl(safe_browsing_util::kMalwareList, 90 return ContainsUrl(safe_browsing_util::kMalwareList,
91 safe_browsing_util::kPhishingList, 91 safe_browsing_util::kPhishingList,
92 urls, prefix_hits, full_hits); 92 urls, prefix_hits, full_hits);
93 } 93 }
94 virtual bool ContainsDownloadUrl(const std::vector<GURL>& urls, 94 virtual bool ContainsDownloadUrl(
95 std::vector<SBPrefix>* prefix_hits) { 95 const std::vector<GURL>& urls,
96 std::vector<SBPrefix>* prefix_hits) OVERRIDE {
96 std::vector<SBFullHashResult> full_hits; 97 std::vector<SBFullHashResult> full_hits;
97 bool found = ContainsUrl(safe_browsing_util::kBinUrlList, 98 bool found = ContainsUrl(safe_browsing_util::kBinUrlList,
98 safe_browsing_util::kBinHashList, 99 safe_browsing_util::kBinHashList,
99 urls, prefix_hits, &full_hits); 100 urls, prefix_hits, &full_hits);
100 if (!found) 101 if (!found)
101 return false; 102 return false;
102 DCHECK_LE(1U, prefix_hits->size()); 103 DCHECK_LE(1U, prefix_hits->size());
103 return true; 104 return true;
104 } 105 }
105 virtual bool ContainsDownloadHashPrefix(const SBPrefix& prefix) { 106 virtual bool ContainsDownloadHashPrefix(const SBPrefix& prefix) OVERRIDE {
106 return download_digest_prefix_.count(prefix) > 0; 107 return download_digest_prefix_.count(prefix) > 0;
107 } 108 }
108 virtual bool ContainsCsdWhitelistedUrl(const GURL& url) { 109 virtual bool ContainsCsdWhitelistedUrl(const GURL& url) OVERRIDE {
109 return true; 110 return true;
110 } 111 }
111 virtual bool ContainsDownloadWhitelistedString(const std::string& str) { 112 virtual bool ContainsDownloadWhitelistedString(
113 const std::string& str) OVERRIDE {
112 return true; 114 return true;
113 } 115 }
114 virtual bool ContainsDownloadWhitelistedUrl(const GURL& url) { 116 virtual bool ContainsDownloadWhitelistedUrl(const GURL& url) OVERRIDE {
115 return true; 117 return true;
116 } 118 }
117 virtual bool ContainsExtensionPrefixes( 119 virtual bool ContainsExtensionPrefixes(
118 const std::vector<SBPrefix>& prefixes, 120 const std::vector<SBPrefix>& prefixes,
119 std::vector<SBPrefix>* prefix_hits) OVERRIDE { 121 std::vector<SBPrefix>* prefix_hits) OVERRIDE {
120 return true; 122 return true;
121 } 123 }
122 virtual bool UpdateStarted(std::vector<SBListChunkRanges>* lists) { 124 virtual bool UpdateStarted(std::vector<SBListChunkRanges>* lists) OVERRIDE {
123 ADD_FAILURE() << "Not implemented."; 125 ADD_FAILURE() << "Not implemented.";
124 return false; 126 return false;
125 } 127 }
126 virtual void InsertChunks(const std::string& list_name, 128 virtual void InsertChunks(const std::string& list_name,
127 const SBChunkList& chunks) { 129 const SBChunkList& chunks) OVERRIDE {
128 ADD_FAILURE() << "Not implemented."; 130 ADD_FAILURE() << "Not implemented.";
129 } 131 }
130 virtual void DeleteChunks(const std::vector<SBChunkDelete>& chunk_deletes) { 132 virtual void DeleteChunks(
133 const std::vector<SBChunkDelete>& chunk_deletes) OVERRIDE {
131 ADD_FAILURE() << "Not implemented."; 134 ADD_FAILURE() << "Not implemented.";
132 } 135 }
133 virtual void UpdateFinished(bool update_succeeded) { 136 virtual void UpdateFinished(bool update_succeeded) OVERRIDE {
134 ADD_FAILURE() << "Not implemented."; 137 ADD_FAILURE() << "Not implemented.";
135 } 138 }
136 virtual void CacheHashResults(const std::vector<SBPrefix>& prefixes, 139 virtual void CacheHashResults(const std::vector<SBPrefix>& prefixes,
137 const std::vector<SBFullHashResult>& full_hits) { 140 const std::vector<SBFullHashResult>& full_hits) OVERRIDE {
138 // Do nothing for the cache. 141 // Do nothing for the cache.
139 } 142 }
140 143
141 // Fill up the database with test URL. 144 // Fill up the database with test URL.
142 void AddUrl(const GURL& url, 145 void AddUrl(const GURL& url,
143 const std::string& list_name, 146 const std::string& list_name,
144 const std::vector<SBPrefix>& prefix_hits, 147 const std::vector<SBPrefix>& prefix_hits,
145 const std::vector<SBFullHashResult>& full_hits) { 148 const std::vector<SBFullHashResult>& full_hits) {
146 badurls_[url.spec()].list_name = list_name; 149 badurls_[url.spec()].list_name = list_name;
147 badurls_[url.spec()].prefix_hits = prefix_hits; 150 badurls_[url.spec()].prefix_hits = prefix_hits;
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 // Factory that creates TestSafeBrowsingDatabase instances. 199 // Factory that creates TestSafeBrowsingDatabase instances.
197 class TestSafeBrowsingDatabaseFactory : public SafeBrowsingDatabaseFactory { 200 class TestSafeBrowsingDatabaseFactory : public SafeBrowsingDatabaseFactory {
198 public: 201 public:
199 TestSafeBrowsingDatabaseFactory() : db_(NULL) {} 202 TestSafeBrowsingDatabaseFactory() : db_(NULL) {}
200 virtual ~TestSafeBrowsingDatabaseFactory() {} 203 virtual ~TestSafeBrowsingDatabaseFactory() {}
201 204
202 virtual SafeBrowsingDatabase* CreateSafeBrowsingDatabase( 205 virtual SafeBrowsingDatabase* CreateSafeBrowsingDatabase(
203 bool enable_download_protection, 206 bool enable_download_protection,
204 bool enable_client_side_whitelist, 207 bool enable_client_side_whitelist,
205 bool enable_download_whitelist, 208 bool enable_download_whitelist,
206 bool enable_extension_blacklist) { 209 bool enable_extension_blacklist) OVERRIDE {
207 db_ = new TestSafeBrowsingDatabase(); 210 db_ = new TestSafeBrowsingDatabase();
208 return db_; 211 return db_;
209 } 212 }
210 TestSafeBrowsingDatabase* GetDb() { 213 TestSafeBrowsingDatabase* GetDb() {
211 return db_; 214 return db_;
212 } 215 }
213 private: 216 private:
214 // Owned by the SafebrowsingService. 217 // Owned by the SafebrowsingService.
215 TestSafeBrowsingDatabase* db_; 218 TestSafeBrowsingDatabase* db_;
216 }; 219 };
217 220
218 // A TestProtocolManager that could return fixed responses from 221 // A TestProtocolManager that could return fixed responses from
219 // safebrowsing server for testing purpose. 222 // safebrowsing server for testing purpose.
220 class TestProtocolManager : public SafeBrowsingProtocolManager { 223 class TestProtocolManager : public SafeBrowsingProtocolManager {
221 public: 224 public:
222 TestProtocolManager(SafeBrowsingProtocolManagerDelegate* delegate, 225 TestProtocolManager(SafeBrowsingProtocolManagerDelegate* delegate,
223 net::URLRequestContextGetter* request_context_getter, 226 net::URLRequestContextGetter* request_context_getter,
224 const SafeBrowsingProtocolConfig& config) 227 const SafeBrowsingProtocolConfig& config)
225 : SafeBrowsingProtocolManager(delegate, request_context_getter, config) { 228 : SafeBrowsingProtocolManager(delegate, request_context_getter, config) {
226 create_count_++; 229 create_count_++;
227 } 230 }
228 231
229 ~TestProtocolManager() { 232 virtual ~TestProtocolManager() {
230 delete_count_++; 233 delete_count_++;
231 } 234 }
232 235
233 // This function is called when there is a prefix hit in local safebrowsing 236 // This function is called when there is a prefix hit in local safebrowsing
234 // database and safebrowsing service issues a get hash request to backends. 237 // database and safebrowsing service issues a get hash request to backends.
235 // We return a result from the prefilled full_hashes_ hash_map to simulate 238 // We return a result from the prefilled full_hashes_ hash_map to simulate
236 // server's response. At the same time, latency is added to simulate real 239 // server's response. At the same time, latency is added to simulate real
237 // life network issues. 240 // life network issues.
238 virtual void GetFullHash( 241 virtual void GetFullHash(
239 const std::vector<SBPrefix>& prefixes, 242 const std::vector<SBPrefix>& prefixes,
(...skipping 622 matching lines...) Expand 10 before | Expand all | Expand 10 after
862 865
863 // End the test, shutting down the browser. 866 // End the test, shutting down the browser.
864 // SafeBrowsingServiceShutdownTest::TearDown will check the create_count and 867 // SafeBrowsingServiceShutdownTest::TearDown will check the create_count and
865 // delete_count again. 868 // delete_count again.
866 } 869 }
867 870
868 class SafeBrowsingDatabaseManagerCookieTest : public InProcessBrowserTest { 871 class SafeBrowsingDatabaseManagerCookieTest : public InProcessBrowserTest {
869 public: 872 public:
870 SafeBrowsingDatabaseManagerCookieTest() {} 873 SafeBrowsingDatabaseManagerCookieTest() {}
871 874
872 virtual void SetUpCommandLine(CommandLine* command_line) { 875 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
873 // We need to start the test server to get the host&port in the url. 876 // We need to start the test server to get the host&port in the url.
874 ASSERT_TRUE(test_server()->Start()); 877 ASSERT_TRUE(test_server()->Start());
875 878
876 // Makes sure the auto update is not triggered. This test will force the 879 // Makes sure the auto update is not triggered. This test will force the
877 // update when needed. 880 // update when needed.
878 command_line->AppendSwitch(switches::kSbDisableAutoUpdate); 881 command_line->AppendSwitch(switches::kSbDisableAutoUpdate);
879 882
880 // Point to the testing server for all SafeBrowsing requests. 883 // Point to the testing server for all SafeBrowsing requests.
881 GURL url_prefix = test_server()->GetURL( 884 GURL url_prefix = test_server()->GetURL(
882 "expect-and-set-cookie?expect=a%3db" 885 "expect-and-set-cookie?expect=a%3db"
883 "&set=c%3dd%3b%20Expires=Fri,%2001%20Jan%202038%2001:01:01%20GMT" 886 "&set=c%3dd%3b%20Expires=Fri,%2001%20Jan%202038%2001:01:01%20GMT"
884 "&data=foo#"); 887 "&data=foo#");
885 command_line->AppendSwitchASCII(switches::kSbURLPrefix, url_prefix.spec()); 888 command_line->AppendSwitchASCII(switches::kSbURLPrefix, url_prefix.spec());
886 } 889 }
887 890
888 virtual bool SetUpUserDataDirectory() { 891 virtual bool SetUpUserDataDirectory() OVERRIDE {
889 FilePath cookie_path(SafeBrowsingService::GetCookieFilePathForTesting()); 892 FilePath cookie_path(SafeBrowsingService::GetCookieFilePathForTesting());
890 EXPECT_FALSE(file_util::PathExists(cookie_path)); 893 EXPECT_FALSE(file_util::PathExists(cookie_path));
891 894
892 FilePath test_dir; 895 FilePath test_dir;
893 if (!PathService::Get(chrome::DIR_TEST_DATA, &test_dir)) { 896 if (!PathService::Get(chrome::DIR_TEST_DATA, &test_dir)) {
894 EXPECT_TRUE(false); 897 EXPECT_TRUE(false);
895 return false; 898 return false;
896 } 899 }
897 900
898 // Initialize the SafeBrowsing cookies with a pre-created cookie store. It 901 // Initialize the SafeBrowsing cookies with a pre-created cookie store. It
(...skipping 24 matching lines...) Expand all
923 return false; 926 return false;
924 } 927 }
925 if (!smt.Run()) { 928 if (!smt.Run()) {
926 EXPECT_TRUE(false); 929 EXPECT_TRUE(false);
927 return false; 930 return false;
928 } 931 }
929 932
930 return InProcessBrowserTest::SetUpUserDataDirectory(); 933 return InProcessBrowserTest::SetUpUserDataDirectory();
931 } 934 }
932 935
933 virtual void TearDownInProcessBrowserTestFixture() { 936 virtual void TearDownInProcessBrowserTestFixture() OVERRIDE {
934 InProcessBrowserTest::TearDownInProcessBrowserTestFixture(); 937 InProcessBrowserTest::TearDownInProcessBrowserTestFixture();
935 938
936 sql::Connection db; 939 sql::Connection db;
937 FilePath cookie_path(SafeBrowsingService::GetCookieFilePathForTesting()); 940 FilePath cookie_path(SafeBrowsingService::GetCookieFilePathForTesting());
938 ASSERT_TRUE(db.Open(cookie_path)); 941 ASSERT_TRUE(db.Open(cookie_path));
939 942
940 sql::Statement smt(db.GetUniqueStatement( 943 sql::Statement smt(db.GetUniqueStatement(
941 "SELECT name, value FROM cookies ORDER BY name")); 944 "SELECT name, value FROM cookies ORDER BY name"));
942 ASSERT_TRUE(smt.is_valid()); 945 ASSERT_TRUE(smt.is_valid());
943 946
944 ASSERT_TRUE(smt.Step()); 947 ASSERT_TRUE(smt.Step());
945 ASSERT_EQ("a", smt.ColumnString(0)); 948 ASSERT_EQ("a", smt.ColumnString(0));
946 ASSERT_EQ("b", smt.ColumnString(1)); 949 ASSERT_EQ("b", smt.ColumnString(1));
947 ASSERT_TRUE(smt.Step()); 950 ASSERT_TRUE(smt.Step());
948 ASSERT_EQ("c", smt.ColumnString(0)); 951 ASSERT_EQ("c", smt.ColumnString(0));
949 ASSERT_EQ("d", smt.ColumnString(1)); 952 ASSERT_EQ("d", smt.ColumnString(1));
950 EXPECT_FALSE(smt.Step()); 953 EXPECT_FALSE(smt.Step());
951 } 954 }
952 955
953 virtual void SetUpOnMainThread() { 956 virtual void SetUpOnMainThread() OVERRIDE {
954 sb_service_ = g_browser_process->safe_browsing_service(); 957 sb_service_ = g_browser_process->safe_browsing_service();
955 ASSERT_TRUE(sb_service_ != NULL); 958 ASSERT_TRUE(sb_service_ != NULL);
956 } 959 }
957 960
958 virtual void CleanUpOnMainThread() { 961 virtual void CleanUpOnMainThread() OVERRIDE {
959 sb_service_ = NULL; 962 sb_service_ = NULL;
960 } 963 }
961 964
962 void ForceUpdate() { 965 void ForceUpdate() {
963 sb_service_->protocol_manager()->ForceScheduleNextUpdate( 966 sb_service_->protocol_manager()->ForceScheduleNextUpdate(
964 base::TimeDelta::FromSeconds(0)); 967 base::TimeDelta::FromSeconds(0));
965 } 968 }
966 969
967 scoped_refptr<SafeBrowsingService> sb_service_; 970 scoped_refptr<SafeBrowsingService> sb_service_;
968 971
969 private: 972 private:
970 DISALLOW_COPY_AND_ASSIGN(SafeBrowsingDatabaseManagerCookieTest); 973 DISALLOW_COPY_AND_ASSIGN(SafeBrowsingDatabaseManagerCookieTest);
971 }; 974 };
972 975
973 // Test that a Safe Browsing database update request both sends cookies and can 976 // Test that a Safe Browsing database update request both sends cookies and can
974 // save cookies. 977 // save cookies.
975 IN_PROC_BROWSER_TEST_F(SafeBrowsingDatabaseManagerCookieTest, 978 IN_PROC_BROWSER_TEST_F(SafeBrowsingDatabaseManagerCookieTest,
976 TestSBUpdateCookies) { 979 TestSBUpdateCookies) {
977 content::WindowedNotificationObserver observer( 980 content::WindowedNotificationObserver observer(
978 chrome::NOTIFICATION_SAFE_BROWSING_UPDATE_COMPLETE, 981 chrome::NOTIFICATION_SAFE_BROWSING_UPDATE_COMPLETE,
979 content::Source<SafeBrowsingDatabaseManager>( 982 content::Source<SafeBrowsingDatabaseManager>(
980 sb_service_->database_manager())); 983 sb_service_->database_manager()));
981 BrowserThread::PostTask( 984 BrowserThread::PostTask(
982 BrowserThread::IO, FROM_HERE, 985 BrowserThread::IO, FROM_HERE,
983 base::Bind(&SafeBrowsingDatabaseManagerCookieTest::ForceUpdate, this)); 986 base::Bind(&SafeBrowsingDatabaseManagerCookieTest::ForceUpdate, this));
984 observer.Wait(); 987 observer.Wait();
985 } 988 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698