| 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 |