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

Unified Diff: chrome/browser/chromeos/policy/remote_commands/device_command_screenshot_job_unittest.cc

Issue 1135413002: Disable screenshot uploading if there has been user input. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed leak in test. Created 5 years, 7 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 side-by-side diff with in-line comments
Download patch
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(

Powered by Google App Engine
This is Rietveld 408576698