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

Unified Diff: chrome/browser/chromeos/policy/device_status_collector_browsertest.cc

Issue 2396103002: Create policy ReportArcStatus (Closed)
Patch Set: Created 4 years, 2 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/device_status_collector_browsertest.cc
diff --git a/chrome/browser/chromeos/policy/device_status_collector_browsertest.cc b/chrome/browser/chromeos/policy/device_status_collector_browsertest.cc
index da24ce6bd020557a507f15d538f31bd06d6ef2bb..51ee5e5a7f86293d5bfe1823870a8215417b53f3 100644
--- a/chrome/browser/chromeos/policy/device_status_collector_browsertest.cc
+++ b/chrome/browser/chromeos/policy/device_status_collector_browsertest.cc
@@ -27,6 +27,7 @@
#include "base/threading/thread_task_runner_handle.h"
#include "chrome/browser/chromeos/app_mode/kiosk_app_data.h"
#include "chrome/browser/chromeos/app_mode/kiosk_app_manager.h"
+#include "chrome/browser/chromeos/arc/arc_auth_service.h"
#include "chrome/browser/chromeos/login/users/mock_user_manager.h"
#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h"
#include "chrome/browser/chromeos/ownership/fake_owner_settings_service.h"
@@ -225,6 +226,17 @@ void CallAndroidStatusReceiver(
receiver.Run(status, droid_guard_info);
}
+bool GetFakeAndroidStatus(
+ mojo::String status,
+ mojo::String droid_guard_info,
+ const policy::DeviceStatusCollector::AndroidStatusReceiver& receiver) {
+ // Post it to the thread because this call is expected to be asynchronous.
+ base::ThreadTaskRunnerHandle::Get()->PostTask(
+ FROM_HERE, Bind(&CallAndroidStatusReceiver, receiver,
+ status, droid_guard_info));
+ return true;
+}
+
bool GetEmptyAndroidStatus(
const policy::DeviceStatusCollector::AndroidStatusReceiver& receiver) {
// Post it to the thread because this call is expected to be asynchronous.
@@ -982,9 +994,52 @@ TEST_F(DeviceStatusCollectorTest, TestCPUTemp) {
EXPECT_EQ(0, device_status_.cpu_temp_info_size());
}
-TEST_F(DeviceStatusCollectorTest, NoSessionStatusIfNotKioskMode) {
+TEST_F(DeviceStatusCollectorTest, TestAndroidReporting) {
+ mojo::String status = "{\"applications\":[ { "
+ "\"packageName\":\"com.android.providers.telephony\","
+ "\"versionName\":\"6.0.1\","
+ "\"permissions\": [\"android.permission.INTERNET\"] }],"
+ "\"userEmail\":\"xxx@google.com\"}";
+ mojo::String droid_guard_info = "{\"droid_guard_info\":42}";
+ RestartStatusCollector(base::Bind(&GetEmptyVolumeInfo),
+ base::Bind(&GetEmptyCPUStatistics),
+ base::Bind(&GetEmptyCPUTempInfo),
+ base::Bind(&GetFakeAndroidStatus, status,
+ droid_guard_info));
+ GetStatus();
+ EXPECT_EQ(status, session_status_.android_status().status_payload());
+ EXPECT_EQ(droid_guard_info,
+ session_status_.android_status().droid_guard_info());
+}
+
+TEST_F(DeviceStatusCollectorTest, NoAndroidReportingWhenDisabled) {
+ mojo::String status = "{\"applications\":[ { "
+ "\"packageName\":\"com.android.providers.telephony\","
+ "\"versionName\":\"6.0.1\","
+ "\"permissions\": [\"android.permission.INTERNET\"] }],"
+ "\"userEmail\":\"xxx@google.com\"}";
+ mojo::String droid_guard_info = "{\"droid_guard_info\":42}";
+ RestartStatusCollector(base::Bind(&GetEmptyVolumeInfo),
+ base::Bind(&GetEmptyCPUStatistics),
+ base::Bind(&GetEmptyCPUTempInfo),
+ base::Bind(&GetFakeAndroidStatus, status,
+ droid_guard_info));
+
+ prefs_.SetBoolean(prefs::kReportArcStatus, false);
+ // Mock Kiosk app, so some session status is reported
+ status_collector_->set_kiosk_account(
+ base::MakeUnique<policy::DeviceLocalAccount>(fake_device_local_account_));
+ MockRunningKioskApp(fake_device_local_account_);
+
+ GetStatus();
+ EXPECT_TRUE(got_session_status_);
+ EXPECT_FALSE(session_status_.has_android_status());
+}
+
+TEST_F(DeviceStatusCollectorTest, NoSessionStatusIfNotKioskAndNoArcReporting) {
// Should not report session status if we don't have an active kiosk app.
settings_helper_.SetBoolean(chromeos::kReportDeviceSessionStatus, true);
+ prefs_.SetBoolean(prefs::kReportArcStatus, false);
GetStatus();
EXPECT_FALSE(got_session_status_);
}
@@ -992,6 +1047,7 @@ TEST_F(DeviceStatusCollectorTest, NoSessionStatusIfNotKioskMode) {
TEST_F(DeviceStatusCollectorTest, NoSessionStatusIfSessionReportingDisabled) {
// Should not report session status if session status reporting is disabled.
settings_helper_.SetBoolean(chromeos::kReportDeviceSessionStatus, false);
+ prefs_.SetBoolean(prefs::kReportArcStatus, false);
status_collector_->set_kiosk_account(
base::MakeUnique<policy::DeviceLocalAccount>(fake_device_local_account_));
// Set up a device-local account for single-app kiosk mode.

Powered by Google App Engine
This is Rietveld 408576698