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

Unified Diff: chrome/browser/chromeos/arc/arc_session_manager_unittest.cc

Issue 2739323004: arc: Reactivate OptIn flow on clicking Play Store. (Closed)
Patch Set: TODO added/rebased Created 3 years, 9 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 | « chrome/browser/chromeos/arc/arc_session_manager.h ('k') | chrome/browser/chromeos/arc/arc_util.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chromeos/arc/arc_session_manager_unittest.cc
diff --git a/chrome/browser/chromeos/arc/arc_session_manager_unittest.cc b/chrome/browser/chromeos/arc/arc_session_manager_unittest.cc
index 890bb7fc20630c084a458adfd49075d466f34a5f..9ab638d2922624d785c487ae967d14855e51acc5 100644
--- a/chrome/browser/chromeos/arc/arc_session_manager_unittest.cc
+++ b/chrome/browser/chromeos/arc/arc_session_manager_unittest.cc
@@ -555,6 +555,31 @@ TEST_P(ArcSessionManagerPolicyTest, SkippingTerms) {
arc_session_manager()->Shutdown();
}
+TEST_P(ArcSessionManagerPolicyTest, ReenableManagedArc) {
+ sync_preferences::TestingPrefServiceSyncable* const prefs =
+ profile()->GetTestingPrefService();
+
+ // Set ARC to be managed.
+ prefs->SetManagedPref(prefs::kArcEnabled, new base::Value(true));
+ EXPECT_TRUE(arc::IsArcPlayStoreEnabledForProfile(profile()));
+
+ arc_session_manager()->SetProfile(profile());
+ arc_session_manager()->RequestEnable();
+ EXPECT_TRUE(arc_session_manager()->enable_requested());
+
+ // Simulate close OptIn. Session manager should stop.
+ SetArcPlayStoreEnabledForProfile(profile(), false);
+ EXPECT_TRUE(arc::IsArcPlayStoreEnabledForProfile(profile()));
+ EXPECT_FALSE(arc_session_manager()->enable_requested());
+
+ // Restart ARC again
+ SetArcPlayStoreEnabledForProfile(profile(), true);
+ EXPECT_TRUE(arc::IsArcPlayStoreEnabledForProfile(profile()));
+ EXPECT_TRUE(arc_session_manager()->enable_requested());
+
+ arc_session_manager()->Shutdown();
+}
+
INSTANTIATE_TEST_CASE_P(
ArcSessionManagerPolicyTest,
ArcSessionManagerPolicyTest,
@@ -751,13 +776,20 @@ TEST_P(ArcSessionOobeOptInNegotiatorTest, OobeTermsRejected) {
EXPECT_EQ(ArcSessionManager::State::NEGOTIATING_TERMS_OF_SERVICE,
arc_session_manager()->state());
ReportResult(false);
- // ArcPlayStoreEnabledPreferenceHandler is not running, so the state should
- // be kept as is.
- EXPECT_EQ(ArcSessionManager::State::NEGOTIATING_TERMS_OF_SERVICE,
- arc_session_manager()->state());
- // Managed user's preference should not be overwritten.
- if (!IsManagedUser())
+ if (!IsManagedUser()) {
+ // ArcPlayStoreEnabledPreferenceHandler is not running, so the state should
+ // be kept as is
+ EXPECT_EQ(ArcSessionManager::State::NEGOTIATING_TERMS_OF_SERVICE,
+ arc_session_manager()->state());
EXPECT_FALSE(IsArcPlayStoreEnabledForProfile(profile()));
+ } else {
+ // For managed case we handle closing outside of
+ // ArcPlayStoreEnabledPreferenceHandler. So it session turns to STOPPED.
+ EXPECT_EQ(ArcSessionManager::State::STOPPED,
+ arc_session_manager()->state());
+ // Managed user's preference should not be overwritten.
+ EXPECT_TRUE(IsArcPlayStoreEnabledForProfile(profile()));
+ }
}
TEST_P(ArcSessionOobeOptInNegotiatorTest, OobeTermsViewDestroyed) {
@@ -766,13 +798,20 @@ TEST_P(ArcSessionOobeOptInNegotiatorTest, OobeTermsViewDestroyed) {
arc_session_manager()->state());
CloseLoginDisplayHost();
ReportViewDestroyed();
- // ArcPlayStoreEnabledPreferenceHandler is not running, so the state should
- // be kept as is.
- EXPECT_EQ(ArcSessionManager::State::NEGOTIATING_TERMS_OF_SERVICE,
- arc_session_manager()->state());
- // Managed user's preference should not be overwritten.
- if (!IsManagedUser())
+ if (!IsManagedUser()) {
+ // ArcPlayStoreEnabledPreferenceHandler is not running, so the state should
+ // be kept as is.
+ EXPECT_EQ(ArcSessionManager::State::NEGOTIATING_TERMS_OF_SERVICE,
+ arc_session_manager()->state());
EXPECT_FALSE(IsArcPlayStoreEnabledForProfile(profile()));
+ } else {
+ // For managed case we handle closing outside of
+ // ArcPlayStoreEnabledPreferenceHandler. So it session turns to STOPPED.
+ EXPECT_EQ(ArcSessionManager::State::STOPPED,
+ arc_session_manager()->state());
+ // Managed user's preference should not be overwritten.
+ EXPECT_TRUE(IsArcPlayStoreEnabledForProfile(profile()));
+ }
}
} // namespace arc
« no previous file with comments | « chrome/browser/chromeos/arc/arc_session_manager.h ('k') | chrome/browser/chromeos/arc/arc_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698