Index: chrome/browser/chromeos/arc/intent_helper/arc_settings_service_browsertest.cc |
diff --git a/chrome/browser/chromeos/arc/intent_helper/arc_settings_service_browsertest.cc b/chrome/browser/chromeos/arc/intent_helper/arc_settings_service_browsertest.cc |
index bdc25895bd1f29c3d01c74d5dea5e11702fbcec9..b6af890010a6f5cdea604cf952f2e0af2fd5d6ea 100644 |
--- a/chrome/browser/chromeos/arc/intent_helper/arc_settings_service_browsertest.cc |
+++ b/chrome/browser/chromeos/arc/intent_helper/arc_settings_service_browsertest.cc |
@@ -15,6 +15,7 @@ |
#include "chrome/browser/chromeos/arc/intent_helper/arc_settings_service.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/ui/browser.h" |
+#include "chrome/common/pref_names.h" |
#include "chrome/test/base/in_process_browser_test.h" |
#include "chromeos/dbus/dbus_thread_manager.h" |
#include "chromeos/dbus/shill_profile_client.h" |
@@ -174,6 +175,8 @@ constexpr char kWifi1Guid[] = "{wifi1_guid}"; |
constexpr char kONCPacUrl[] = "http://domain.com/x"; |
+constexpr char kBackupBroadcastAction[] = |
+ "org.chromium.arc.intent_helper.SET_BACKUP_ENABLED"; |
constexpr char kLocationServiceBroadcastAction[] = |
"org.chromium.arc.intent_helper.SET_LOCATION_SERVICE_ENABLED"; |
constexpr char kSetProxyBroadcastAction[] = |
@@ -317,7 +320,76 @@ class ArcSettingsServiceTest : public InProcessBrowserTest { |
DISALLOW_COPY_AND_ASSIGN(ArcSettingsServiceTest); |
}; |
+IN_PROC_BROWSER_TEST_F(ArcSettingsServiceTest, BackupRestorePolicyTest) { |
+ PrefService* const prefs = browser()->profile()->GetPrefs(); |
+ |
+ // Set the user pref as initially enabled. |
+ prefs->SetBoolean(prefs::kArcBackupRestoreEnabled, true); |
+ EXPECT_TRUE(prefs->GetBoolean(prefs::kArcBackupRestoreEnabled)); |
+ |
+ fake_intent_helper_instance_->clear_broadcasts(); |
+ |
+ // The policy is set to false. |
+ policy::PolicyMap policy; |
+ policy.Set(policy::key::kArcBackupRestoreEnabled, |
+ policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER, |
+ policy::POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(false), |
+ nullptr); |
+ UpdatePolicy(policy); |
+ |
+ // The pref is disabled and managed, and the corresponding broadcast is sent |
+ // at least once. |
+ EXPECT_FALSE(prefs->GetBoolean(prefs::kArcBackupRestoreEnabled)); |
+ EXPECT_TRUE(prefs->IsManagedPreference(prefs::kArcBackupRestoreEnabled)); |
+ base::DictionaryValue expected_broadcast_extras; |
+ expected_broadcast_extras.SetBoolean("enabled", false); |
+ expected_broadcast_extras.SetBoolean("managed", true); |
+ EXPECT_GE(CountBroadcasts(fake_intent_helper_instance_->broadcasts(), |
+ kBackupBroadcastAction, &expected_broadcast_extras), |
+ 1); |
+ |
+ fake_intent_helper_instance_->clear_broadcasts(); |
+ |
+ // The policy is set to true. |
+ policy.Set(policy::key::kArcBackupRestoreEnabled, |
+ policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER, |
+ policy::POLICY_SOURCE_CLOUD, base::MakeUnique<base::Value>(true), |
+ nullptr); |
+ UpdatePolicy(policy); |
+ |
+ // The pref is enabled and managed, and the corresponding broadcast is sent at |
+ // least once. |
+ EXPECT_TRUE(prefs->GetBoolean(prefs::kArcBackupRestoreEnabled)); |
+ EXPECT_TRUE(prefs->IsManagedPreference(prefs::kArcBackupRestoreEnabled)); |
+ expected_broadcast_extras.SetBoolean("enabled", true); |
+ EXPECT_GE(CountBroadcasts(fake_intent_helper_instance_->broadcasts(), |
+ kBackupBroadcastAction, &expected_broadcast_extras), |
+ 1); |
+ |
+ fake_intent_helper_instance_->clear_broadcasts(); |
+ |
+ // The policy is unset. |
+ policy.Erase(policy::key::kArcBackupRestoreEnabled); |
+ UpdatePolicy(policy); |
+ |
+ // The pref is disabled and unmanaged, and the corresponding broadcast is |
+ // sent. |
+ EXPECT_FALSE(prefs->GetBoolean(prefs::kArcBackupRestoreEnabled)); |
+ EXPECT_FALSE(prefs->IsManagedPreference(prefs::kArcBackupRestoreEnabled)); |
+ expected_broadcast_extras.SetBoolean("enabled", false); |
+ expected_broadcast_extras.SetBoolean("managed", false); |
+ EXPECT_EQ(CountBroadcasts(fake_intent_helper_instance_->broadcasts(), |
+ kBackupBroadcastAction, &expected_broadcast_extras), |
+ 1); |
+} |
+ |
IN_PROC_BROWSER_TEST_F(ArcSettingsServiceTest, LocationServicePolicyTest) { |
+ PrefService* const prefs = browser()->profile()->GetPrefs(); |
+ |
+ // Set the user pref as initially enabled. |
+ prefs->SetBoolean(prefs::kArcLocationServiceEnabled, true); |
+ EXPECT_TRUE(prefs->GetBoolean(prefs::kArcLocationServiceEnabled)); |
+ |
fake_intent_helper_instance_->clear_broadcasts(); |
// The policy is set to false. |
@@ -328,11 +400,14 @@ IN_PROC_BROWSER_TEST_F(ArcSettingsServiceTest, LocationServicePolicyTest) { |
nullptr); |
UpdatePolicy(policy); |
- // The broadcast is sent which says that the pref is disabled and managed. |
+ // The pref is disabled and managed, and the corresponding broadcast is sent |
+ // at least once. |
+ EXPECT_FALSE(prefs->GetBoolean(prefs::kArcLocationServiceEnabled)); |
+ EXPECT_TRUE(prefs->IsManagedPreference(prefs::kArcLocationServiceEnabled)); |
base::DictionaryValue expected_broadcast_extras; |
expected_broadcast_extras.SetBoolean("enabled", false); |
expected_broadcast_extras.SetBoolean("managed", true); |
- EXPECT_EQ(CountBroadcasts(fake_intent_helper_instance_->broadcasts(), |
+ EXPECT_GE(CountBroadcasts(fake_intent_helper_instance_->broadcasts(), |
kLocationServiceBroadcastAction, |
&expected_broadcast_extras), |
1); |
@@ -346,8 +421,28 @@ IN_PROC_BROWSER_TEST_F(ArcSettingsServiceTest, LocationServicePolicyTest) { |
nullptr); |
UpdatePolicy(policy); |
- // The broadcast is sent which says that the pref is enabled and managed. |
+ // The pref is enabled and managed, and the corresponding broadcast is sent at |
+ // least once. |
+ EXPECT_TRUE(prefs->GetBoolean(prefs::kArcLocationServiceEnabled)); |
+ EXPECT_TRUE(prefs->IsManagedPreference(prefs::kArcLocationServiceEnabled)); |
expected_broadcast_extras.SetBoolean("enabled", true); |
+ EXPECT_GE(CountBroadcasts(fake_intent_helper_instance_->broadcasts(), |
+ kLocationServiceBroadcastAction, |
+ &expected_broadcast_extras), |
+ 1); |
+ |
+ fake_intent_helper_instance_->clear_broadcasts(); |
+ |
+ // The policy is unset. |
+ policy.Erase(policy::key::kArcLocationServiceEnabled); |
+ UpdatePolicy(policy); |
+ |
+ // The pref is disabled and unmanaged, and the corresponding broadcast is |
+ // sent. |
+ EXPECT_FALSE(prefs->GetBoolean(prefs::kArcLocationServiceEnabled)); |
+ EXPECT_FALSE(prefs->IsManagedPreference(prefs::kArcLocationServiceEnabled)); |
+ expected_broadcast_extras.SetBoolean("enabled", false); |
+ expected_broadcast_extras.SetBoolean("managed", false); |
EXPECT_EQ(CountBroadcasts(fake_intent_helper_instance_->broadcasts(), |
kLocationServiceBroadcastAction, |
&expected_broadcast_extras), |