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

Side by Side Diff: chrome/browser/policy/policy_browsertest.cc

Issue 2194193002: Fix ArcBridgeBootstrap race issues. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 3 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 7
8 #include <algorithm> 8 #include <algorithm>
9 #include <memory> 9 #include <memory>
10 #include <string> 10 #include <string>
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
208 #include "chromeos/audio/cras_audio_handler.h" 208 #include "chromeos/audio/cras_audio_handler.h"
209 #include "chromeos/chromeos_switches.h" 209 #include "chromeos/chromeos_switches.h"
210 #include "chromeos/cryptohome/cryptohome_parameters.h" 210 #include "chromeos/cryptohome/cryptohome_parameters.h"
211 #include "chromeos/dbus/dbus_thread_manager.h" 211 #include "chromeos/dbus/dbus_thread_manager.h"
212 #include "chromeos/dbus/fake_session_manager_client.h" 212 #include "chromeos/dbus/fake_session_manager_client.h"
213 #include "chromeos/dbus/session_manager_client.h" 213 #include "chromeos/dbus/session_manager_client.h"
214 #include "components/arc/arc_bridge_service.h" 214 #include "components/arc/arc_bridge_service.h"
215 #include "components/arc/arc_bridge_service_impl.h" 215 #include "components/arc/arc_bridge_service_impl.h"
216 #include "components/arc/arc_service_manager.h" 216 #include "components/arc/arc_service_manager.h"
217 #include "components/arc/test/fake_arc_bridge_bootstrap.h" 217 #include "components/arc/test/fake_arc_bridge_bootstrap.h"
218 #include "components/arc/test/fake_arc_bridge_instance.h"
219 #include "components/signin/core/account_id/account_id.h" 218 #include "components/signin/core/account_id/account_id.h"
220 #include "components/user_manager/user_manager.h" 219 #include "components/user_manager/user_manager.h"
221 #include "ui/keyboard/keyboard_util.h" 220 #include "ui/keyboard/keyboard_util.h"
222 #include "ui/snapshot/screenshot_grabber.h" 221 #include "ui/snapshot/screenshot_grabber.h"
223 #endif 222 #endif
224 223
225 #if !defined(OS_MACOSX) 224 #if !defined(OS_MACOSX)
226 #include "base/compiler_specific.h" 225 #include "base/compiler_specific.h"
227 #include "chrome/browser/ui/extensions/app_launch_params.h" 226 #include "chrome/browser/ui/extensions/app_launch_params.h"
228 #include "chrome/browser/ui/extensions/application_launch.h" 227 #include "chrome/browser/ui/extensions/application_launch.h"
(...skipping 3871 matching lines...) Expand 10 before | Expand all | Expand 10 after
4100 base::WrapUnique(new base::FundamentalValue(true)), nullptr); 4099 base::WrapUnique(new base::FundamentalValue(true)), nullptr);
4101 UpdateProviderPolicy(policies); 4100 UpdateProviderPolicy(policies);
4102 EXPECT_TRUE(display_manager->unified_desktop_enabled()); 4101 EXPECT_TRUE(display_manager->unified_desktop_enabled());
4103 policies.Set(key::kUnifiedDesktopEnabledByDefault, POLICY_LEVEL_MANDATORY, 4102 policies.Set(key::kUnifiedDesktopEnabledByDefault, POLICY_LEVEL_MANDATORY,
4104 POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD, 4103 POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD,
4105 base::WrapUnique(new base::FundamentalValue(false)), nullptr); 4104 base::WrapUnique(new base::FundamentalValue(false)), nullptr);
4106 UpdateProviderPolicy(policies); 4105 UpdateProviderPolicy(policies);
4107 EXPECT_FALSE(display_manager->unified_desktop_enabled()); 4106 EXPECT_FALSE(display_manager->unified_desktop_enabled());
4108 } 4107 }
4109 4108
4110 class ArcPolicyTest : public PolicyTest { 4109 class ArcPolicyTest : public PolicyTest,
4110 public arc::ArcBridgeServiceImpl::Delegate {
4111 public: 4111 public:
4112 ArcPolicyTest() {} 4112 ArcPolicyTest() {}
4113 ~ArcPolicyTest() override {} 4113 ~ArcPolicyTest() override {}
4114 4114
4115 protected: 4115 protected:
4116 void SetUpTest() { 4116 void SetUpTest() {
4117 arc::ArcAuthService::DisableUIForTesting(); 4117 arc::ArcAuthService::DisableUIForTesting();
4118 4118
4119 browser()->profile()->GetPrefs()->SetBoolean(prefs::kArcSignedIn, true); 4119 browser()->profile()->GetPrefs()->SetBoolean(prefs::kArcSignedIn, true);
4120 } 4120 }
4121 4121
4122 void TearDownTest() { 4122 void TearDownTest() {
4123 arc::ArcAuthService::Get()->Shutdown(); 4123 arc::ArcAuthService::Get()->Shutdown();
4124 } 4124 }
4125 4125
4126 void SetUpInProcessBrowserTestFixture() override { 4126 void SetUpInProcessBrowserTestFixture() override {
4127 PolicyTest::SetUpInProcessBrowserTestFixture(); 4127 PolicyTest::SetUpInProcessBrowserTestFixture();
4128 fake_session_manager_client_ = new chromeos::FakeSessionManagerClient; 4128 fake_session_manager_client_ = new chromeos::FakeSessionManagerClient;
4129 fake_session_manager_client_->set_arc_available(true); 4129 fake_session_manager_client_->set_arc_available(true);
4130 chromeos::DBusThreadManager::GetSetterForTesting()->SetSessionManagerClient( 4130 chromeos::DBusThreadManager::GetSetterForTesting()->SetSessionManagerClient(
4131 std::unique_ptr<chromeos::SessionManagerClient>( 4131 std::unique_ptr<chromeos::SessionManagerClient>(
4132 fake_session_manager_client_)); 4132 fake_session_manager_client_));
4133 4133
4134 fake_arc_bridge_instance_.reset(new arc::FakeArcBridgeInstance); 4134 std::unique_ptr<arc::ArcBridgeServiceImpl> service(
4135 arc::ArcServiceManager::SetArcBridgeServiceForTesting( 4135 new arc::ArcBridgeServiceImpl);
4136 base::WrapUnique(new arc::ArcBridgeServiceImpl( 4136 service->SetDelegateForTesting(this);
4137 base::WrapUnique(new arc::FakeArcBridgeBootstrap( 4137 arc::ArcServiceManager::SetArcBridgeServiceForTesting(std::move(service));
4138 fake_arc_bridge_instance_.get())))));
4139 } 4138 }
4140 4139
4141 void SetUpCommandLine(base::CommandLine* command_line) override { 4140 void SetUpCommandLine(base::CommandLine* command_line) override {
4142 // ArcAuthService functionality is available only when Arc is enabled. Use 4141 // ArcAuthService functionality is available only when Arc is enabled. Use
4143 // kEnableArc switch that activates it. 4142 // kEnableArc switch that activates it.
4144 command_line->AppendSwitch(chromeos::switches::kEnableArc); 4143 command_line->AppendSwitch(chromeos::switches::kEnableArc);
4145 } 4144 }
4146 4145
4147 private: 4146 private:
4147 // ArcBridgeServiceImpl::Delegate override:
4148 std::unique_ptr<arc::ArcBridgeBootstrap> CreateBootstrap() override {
4149 return base::WrapUnique(new arc::FakeArcBridgeBootstrap);
4150 }
4151
4148 chromeos::FakeSessionManagerClient *fake_session_manager_client_; 4152 chromeos::FakeSessionManagerClient *fake_session_manager_client_;
4149 std::unique_ptr<arc::FakeArcBridgeInstance> fake_arc_bridge_instance_;
4150 4153
4151 DISALLOW_COPY_AND_ASSIGN(ArcPolicyTest); 4154 DISALLOW_COPY_AND_ASSIGN(ArcPolicyTest);
4152 }; 4155 };
4153 4156
4154 // Test ArcEnabled policy. 4157 // Test ArcEnabled policy.
4155 IN_PROC_BROWSER_TEST_F(ArcPolicyTest, ArcEnabled) { 4158 IN_PROC_BROWSER_TEST_F(ArcPolicyTest, ArcEnabled) {
4156 SetUpTest(); 4159 SetUpTest();
4157 4160
4158 const PrefService* const pref = browser()->profile()->GetPrefs(); 4161 const PrefService* const pref = browser()->profile()->GetPrefs();
4159 const arc::ArcBridgeService* const arc_bridge_service 4162 const arc::ArcBridgeService* const arc_bridge_service
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
4386 4389
4387 SetEmptyPolicy(); 4390 SetEmptyPolicy();
4388 // Policy not set. 4391 // Policy not set.
4389 CheckSystemTimezoneAutomaticDetectionPolicyUnset(); 4392 CheckSystemTimezoneAutomaticDetectionPolicyUnset();
4390 EXPECT_TRUE(CheckResolveTimezoneByGeolocation(true, false)); 4393 EXPECT_TRUE(CheckResolveTimezoneByGeolocation(true, false));
4391 EXPECT_TRUE(manager->TimeZoneResolverShouldBeRunningForTests()); 4394 EXPECT_TRUE(manager->TimeZoneResolverShouldBeRunningForTests());
4392 } 4395 }
4393 #endif // defined(OS_CHROMEOS) 4396 #endif // defined(OS_CHROMEOS)
4394 4397
4395 } // namespace policy 4398 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698