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

Unified Diff: chrome/browser/policy/policy_browsertest.cc

Issue 2357763002: arc: Don't show default Arc apps for managed users with Arc-disabled. (Closed)
Patch Set: rebase + nit 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
« no previous file with comments | « no previous file | chrome/browser/ui/app_list/arc/arc_app_list_prefs.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/policy/policy_browsertest.cc
diff --git a/chrome/browser/policy/policy_browsertest.cc b/chrome/browser/policy/policy_browsertest.cc
index 37b9889e2093bb3d7b0c83ae9da7f65243b2f2af..9a649d5cb6104d5ee718d953a12248068d1c242f 100644
--- a/chrome/browser/policy/policy_browsertest.cc
+++ b/chrome/browser/policy/policy_browsertest.cc
@@ -203,6 +203,8 @@
#include "chrome/browser/chromeos/login/test/js_checker.h"
#include "chrome/browser/chromeos/system/timezone_resolver_manager.h"
#include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/browser/ui/app_list/arc/arc_app_list_prefs.h"
+#include "chrome/browser/ui/app_list/arc/arc_default_app_list.h"
#include "chrome/browser/ui/ash/chrome_screenshot_grabber.h"
#include "chrome/browser/ui/ash/multi_user/multi_user_util.h"
#include "chromeos/audio/cras_audio_handler.h"
@@ -4131,44 +4133,90 @@ class ArcPolicyTest : public PolicyTest {
command_line->AppendSwitch(chromeos::switches::kEnableArc);
}
+ void SetArcEnabledByPolicy(bool enabled) {
+ PolicyMap policies;
+ policies.Set(key::kArcEnabled, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
+ POLICY_SOURCE_CLOUD,
+ base::WrapUnique(new base::FundamentalValue(enabled)),
+ nullptr);
+ UpdateProviderPolicy(policies);
+ if (browser()) {
+ const PrefService* const prefs = browser()->profile()->GetPrefs();
+ EXPECT_EQ(prefs->GetBoolean(prefs::kArcEnabled), enabled);
+ }
+ }
+
private:
chromeos::FakeSessionManagerClient *fake_session_manager_client_;
DISALLOW_COPY_AND_ASSIGN(ArcPolicyTest);
};
+class ArcPolicyDefaultAppTest : public ArcPolicyTest {
+ public:
+ ArcPolicyDefaultAppTest() {}
+ ~ArcPolicyDefaultAppTest() override {}
+
+ protected:
+ void SetUpInProcessBrowserTestFixture() override {
+ ArcDefaultAppList::UseTestAppsDirectory();
+ ArcPolicyTest::SetUpInProcessBrowserTestFixture();
+ }
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(ArcPolicyDefaultAppTest);
+};
+
// Test ArcEnabled policy.
IN_PROC_BROWSER_TEST_F(ArcPolicyTest, ArcEnabled) {
SetUpTest();
const PrefService* const pref = browser()->profile()->GetPrefs();
- const arc::ArcBridgeService* const arc_bridge_service
- = arc::ArcBridgeService::Get();
+ const arc::ArcBridgeService* const arc_bridge_service =
+ arc::ArcBridgeService::Get();
// ARC is switched off by default.
EXPECT_TRUE(arc_bridge_service->stopped());
EXPECT_FALSE(pref->GetBoolean(prefs::kArcEnabled));
// Enable ARC.
- PolicyMap policies;
- policies.Set(key::kArcEnabled, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
- POLICY_SOURCE_CLOUD,
- base::WrapUnique(new base::FundamentalValue(true)), nullptr);
- UpdateProviderPolicy(policies);
- EXPECT_TRUE(pref->GetBoolean(prefs::kArcEnabled));
+ SetArcEnabledByPolicy(true);
EXPECT_TRUE(arc_bridge_service->ready());
// Disable ARC.
- policies.Set(key::kArcEnabled, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
- POLICY_SOURCE_CLOUD,
- base::WrapUnique(new base::FundamentalValue(false)), nullptr);
- UpdateProviderPolicy(policies);
- EXPECT_FALSE(pref->GetBoolean(prefs::kArcEnabled));
+ SetArcEnabledByPolicy(false);
EXPECT_TRUE(arc_bridge_service->stopped());
TearDownTest();
}
+// Test Arc default apps do not appear when Arc is disabled by policy.
+IN_PROC_BROWSER_TEST_F(ArcPolicyDefaultAppTest, DefaultApps) {
+ // Started disabled.
+ SetArcEnabledByPolicy(false);
+
+ SetUpTest();
+
+ ArcAppListPrefs* prefs = ArcAppListPrefs::Get(browser()->profile());
+ ASSERT_NE(nullptr, prefs);
+
+ base::RunLoop run_loop;
+ prefs->SetDefaltAppsReadyCallback(run_loop.QuitClosure());
+ run_loop.Run();
+
+ EXPECT_TRUE(prefs->GetAppIds().empty());
+
+ // Enable Arc
+ SetArcEnabledByPolicy(true);
+ EXPECT_FALSE(prefs->GetAppIds().empty());
+
+ // Disable Arc again.
+ SetArcEnabledByPolicy(false);
+ EXPECT_TRUE(prefs->GetAppIds().empty());
+
+ TearDownTest();
+}
+
// Test ArcBackupRestoreEnabled policy.
IN_PROC_BROWSER_TEST_F(ArcPolicyTest, ArcBackupRestoreEnabled) {
SetUpTest();
« no previous file with comments | « no previous file | chrome/browser/ui/app_list/arc/arc_app_list_prefs.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698