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

Side by Side Diff: chrome/browser/chromeos/login/login_utils_browsertest.cc

Issue 7233006: Store/Retrieve CrOS user policy in session_manager. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 8 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/browser/policy/browser_policy_connector.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "chrome/browser/chromeos/login/login_utils.h" 5 #include "chrome/browser/chromeos/login/login_utils.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/message_loop.h" 9 #include "base/message_loop.h"
10 #include "base/path_service.h" 10 #include "base/path_service.h"
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 #include "testing/gtest/include/gtest/gtest.h" 42 #include "testing/gtest/include/gtest/gtest.h"
43 43
44 namespace chromeos { 44 namespace chromeos {
45 45
46 namespace { 46 namespace {
47 47
48 namespace em = enterprise_management; 48 namespace em = enterprise_management;
49 49
50 using ::testing::DoAll; 50 using ::testing::DoAll;
51 using ::testing::Return; 51 using ::testing::Return;
52 using ::testing::SaveArg;
52 using ::testing::SetArgPointee; 53 using ::testing::SetArgPointee;
53 using ::testing::_; 54 using ::testing::_;
54 using content::BrowserThread; 55 using content::BrowserThread;
55 56
56 const char kTrue[] = "true"; 57 const char kTrue[] = "true";
57 const char kDomain[] = "domain.com"; 58 const char kDomain[] = "domain.com";
58 const char kUsername[] = "user@domain.com"; 59 const char kUsername[] = "user@domain.com";
59 const char kMode[] = "enterprise"; 60 const char kMode[] = "enterprise";
60 const char kDeviceId[] = "100200300"; 61 const char kDeviceId[] = "100200300";
61 const char kUsernameOtherDomain[] = "user@other.com"; 62 const char kUsernameOtherDomain[] = "user@other.com";
(...skipping 10 matching lines...) Expand all
72 "wrap_access_token=1234&wrap_access_token_expires_in=123456789"; 73 "wrap_access_token=1234&wrap_access_token_expires_in=123456789";
73 74
74 const char kDMServer[] = "http://server/device_management"; 75 const char kDMServer[] = "http://server/device_management";
75 const char kDMRegisterRequest[] = 76 const char kDMRegisterRequest[] =
76 "http://server/device_management?request=register"; 77 "http://server/device_management?request=register";
77 const char kDMPolicyRequest[] = 78 const char kDMPolicyRequest[] =
78 "http://server/device_management?request=policy"; 79 "http://server/device_management?request=policy";
79 80
80 const char kDMToken[] = "1234"; 81 const char kDMToken[] = "1234";
81 82
82 ACTION_P(MockSessionManagerClientPolicyCallback, policy) { 83 ACTION_P(MockSessionManagerClientRetrievePolicyCallback, policy) {
83 arg0.Run(policy); 84 arg0.Run(*policy);
85 }
86
87 ACTION_P(MockSessionManagerClientStorePolicyCallback, success) {
88 arg1.Run(success);
84 } 89 }
85 90
86 template<typename TESTBASE> 91 template<typename TESTBASE>
87 class LoginUtilsTestBase : public TESTBASE, 92 class LoginUtilsTestBase : public TESTBASE,
88 public LoginUtils::Delegate, 93 public LoginUtils::Delegate,
89 public LoginStatusConsumer { 94 public LoginStatusConsumer {
90 public: 95 public:
91 // Initialization here is important. The UI thread gets the test's 96 // Initialization here is important. The UI thread gets the test's
92 // message loop, as does the file thread (which never actually gets 97 // message loop, as does the file thread (which never actually gets
93 // started - so this is a way to fake multiple threads on a single 98 // started - so this is a way to fake multiple threads on a single
(...skipping 10 matching lines...) Expand all
104 ui_thread_(content::BrowserThread::UI, &loop_), 109 ui_thread_(content::BrowserThread::UI, &loop_),
105 file_thread_(content::BrowserThread::FILE, &loop_), 110 file_thread_(content::BrowserThread::FILE, &loop_),
106 io_thread_(content::BrowserThread::IO), 111 io_thread_(content::BrowserThread::IO),
107 mock_async_method_caller_(NULL), 112 mock_async_method_caller_(NULL),
108 connector_(NULL), 113 connector_(NULL),
109 cryptohome_(NULL), 114 cryptohome_(NULL),
110 prepared_profile_(NULL) {} 115 prepared_profile_(NULL) {}
111 116
112 virtual void SetUp() OVERRIDE { 117 virtual void SetUp() OVERRIDE {
113 ASSERT_TRUE(scoped_temp_dir_.CreateUniqueTempDir()); 118 ASSERT_TRUE(scoped_temp_dir_.CreateUniqueTempDir());
114 // BrowserPolicyConnector makes the UserPolicyCache read relative to this
115 // path. Make sure it's in a clean state.
116 PathService::Override(chrome::DIR_USER_DATA, scoped_temp_dir_.path());
117 119
118 CommandLine* command_line = CommandLine::ForCurrentProcess(); 120 CommandLine* command_line = CommandLine::ForCurrentProcess();
119 command_line->AppendSwitch(switches::kEnableDevicePolicy); 121 command_line->AppendSwitch(switches::kEnableDevicePolicy);
120 command_line->AppendSwitchASCII(switches::kDeviceManagementUrl, kDMServer); 122 command_line->AppendSwitchASCII(switches::kDeviceManagementUrl, kDMServer);
121 command_line->AppendSwitchASCII(switches::kLoginProfile, "user"); 123 command_line->AppendSwitchASCII(switches::kLoginProfile, "user");
122 124
123 local_state_.Get()->RegisterStringPref(prefs::kApplicationLocale, ""); 125 local_state_.Get()->RegisterStringPref(prefs::kApplicationLocale, "");
124 126
125 // DBusThreadManager should be initialized before io_thread_state_, as 127 // DBusThreadManager should be initialized before io_thread_state_, as
126 // DBusThreadManager is used from chromeos::ProxyConfigServiceImpl, 128 // DBusThreadManager is used from chromeos::ProxyConfigServiceImpl,
127 // which is part of io_thread_state_. 129 // which is part of io_thread_state_.
128 DBusThreadManager::InitializeForTesting(&mock_dbus_thread_manager_); 130 DBusThreadManager::InitializeForTesting(&mock_dbus_thread_manager_);
129 131
130 // Likewise, SessionManagerClient should also be initialized before 132 // Likewise, SessionManagerClient should also be initialized before
131 // io_thread_state_. 133 // io_thread_state_.
132 MockSessionManagerClient* session_managed_client = 134 MockSessionManagerClient* session_managed_client =
133 mock_dbus_thread_manager_.mock_session_manager_client(); 135 mock_dbus_thread_manager_.mock_session_manager_client();
134 EXPECT_CALL(*session_managed_client, RetrieveDevicePolicy(_)) 136 EXPECT_CALL(*session_managed_client, RetrieveDevicePolicy(_))
135 .WillRepeatedly(MockSessionManagerClientPolicyCallback("")); 137 .WillRepeatedly(
138 MockSessionManagerClientRetrievePolicyCallback(&device_policy_));
139 EXPECT_CALL(*session_managed_client, RetrieveUserPolicy(_))
140 .WillRepeatedly(
141 MockSessionManagerClientRetrievePolicyCallback(&user_policy_));
142 EXPECT_CALL(*session_managed_client, StoreUserPolicy(_, _))
143 .WillRepeatedly(
144 DoAll(SaveArg<0>(&user_policy_),
145 MockSessionManagerClientStorePolicyCallback(true)));
136 146
137 mock_async_method_caller_ = new cryptohome::MockAsyncMethodCaller; 147 mock_async_method_caller_ = new cryptohome::MockAsyncMethodCaller;
138 cryptohome::AsyncMethodCaller::InitializeForTesting( 148 cryptohome::AsyncMethodCaller::InitializeForTesting(
139 mock_async_method_caller_); 149 mock_async_method_caller_);
140 150
141 io_thread_state_.reset(new IOThread(local_state_.Get(), NULL, NULL)); 151 io_thread_state_.reset(new IOThread(local_state_.Get(), NULL, NULL));
142 browser_process_->SetIOThread(io_thread_state_.get()); 152 browser_process_->SetIOThread(io_thread_state_.get());
143 153
144 CrosLibrary::TestApi* test_api = CrosLibrary::Get()->GetTestApi(); 154 CrosLibrary::TestApi* test_api = CrosLibrary::Get()->GetTestApi();
145 ASSERT_TRUE(test_api); 155 ASSERT_TRUE(test_api);
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
357 367
358 cryptohome::MockAsyncMethodCaller* mock_async_method_caller_; 368 cryptohome::MockAsyncMethodCaller* mock_async_method_caller_;
359 369
360 policy::BrowserPolicyConnector* connector_; 370 policy::BrowserPolicyConnector* connector_;
361 MockCryptohomeLibrary* cryptohome_; 371 MockCryptohomeLibrary* cryptohome_;
362 Profile* prepared_profile_; 372 Profile* prepared_profile_;
363 373
364 private: 374 private:
365 ScopedTempDir scoped_temp_dir_; 375 ScopedTempDir scoped_temp_dir_;
366 376
377 std::string device_policy_;
378 std::string user_policy_;
379
367 DISALLOW_COPY_AND_ASSIGN(LoginUtilsTestBase); 380 DISALLOW_COPY_AND_ASSIGN(LoginUtilsTestBase);
368 }; 381 };
369 382
370 class LoginUtilsTest : public LoginUtilsTestBase<testing::Test> { 383 class LoginUtilsTest : public LoginUtilsTestBase<testing::Test> {
371 }; 384 };
372 385
373 class LoginUtilsBlockingLoginTest 386 class LoginUtilsBlockingLoginTest
374 : public LoginUtilsTestBase<testing::TestWithParam<int> > { 387 : public LoginUtilsTestBase<testing::TestWithParam<int> > {
375 }; 388 };
376 389
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
504 } 517 }
505 518
506 INSTANTIATE_TEST_CASE_P( 519 INSTANTIATE_TEST_CASE_P(
507 LoginUtilsBlockingLoginTestInstance, 520 LoginUtilsBlockingLoginTestInstance,
508 LoginUtilsBlockingLoginTest, 521 LoginUtilsBlockingLoginTest,
509 testing::Values(0, 1, 2, 3, 4, 5)); 522 testing::Values(0, 1, 2, 3, 4, 5));
510 523
511 } // namespace 524 } // namespace
512 525
513 } 526 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/policy/browser_policy_connector.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698