OLD | NEW |
1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2015 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/chromeos/policy/system_log_uploader.h" |
| 6 |
| 7 #include <utility> |
| 8 |
5 #include "base/strings/stringprintf.h" | 9 #include "base/strings/stringprintf.h" |
6 #include "base/test/test_simple_task_runner.h" | 10 #include "base/test/test_simple_task_runner.h" |
7 #include "base/time/time.h" | 11 #include "base/time/time.h" |
8 #include "chrome/browser/chromeos/policy/system_log_uploader.h" | |
9 #include "chrome/browser/chromeos/settings/scoped_cros_settings_test_helper.h" | 12 #include "chrome/browser/chromeos/settings/scoped_cros_settings_test_helper.h" |
10 #include "content/public/test/test_browser_thread_bundle.h" | 13 #include "content/public/test/test_browser_thread_bundle.h" |
11 #include "content/public/test/test_utils.h" | 14 #include "content/public/test/test_utils.h" |
12 #include "net/http/http_request_headers.h" | 15 #include "net/http/http_request_headers.h" |
13 #include "testing/gmock/include/gmock/gmock.h" | 16 #include "testing/gmock/include/gmock/gmock.h" |
14 | 17 |
15 namespace policy { | 18 namespace policy { |
16 | 19 |
17 namespace { | 20 namespace { |
18 | 21 |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
180 scoped_refptr<base::TestSimpleTaskRunner> task_runner_; | 183 scoped_refptr<base::TestSimpleTaskRunner> task_runner_; |
181 }; | 184 }; |
182 | 185 |
183 // Check disabled system log uploads by default. | 186 // Check disabled system log uploads by default. |
184 TEST_F(SystemLogUploaderTest, Basic) { | 187 TEST_F(SystemLogUploaderTest, Basic) { |
185 EXPECT_TRUE(task_runner_->GetPendingTasks().empty()); | 188 EXPECT_TRUE(task_runner_->GetPendingTasks().empty()); |
186 | 189 |
187 scoped_ptr<MockSystemLogDelegate> syslog_delegate( | 190 scoped_ptr<MockSystemLogDelegate> syslog_delegate( |
188 new MockSystemLogDelegate(false, SystemLogUploader::SystemLogs())); | 191 new MockSystemLogDelegate(false, SystemLogUploader::SystemLogs())); |
189 syslog_delegate->set_upload_allowed(false); | 192 syslog_delegate->set_upload_allowed(false); |
190 SystemLogUploader uploader(syslog_delegate.Pass(), task_runner_); | 193 SystemLogUploader uploader(std::move(syslog_delegate), task_runner_); |
191 | 194 |
192 task_runner_->RunPendingTasks(); | 195 task_runner_->RunPendingTasks(); |
193 } | 196 } |
194 | 197 |
195 // One success task pending. | 198 // One success task pending. |
196 TEST_F(SystemLogUploaderTest, SuccessTest) { | 199 TEST_F(SystemLogUploaderTest, SuccessTest) { |
197 EXPECT_TRUE(task_runner_->GetPendingTasks().empty()); | 200 EXPECT_TRUE(task_runner_->GetPendingTasks().empty()); |
198 | 201 |
199 scoped_ptr<MockSystemLogDelegate> syslog_delegate( | 202 scoped_ptr<MockSystemLogDelegate> syslog_delegate( |
200 new MockSystemLogDelegate(false, SystemLogUploader::SystemLogs())); | 203 new MockSystemLogDelegate(false, SystemLogUploader::SystemLogs())); |
201 syslog_delegate->set_upload_allowed(true); | 204 syslog_delegate->set_upload_allowed(true); |
202 settings_helper_.SetBoolean(chromeos::kSystemLogUploadEnabled, true); | 205 settings_helper_.SetBoolean(chromeos::kSystemLogUploadEnabled, true); |
203 SystemLogUploader uploader(syslog_delegate.Pass(), task_runner_); | 206 SystemLogUploader uploader(std::move(syslog_delegate), task_runner_); |
204 | 207 |
205 EXPECT_EQ(1U, task_runner_->GetPendingTasks().size()); | 208 EXPECT_EQ(1U, task_runner_->GetPendingTasks().size()); |
206 | 209 |
207 RunPendingUploadTaskAndCheckNext( | 210 RunPendingUploadTaskAndCheckNext( |
208 uploader, base::TimeDelta::FromMilliseconds( | 211 uploader, base::TimeDelta::FromMilliseconds( |
209 SystemLogUploader::kDefaultUploadDelayMs)); | 212 SystemLogUploader::kDefaultUploadDelayMs)); |
210 } | 213 } |
211 | 214 |
212 // Three failed responses recieved. | 215 // Three failed responses recieved. |
213 TEST_F(SystemLogUploaderTest, ThreeFailureTest) { | 216 TEST_F(SystemLogUploaderTest, ThreeFailureTest) { |
214 EXPECT_TRUE(task_runner_->GetPendingTasks().empty()); | 217 EXPECT_TRUE(task_runner_->GetPendingTasks().empty()); |
215 | 218 |
216 scoped_ptr<MockSystemLogDelegate> syslog_delegate( | 219 scoped_ptr<MockSystemLogDelegate> syslog_delegate( |
217 new MockSystemLogDelegate(true, SystemLogUploader::SystemLogs())); | 220 new MockSystemLogDelegate(true, SystemLogUploader::SystemLogs())); |
218 syslog_delegate->set_upload_allowed(true); | 221 syslog_delegate->set_upload_allowed(true); |
219 settings_helper_.SetBoolean(chromeos::kSystemLogUploadEnabled, true); | 222 settings_helper_.SetBoolean(chromeos::kSystemLogUploadEnabled, true); |
220 SystemLogUploader uploader(syslog_delegate.Pass(), task_runner_); | 223 SystemLogUploader uploader(std::move(syslog_delegate), task_runner_); |
221 | 224 |
222 EXPECT_EQ(1U, task_runner_->GetPendingTasks().size()); | 225 EXPECT_EQ(1U, task_runner_->GetPendingTasks().size()); |
223 | 226 |
224 // Do not retry two times consequentially. | 227 // Do not retry two times consequentially. |
225 RunPendingUploadTaskAndCheckNext(uploader, | 228 RunPendingUploadTaskAndCheckNext(uploader, |
226 base::TimeDelta::FromMilliseconds( | 229 base::TimeDelta::FromMilliseconds( |
227 SystemLogUploader::kErrorUploadDelayMs)); | 230 SystemLogUploader::kErrorUploadDelayMs)); |
228 // We are using the kDefaultUploadDelayMs and not the kErrorUploadDelayMs here | 231 // We are using the kDefaultUploadDelayMs and not the kErrorUploadDelayMs here |
229 // because there's just one retry. | 232 // because there's just one retry. |
230 RunPendingUploadTaskAndCheckNext( | 233 RunPendingUploadTaskAndCheckNext( |
231 uploader, base::TimeDelta::FromMilliseconds( | 234 uploader, base::TimeDelta::FromMilliseconds( |
232 SystemLogUploader::kDefaultUploadDelayMs)); | 235 SystemLogUploader::kDefaultUploadDelayMs)); |
233 RunPendingUploadTaskAndCheckNext(uploader, | 236 RunPendingUploadTaskAndCheckNext(uploader, |
234 base::TimeDelta::FromMilliseconds( | 237 base::TimeDelta::FromMilliseconds( |
235 SystemLogUploader::kErrorUploadDelayMs)); | 238 SystemLogUploader::kErrorUploadDelayMs)); |
236 } | 239 } |
237 | 240 |
238 // Check header fields of system log files to upload. | 241 // Check header fields of system log files to upload. |
239 TEST_F(SystemLogUploaderTest, CheckHeaders) { | 242 TEST_F(SystemLogUploaderTest, CheckHeaders) { |
240 EXPECT_TRUE(task_runner_->GetPendingTasks().empty()); | 243 EXPECT_TRUE(task_runner_->GetPendingTasks().empty()); |
241 | 244 |
242 SystemLogUploader::SystemLogs system_logs = GenerateTestSystemLogFiles(); | 245 SystemLogUploader::SystemLogs system_logs = GenerateTestSystemLogFiles(); |
243 scoped_ptr<MockSystemLogDelegate> syslog_delegate( | 246 scoped_ptr<MockSystemLogDelegate> syslog_delegate( |
244 new MockSystemLogDelegate(false, system_logs)); | 247 new MockSystemLogDelegate(false, system_logs)); |
245 syslog_delegate->set_upload_allowed(true); | 248 syslog_delegate->set_upload_allowed(true); |
246 settings_helper_.SetBoolean(chromeos::kSystemLogUploadEnabled, true); | 249 settings_helper_.SetBoolean(chromeos::kSystemLogUploadEnabled, true); |
247 SystemLogUploader uploader(syslog_delegate.Pass(), task_runner_); | 250 SystemLogUploader uploader(std::move(syslog_delegate), task_runner_); |
248 | 251 |
249 EXPECT_EQ(1U, task_runner_->GetPendingTasks().size()); | 252 EXPECT_EQ(1U, task_runner_->GetPendingTasks().size()); |
250 | 253 |
251 RunPendingUploadTaskAndCheckNext( | 254 RunPendingUploadTaskAndCheckNext( |
252 uploader, base::TimeDelta::FromMilliseconds( | 255 uploader, base::TimeDelta::FromMilliseconds( |
253 SystemLogUploader::kDefaultUploadDelayMs)); | 256 SystemLogUploader::kDefaultUploadDelayMs)); |
254 } | 257 } |
255 | 258 |
256 // Disable system log uploads after one failed log upload. | 259 // Disable system log uploads after one failed log upload. |
257 TEST_F(SystemLogUploaderTest, DisableLogUpload) { | 260 TEST_F(SystemLogUploaderTest, DisableLogUpload) { |
258 EXPECT_TRUE(task_runner_->GetPendingTasks().empty()); | 261 EXPECT_TRUE(task_runner_->GetPendingTasks().empty()); |
259 | 262 |
260 scoped_ptr<MockSystemLogDelegate> syslog_delegate( | 263 scoped_ptr<MockSystemLogDelegate> syslog_delegate( |
261 new MockSystemLogDelegate(true, SystemLogUploader::SystemLogs())); | 264 new MockSystemLogDelegate(true, SystemLogUploader::SystemLogs())); |
262 MockSystemLogDelegate* mock_delegate = syslog_delegate.get(); | 265 MockSystemLogDelegate* mock_delegate = syslog_delegate.get(); |
263 settings_helper_.SetBoolean(chromeos::kSystemLogUploadEnabled, true); | 266 settings_helper_.SetBoolean(chromeos::kSystemLogUploadEnabled, true); |
264 mock_delegate->set_upload_allowed(true); | 267 mock_delegate->set_upload_allowed(true); |
265 SystemLogUploader uploader(syslog_delegate.Pass(), task_runner_); | 268 SystemLogUploader uploader(std::move(syslog_delegate), task_runner_); |
266 | 269 |
267 EXPECT_EQ(1U, task_runner_->GetPendingTasks().size()); | 270 EXPECT_EQ(1U, task_runner_->GetPendingTasks().size()); |
268 RunPendingUploadTaskAndCheckNext(uploader, | 271 RunPendingUploadTaskAndCheckNext(uploader, |
269 base::TimeDelta::FromMilliseconds( | 272 base::TimeDelta::FromMilliseconds( |
270 SystemLogUploader::kErrorUploadDelayMs)); | 273 SystemLogUploader::kErrorUploadDelayMs)); |
271 | 274 |
272 // Disable log upload and check that frequency is usual, because there is no | 275 // Disable log upload and check that frequency is usual, because there is no |
273 // errors, we should not upload logs. | 276 // errors, we should not upload logs. |
274 settings_helper_.SetBoolean(chromeos::kSystemLogUploadEnabled, false); | 277 settings_helper_.SetBoolean(chromeos::kSystemLogUploadEnabled, false); |
275 mock_delegate->set_upload_allowed(false); | 278 mock_delegate->set_upload_allowed(false); |
(...skipping 22 matching lines...) Expand all Loading... |
298 | 301 |
299 std::string result = | 302 std::string result = |
300 "example@@1234\n" | 303 "example@@1234\n" |
301 "255.255.355.255\n" | 304 "255.255.355.255\n" |
302 "11:11:abcdef:0:0:0:0:0\n"; | 305 "11:11:abcdef:0:0:0:0:0\n"; |
303 | 306 |
304 EXPECT_EQ(result, SystemLogUploader::RemoveSensitiveData(data)); | 307 EXPECT_EQ(result, SystemLogUploader::RemoveSensitiveData(data)); |
305 } | 308 } |
306 | 309 |
307 } // namespace policy | 310 } // namespace policy |
OLD | NEW |