| Index: chrome/browser/chromeos/policy/remote_commands/device_command_screenshot_job_unittest.cc
|
| diff --git a/chrome/browser/chromeos/policy/remote_commands/device_command_screenshot_job_unittest.cc b/chrome/browser/chromeos/policy/remote_commands/device_command_screenshot_job_unittest.cc
|
| index cc4b51b27cfd898f6e14b3b6214a96fd8cd5b33d..6785dec418ead683b77e505b2b32d9ce3f13055f 100644
|
| --- a/chrome/browser/chromeos/policy/remote_commands/device_command_screenshot_job_unittest.cc
|
| +++ b/chrome/browser/chromeos/policy/remote_commands/device_command_screenshot_job_unittest.cc
|
| @@ -15,6 +15,7 @@
|
| #include "base/time/time.h"
|
| #include "base/values.h"
|
| #include "chrome/browser/chromeos/policy/remote_commands/device_command_screenshot_job.h"
|
| +#include "chrome/browser/chromeos/policy/status_uploader.h"
|
| #include "content/public/browser/browser_thread.h"
|
| #include "content/public/test/test_browser_thread_bundle.h"
|
| #include "policy/proto/device_management_backend.pb.h"
|
| @@ -179,6 +180,18 @@ scoped_ptr<UploadJob> MockScreenshotDelegate::CreateUploadJob(
|
| new MockUploadJob(upload_url, delegate, upload_job_error_code_.Pass()));
|
| }
|
|
|
| +// Mock StatusUploader to test behavior when screenshots are/are not allowed.
|
| +class MockStatusUploader : public StatusUploader {
|
| + public:
|
| + explicit MockStatusUploader(bool screenshot_allowed)
|
| + : screenshot_allowed_(screenshot_allowed) {}
|
| +
|
| + bool IsSessionDataUploadAllowed() override { return screenshot_allowed_; }
|
| +
|
| + private:
|
| + bool screenshot_allowed_;
|
| +};
|
| +
|
| } // namespace
|
|
|
| class DeviceCommandScreenshotTest : public ash::test::AshTestBase {
|
| @@ -256,8 +269,9 @@ void DeviceCommandScreenshotTest::VerifyResults(
|
| }
|
|
|
| TEST_F(DeviceCommandScreenshotTest, Success) {
|
| + MockStatusUploader uploader(true);
|
| scoped_ptr<RemoteCommandJob> job(new DeviceCommandScreenshotJob(
|
| - make_scoped_ptr(new MockScreenshotDelegate(nullptr))));
|
| + make_scoped_ptr(new MockScreenshotDelegate(nullptr)), &uploader));
|
| InitializeScreenshotJob(job.get(), kUniqueID, test_start_time_,
|
| kMockUploadUrl);
|
| bool success = job->Run(
|
| @@ -270,12 +284,31 @@ TEST_F(DeviceCommandScreenshotTest, Success) {
|
| run_loop_.Run();
|
| }
|
|
|
| +TEST_F(DeviceCommandScreenshotTest, FailureUserInput) {
|
| + MockStatusUploader uploader(false);
|
| + scoped_ptr<RemoteCommandJob> job(new DeviceCommandScreenshotJob(
|
| + make_scoped_ptr(new MockScreenshotDelegate(nullptr)), &uploader));
|
| + InitializeScreenshotJob(job.get(), kUniqueID, test_start_time_,
|
| + kMockUploadUrl);
|
| + bool success =
|
| + job->Run(base::TimeTicks::Now(),
|
| + base::Bind(&DeviceCommandScreenshotTest::VerifyResults,
|
| + base::Unretained(this), base::Unretained(job.get()),
|
| + RemoteCommandJob::FAILED,
|
| + CreatePayloadFromResultCode(
|
| + DeviceCommandScreenshotJob::FAILURE_USER_INPUT)));
|
| + EXPECT_TRUE(success);
|
| + run_loop_.Run();
|
| +}
|
| +
|
| TEST_F(DeviceCommandScreenshotTest, Failure) {
|
| + MockStatusUploader uploader(true);
|
| using ErrorCode = UploadJob::ErrorCode;
|
| scoped_ptr<ErrorCode> error_code(
|
| new ErrorCode(UploadJob::AUTHENTICATION_ERROR));
|
| scoped_ptr<RemoteCommandJob> job(new DeviceCommandScreenshotJob(
|
| - make_scoped_ptr(new MockScreenshotDelegate(error_code.Pass()))));
|
| + make_scoped_ptr(new MockScreenshotDelegate(error_code.Pass())),
|
| + &uploader));
|
| InitializeScreenshotJob(job.get(), kUniqueID, test_start_time_,
|
| kMockUploadUrl);
|
| bool success = job->Run(
|
|
|