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

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

Issue 348433004: Prune all safe browsing incidents when already reported. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: updated tracked preferences histogram Created 6 years, 6 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 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 "chrome/browser/safe_browsing/incident_reporting_service.h" 5 #include "chrome/browser/safe_browsing/incident_reporting_service.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 // Returns an incident suitable for testing. 131 // Returns an incident suitable for testing.
132 scoped_ptr<safe_browsing::ClientIncidentReport_IncidentData> 132 scoped_ptr<safe_browsing::ClientIncidentReport_IncidentData>
133 MakeTestIncident() { 133 MakeTestIncident() {
134 scoped_ptr<safe_browsing::ClientIncidentReport_IncidentData> incident( 134 scoped_ptr<safe_browsing::ClientIncidentReport_IncidentData> incident(
135 new safe_browsing::ClientIncidentReport_IncidentData()); 135 new safe_browsing::ClientIncidentReport_IncidentData());
136 incident->set_incident_time_msec(kIncidentTimeMsec); 136 incident->set_incident_time_msec(kIncidentTimeMsec);
137 incident->mutable_tracked_preference(); 137 incident->mutable_tracked_preference();
138 return incident.Pass(); 138 return incident.Pass();
139 } 139 }
140 140
141 // Confirms that the test incident was uploaded by the service. 141 // Confirms that the test incident was uploaded by the service, then clears
142 // the instance for subsequent incidents.
142 void ExpectTestIncidentUploaded() { 143 void ExpectTestIncidentUploaded() {
143 ASSERT_TRUE(uploaded_report_); 144 ASSERT_TRUE(uploaded_report_);
144 ASSERT_EQ(1, uploaded_report_->incident_size()); 145 ASSERT_EQ(1, uploaded_report_->incident_size());
145 ASSERT_TRUE(uploaded_report_->incident(0).has_incident_time_msec()); 146 ASSERT_TRUE(uploaded_report_->incident(0).has_incident_time_msec());
146 ASSERT_EQ(kIncidentTimeMsec, 147 ASSERT_EQ(kIncidentTimeMsec,
147 uploaded_report_->incident(0).incident_time_msec()); 148 uploaded_report_->incident(0).incident_time_msec());
148 ASSERT_TRUE(uploaded_report_->has_environment()); 149 ASSERT_TRUE(uploaded_report_->has_environment());
149 ASSERT_TRUE(uploaded_report_->environment().has_os()); 150 ASSERT_TRUE(uploaded_report_->environment().has_os());
150 ASSERT_TRUE(uploaded_report_->environment().os().has_os_name()); 151 ASSERT_TRUE(uploaded_report_->environment().os().has_os_name());
151 ASSERT_EQ(std::string(kFakeOsName), 152 ASSERT_EQ(std::string(kFakeOsName),
152 uploaded_report_->environment().os().os_name()); 153 uploaded_report_->environment().os().os_name());
154
155 uploaded_report_.reset();
153 } 156 }
154 157
155 void ExpectNoUpload() { ASSERT_FALSE(uploaded_report_); } 158 void ExpectNoUpload() { ASSERT_FALSE(uploaded_report_); }
156 159
157 bool HasCollectedEnvironmentData() const { return environment_collected_; } 160 bool HasCollectedEnvironmentData() const { return environment_collected_; }
158 bool UploaderDestroyed() const { return uploader_destroyed_; } 161 bool UploaderDestroyed() const { return uploader_destroyed_; }
159 162
160 scoped_refptr<base::TestSimpleTaskRunner> task_runner_; 163 scoped_refptr<base::TestSimpleTaskRunner> task_runner_;
161 base::ThreadTaskRunnerHandle thread_task_runner_handle_; 164 base::ThreadTaskRunnerHandle thread_task_runner_handle_;
162 ScopedTestingLocalState local_state_; 165 ScopedTestingLocalState local_state_;
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 // Tests that an incident added during profile initialization when safe browsing 270 // Tests that an incident added during profile initialization when safe browsing
268 // is off is not uploaded. 271 // is off is not uploaded.
269 TEST_F(IncidentReportingServiceTest, NoSafeBrowsing) { 272 TEST_F(IncidentReportingServiceTest, NoSafeBrowsing) {
270 // Create the profile, thereby causing the test to begin. 273 // Create the profile, thereby causing the test to begin.
271 CreateProfileAndRunTest(false); 274 CreateProfileAndRunTest(false);
272 275
273 // Verify that no report upload took place. 276 // Verify that no report upload took place.
274 ExpectNoUpload(); 277 ExpectNoUpload();
275 } 278 }
276 279
280 // Tests that an incident added after upload is not uploaded again.
mattm 2014/06/19 21:43:11 Add a test of incident reported and uploaded for o
mattm 2014/06/19 21:43:11 Add a test of profile gets destroyed while upload
grt (UTC plus 2) 2014/06/20 03:24:10 Done (TwoProfilesTwoUploads).
grt (UTC plus 2) 2014/06/20 03:24:10 Done (ProfileDestroyedDuringUpload).
281 TEST_F(IncidentReportingServiceTest, OnlyOneUpload) {
282 // Create the profile, thereby causing the test to begin.
283 CreateProfileAndRunTest(true);
284
285 // Verify that report upload took place and contained the incident and
286 // environment data.
287 ExpectTestIncidentUploaded();
288
289 // Add the incident to the service again.
290 instance_->GetAddIncidentCallback(testing_profile_.get())
291 .Run(MakeTestIncident().Pass());
292
293 // Let all tasks run.
294 task_runner_->RunUntilIdle();
295
296 // Verify that no additional report upload took place.
297 ExpectNoUpload();
298 }
299
277 // Parallel uploads 300 // Parallel uploads
278 // Shutdown during processing 301 // Shutdown during processing
279 // environment colection taking longer than incident delay timer 302 // environment colection taking longer than incident delay timer
280 // environment colection taking longer than incident delay timer, and then 303 // environment colection taking longer than incident delay timer, and then
281 // another incident arriving 304 // another incident arriving
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698