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

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

Issue 2561023002: arc: ARC loading progress should not be shown when started from OOBE. (Closed)
Patch Set: small fix Created 4 years 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/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 32797a755e01bf460bbd9d9b9d71b02f98550750..6c3896e5bd1f1f2390ccff4430f8823141606708 100644
--- a/chrome/browser/chromeos/arc/arc_session_manager_unittest.cc
+++ b/chrome/browser/chromeos/arc/arc_session_manager_unittest.cc
@@ -13,13 +13,19 @@
#include "base/files/scoped_temp_dir.h"
#include "base/macros.h"
#include "base/memory/ptr_util.h"
+#include "base/observer_list.h"
#include "base/run_loop.h"
#include "chrome/browser/chromeos/arc/arc_optin_uma.h"
#include "chrome/browser/chromeos/arc/arc_session_manager.h"
+#include "chrome/browser/chromeos/arc/optin/arc_terms_of_service_oobe_negotiator_for_managed_user.h"
+#include "chrome/browser/chromeos/login/screens/arc_terms_of_service_screen_actor.h"
+#include "chrome/browser/chromeos/login/screens/arc_terms_of_service_screen_actor_observer.h"
#include "chrome/browser/chromeos/login/users/fake_chrome_user_manager.h"
#include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h"
#include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h"
#include "chrome/browser/chromeos/profiles/profile_helper.h"
+#include "chrome/browser/policy/profile_policy_connector.h"
+#include "chrome/browser/policy/profile_policy_connector_factory.h"
#include "chrome/browser/prefs/pref_service_syncable_util.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/app_list/arc/arc_app_list_prefs.h"
@@ -98,7 +104,7 @@ class ArcSessionManagerTestBase : public testing::Test {
}
protected:
- Profile* profile() { return profile_.get(); }
+ TestingProfile* profile() { return profile_.get(); }
FakeArcBridgeService* bridge_service() {
return static_cast<FakeArcBridgeService*>(
arc_service_manager_->arc_bridge_service());
@@ -531,4 +537,88 @@ TEST_F(ArcSessionManagerKioskTest, AuthFailure) {
EXPECT_TRUE(terminated);
}
+class ArcSessionOobeManagedUserTest
+ : public ArcSessionManagerTest,
+ public chromeos::ArcTermsOfServiceScreenActor {
+ public:
+ ArcSessionOobeManagedUserTest() = default;
+
+ void SetUp() override {
+ ArcSessionManagerTest::SetUp();
+
+ ArcTermsOfServiceInitialOobeNegotiatorForManagedUser::
+ SetArcTermsOfServiceScreenActorForTesting(this);
+
+ GetFakeUserManager()->set_current_user_new(true);
+
+ policy::ProfilePolicyConnector* const connector =
+ policy::ProfilePolicyConnectorFactory::GetForBrowserContext(profile());
+ connector->OverrideIsManagedForTesting(true);
+
+ base::CommandLine::ForCurrentProcess()->AppendSwitch(
+ chromeos::switches::kEnableArcOOBEOptIn);
+
+ profile()->GetTestingPrefService()->SetManagedPref(
+ prefs::kArcEnabled, new base::FundamentalValue(true));
+ }
+
+ void TearDown() override {
+ ArcSessionManagerTest::TearDown();
hidehiko 2016/12/19 15:49:44 Please call this after L568 (in general TearDown s
khmel 2016/12/19 17:48:10 Done.
+
+ ArcTermsOfServiceInitialOobeNegotiatorForManagedUser::
+ SetArcTermsOfServiceScreenActorForTesting(nullptr);
+ }
+
+ protected:
+ void ReportResult(bool accepted) {
+ for (auto& observer : observer_list_) {
+ if (accepted)
+ observer.OnAccept();
+ else
+ observer.OnSkip();
+ }
+ base::RunLoop().RunUntilIdle();
+ }
+
+ private:
+ // ArcTermsOfServiceScreenActor:
+ void AddObserver(
+ chromeos::ArcTermsOfServiceScreenActorObserver* observer) override {
+ observer_list_.AddObserver(observer);
+ }
+
+ void RemoveObserver(
+ chromeos::ArcTermsOfServiceScreenActorObserver* observer) override {
+ observer_list_.RemoveObserver(observer);
+ }
+
+ void Show() override {}
+ void Hide() override {}
+
+ base::ObserverList<chromeos::ArcTermsOfServiceScreenActorObserver>
+ observer_list_;
+
+ DISALLOW_COPY_AND_ASSIGN(ArcSessionOobeManagedUserTest);
+};
+
+TEST_F(ArcSessionOobeManagedUserTest, OobeTermsAccepted) {
+ arc_session_manager()->OnPrimaryUserProfilePrepared(profile());
+ EXPECT_EQ(ArcSessionManager::State::SHOWING_TERMS_OF_SERVICE,
+ arc_session_manager()->state());
+ ReportResult(true);
+ EXPECT_EQ(ArcSessionManager::State::ACTIVE, arc_session_manager()->state());
+ // Correctly stop service.
+ arc_session_manager()->Shutdown();
+}
+
+TEST_F(ArcSessionOobeManagedUserTest, OobeTermsRejected) {
+ arc_session_manager()->OnPrimaryUserProfilePrepared(profile());
+ EXPECT_EQ(ArcSessionManager::State::SHOWING_TERMS_OF_SERVICE,
+ arc_session_manager()->state());
+ ReportResult(false);
+ EXPECT_EQ(ArcSessionManager::State::STOPPED, arc_session_manager()->state());
+ // Correctly stop service.
+ arc_session_manager()->Shutdown();
+}
+
} // namespace arc

Powered by Google App Engine
This is Rietveld 408576698