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

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: Fix ArcBridgeBootstrap race issues. Created 4 years, 4 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 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 #include "chromeos/audio/cras_audio_handler.h" 205 #include "chromeos/audio/cras_audio_handler.h"
206 #include "chromeos/chromeos_switches.h" 206 #include "chromeos/chromeos_switches.h"
207 #include "chromeos/cryptohome/cryptohome_parameters.h" 207 #include "chromeos/cryptohome/cryptohome_parameters.h"
208 #include "chromeos/dbus/dbus_thread_manager.h" 208 #include "chromeos/dbus/dbus_thread_manager.h"
209 #include "chromeos/dbus/fake_session_manager_client.h" 209 #include "chromeos/dbus/fake_session_manager_client.h"
210 #include "chromeos/dbus/session_manager_client.h" 210 #include "chromeos/dbus/session_manager_client.h"
211 #include "components/arc/arc_bridge_service.h" 211 #include "components/arc/arc_bridge_service.h"
212 #include "components/arc/arc_bridge_service_impl.h" 212 #include "components/arc/arc_bridge_service_impl.h"
213 #include "components/arc/arc_service_manager.h" 213 #include "components/arc/arc_service_manager.h"
214 #include "components/arc/test/fake_arc_bridge_bootstrap.h" 214 #include "components/arc/test/fake_arc_bridge_bootstrap.h"
215 #include "components/arc/test/fake_arc_bridge_instance.h"
216 #include "components/signin/core/account_id/account_id.h" 215 #include "components/signin/core/account_id/account_id.h"
217 #include "components/user_manager/user_manager.h" 216 #include "components/user_manager/user_manager.h"
218 #include "ui/keyboard/keyboard_util.h" 217 #include "ui/keyboard/keyboard_util.h"
219 #include "ui/snapshot/screenshot_grabber.h" 218 #include "ui/snapshot/screenshot_grabber.h"
220 #endif 219 #endif
221 220
222 #if !defined(OS_MACOSX) 221 #if !defined(OS_MACOSX)
223 #include "base/compiler_specific.h" 222 #include "base/compiler_specific.h"
224 #include "chrome/browser/ui/extensions/app_launch_params.h" 223 #include "chrome/browser/ui/extensions/app_launch_params.h"
225 #include "chrome/browser/ui/extensions/application_launch.h" 224 #include "chrome/browser/ui/extensions/application_launch.h"
(...skipping 3648 matching lines...) Expand 10 before | Expand all | Expand 10 after
3874 base::WrapUnique(new base::FundamentalValue(true)), nullptr); 3873 base::WrapUnique(new base::FundamentalValue(true)), nullptr);
3875 UpdateProviderPolicy(policies); 3874 UpdateProviderPolicy(policies);
3876 EXPECT_TRUE(display_manager->unified_desktop_enabled()); 3875 EXPECT_TRUE(display_manager->unified_desktop_enabled());
3877 policies.Set(key::kUnifiedDesktopEnabledByDefault, POLICY_LEVEL_MANDATORY, 3876 policies.Set(key::kUnifiedDesktopEnabledByDefault, POLICY_LEVEL_MANDATORY,
3878 POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD, 3877 POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD,
3879 base::WrapUnique(new base::FundamentalValue(false)), nullptr); 3878 base::WrapUnique(new base::FundamentalValue(false)), nullptr);
3880 UpdateProviderPolicy(policies); 3879 UpdateProviderPolicy(policies);
3881 EXPECT_FALSE(display_manager->unified_desktop_enabled()); 3880 EXPECT_FALSE(display_manager->unified_desktop_enabled());
3882 } 3881 }
3883 3882
3884 class ArcPolicyTest : public PolicyTest { 3883 class ArcPolicyTest : public PolicyTest,
3884 public arc::ArcBridgeServiceImpl::Delegate {
3885 public: 3885 public:
3886 ArcPolicyTest() {} 3886 ArcPolicyTest() {}
3887 ~ArcPolicyTest() override {} 3887 ~ArcPolicyTest() override {}
3888 3888
3889 protected: 3889 protected:
3890 void SetUpTest() { 3890 void SetUpTest() {
3891 arc::ArcAuthService::DisableUIForTesting(); 3891 arc::ArcAuthService::DisableUIForTesting();
3892 3892
3893 browser()->profile()->GetPrefs()->SetBoolean(prefs::kArcSignedIn, true); 3893 browser()->profile()->GetPrefs()->SetBoolean(prefs::kArcSignedIn, true);
3894 } 3894 }
3895 3895
3896 void TearDownTest() { 3896 void TearDownTest() {
3897 arc::ArcAuthService::Get()->Shutdown(); 3897 arc::ArcAuthService::Get()->Shutdown();
3898 } 3898 }
3899 3899
3900 void SetUpInProcessBrowserTestFixture() override { 3900 void SetUpInProcessBrowserTestFixture() override {
3901 PolicyTest::SetUpInProcessBrowserTestFixture(); 3901 PolicyTest::SetUpInProcessBrowserTestFixture();
3902 fake_session_manager_client_ = new chromeos::FakeSessionManagerClient; 3902 fake_session_manager_client_ = new chromeos::FakeSessionManagerClient;
3903 fake_session_manager_client_->set_arc_available(true); 3903 fake_session_manager_client_->set_arc_available(true);
3904 chromeos::DBusThreadManager::GetSetterForTesting()->SetSessionManagerClient( 3904 chromeos::DBusThreadManager::GetSetterForTesting()->SetSessionManagerClient(
3905 std::unique_ptr<chromeos::SessionManagerClient>( 3905 std::unique_ptr<chromeos::SessionManagerClient>(
3906 fake_session_manager_client_)); 3906 fake_session_manager_client_));
3907 3907
3908 fake_arc_bridge_instance_.reset(new arc::FakeArcBridgeInstance); 3908 std::unique_ptr<arc::ArcBridgeServiceImpl> service(
3909 arc::ArcServiceManager::SetArcBridgeServiceForTesting( 3909 new arc::ArcBridgeServiceImpl);
3910 base::WrapUnique(new arc::ArcBridgeServiceImpl( 3910 service->SetDelegateForTesting(this);
3911 base::WrapUnique(new arc::FakeArcBridgeBootstrap( 3911 arc::ArcServiceManager::SetArcBridgeServiceForTesting(std::move(service));
3912 fake_arc_bridge_instance_.get())))));
3913 } 3912 }
3914 3913
3915 void SetUpCommandLine(base::CommandLine* command_line) override { 3914 void SetUpCommandLine(base::CommandLine* command_line) override {
3916 // ArcAuthService functionality is available only when Arc is enabled. Use 3915 // ArcAuthService functionality is available only when Arc is enabled. Use
3917 // kEnableArc switch that activates it. 3916 // kEnableArc switch that activates it.
3918 command_line->AppendSwitch(chromeos::switches::kEnableArc); 3917 command_line->AppendSwitch(chromeos::switches::kEnableArc);
3919 } 3918 }
3920 3919
3921 private: 3920 private:
3921 // ArcBridgeServiceImpl::Delegate override:
3922 std::unique_ptr<arc::ArcBridgeBootstrap> CreateBootstrap() override {
3923 return base::WrapUnique(new arc::FakeArcBridgeBootstrap);
3924 }
3925
3922 chromeos::FakeSessionManagerClient *fake_session_manager_client_; 3926 chromeos::FakeSessionManagerClient *fake_session_manager_client_;
3923 std::unique_ptr<arc::FakeArcBridgeInstance> fake_arc_bridge_instance_;
3924 3927
3925 DISALLOW_COPY_AND_ASSIGN(ArcPolicyTest); 3928 DISALLOW_COPY_AND_ASSIGN(ArcPolicyTest);
3926 }; 3929 };
3927 3930
3928 // Test ArcEnabled policy. 3931 // Test ArcEnabled policy.
3929 IN_PROC_BROWSER_TEST_F(ArcPolicyTest, ArcEnabled) { 3932 IN_PROC_BROWSER_TEST_F(ArcPolicyTest, ArcEnabled) {
3930 SetUpTest(); 3933 SetUpTest();
3931 3934
3932 const PrefService* const pref = browser()->profile()->GetPrefs(); 3935 const PrefService* const pref = browser()->profile()->GetPrefs();
3933 const arc::ArcBridgeService* const arc_bridge_service 3936 const arc::ArcBridgeService* const arc_bridge_service
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
4121 4124
4122 SetEmptyPolicy(); 4125 SetEmptyPolicy();
4123 // Policy not set. 4126 // Policy not set.
4124 CheckSystemTimezoneAutomaticDetectionPolicyUnset(); 4127 CheckSystemTimezoneAutomaticDetectionPolicyUnset();
4125 EXPECT_TRUE(CheckResolveTimezoneByGeolocation(true, false)); 4128 EXPECT_TRUE(CheckResolveTimezoneByGeolocation(true, false));
4126 EXPECT_TRUE(manager->TimeZoneResolverShouldBeRunningForTests()); 4129 EXPECT_TRUE(manager->TimeZoneResolverShouldBeRunningForTests());
4127 } 4130 }
4128 #endif // defined(OS_CHROMEOS) 4131 #endif // defined(OS_CHROMEOS)
4129 4132
4130 } // namespace policy 4133 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698