| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 #include "chrome/browser/chromeos/policy/affiliation_test_helper.h" | 4 #include "chrome/browser/chromeos/policy/affiliation_test_helper.h" |
| 5 | 5 |
| 6 #include <stdint.h> | 6 #include <stdint.h> |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 26 matching lines...) Expand all Loading... |
| 37 #include "testing/gtest/include/gtest/gtest.h" | 37 #include "testing/gtest/include/gtest/gtest.h" |
| 38 | 38 |
| 39 namespace policy { | 39 namespace policy { |
| 40 | 40 |
| 41 namespace affiliation_test_helper { | 41 namespace affiliation_test_helper { |
| 42 | 42 |
| 43 const char kFakeRefreshToken[] = "fake-refresh-token"; | 43 const char kFakeRefreshToken[] = "fake-refresh-token"; |
| 44 const char kEnterpriseUser[] = "testuser@example.com"; | 44 const char kEnterpriseUser[] = "testuser@example.com"; |
| 45 | 45 |
| 46 void SetUserKeys(policy::UserPolicyBuilder* user_policy) { | 46 void SetUserKeys(policy::UserPolicyBuilder* user_policy) { |
| 47 std::string username = user_policy->policy_data().username(); | 47 const AccountId account_id = |
| 48 AccountId::FromUserEmail(user_policy->policy_data().username()); |
| 48 base::FilePath user_keys_dir; | 49 base::FilePath user_keys_dir; |
| 49 ASSERT_TRUE(PathService::Get(chromeos::DIR_USER_POLICY_KEYS, &user_keys_dir)); | 50 ASSERT_TRUE(PathService::Get(chromeos::DIR_USER_POLICY_KEYS, &user_keys_dir)); |
| 50 const std::string sanitized_username = | 51 const std::string sanitized_username = |
| 51 chromeos::CryptohomeClient::GetStubSanitizedUsername(username); | 52 chromeos::CryptohomeClient::GetStubSanitizedUsername( |
| 53 cryptohome::Identification(account_id)); |
| 52 const base::FilePath user_key_file = | 54 const base::FilePath user_key_file = |
| 53 user_keys_dir.AppendASCII(sanitized_username).AppendASCII("policy.pub"); | 55 user_keys_dir.AppendASCII(sanitized_username).AppendASCII("policy.pub"); |
| 54 std::vector<uint8_t> user_key_bits; | 56 std::vector<uint8_t> user_key_bits; |
| 55 ASSERT_TRUE(user_policy->GetSigningKey()->ExportPublicKey(&user_key_bits)); | 57 ASSERT_TRUE(user_policy->GetSigningKey()->ExportPublicKey(&user_key_bits)); |
| 56 ASSERT_TRUE(base::CreateDirectory(user_key_file.DirName())); | 58 ASSERT_TRUE(base::CreateDirectory(user_key_file.DirName())); |
| 57 ASSERT_EQ(base::WriteFile(user_key_file, | 59 ASSERT_EQ(base::WriteFile(user_key_file, |
| 58 reinterpret_cast<const char*>(user_key_bits.data()), | 60 reinterpret_cast<const char*>(user_key_bits.data()), |
| 59 user_key_bits.size()), | 61 user_key_bits.size()), |
| 60 static_cast<int>(user_key_bits.size())); | 62 static_cast<int>(user_key_bits.size())); |
| 61 } | 63 } |
| (...skipping 15 matching lines...) Expand all Loading... |
| 77 | 79 |
| 78 fake_session_manager_client->set_device_policy(device_policy->GetBlob()); | 80 fake_session_manager_client->set_device_policy(device_policy->GetBlob()); |
| 79 fake_session_manager_client->OnPropertyChangeComplete(true); | 81 fake_session_manager_client->OnPropertyChangeComplete(true); |
| 80 } | 82 } |
| 81 | 83 |
| 82 void SetUserAffiliationIDs( | 84 void SetUserAffiliationIDs( |
| 83 policy::UserPolicyBuilder* user_policy, | 85 policy::UserPolicyBuilder* user_policy, |
| 84 chromeos::FakeSessionManagerClient* fake_session_manager_client, | 86 chromeos::FakeSessionManagerClient* fake_session_manager_client, |
| 85 const std::string& user_email, | 87 const std::string& user_email, |
| 86 const std::set<std::string>& user_affiliation_ids) { | 88 const std::set<std::string>& user_affiliation_ids) { |
| 89 const AccountId account_id = AccountId::FromUserEmail(user_email); |
| 87 user_policy->policy_data().set_username(user_email); | 90 user_policy->policy_data().set_username(user_email); |
| 88 SetUserKeys(user_policy); | 91 SetUserKeys(user_policy); |
| 89 for (const auto& user_affiliation_id : user_affiliation_ids) { | 92 for (const auto& user_affiliation_id : user_affiliation_ids) { |
| 90 user_policy->policy_data().add_user_affiliation_ids(user_affiliation_id); | 93 user_policy->policy_data().add_user_affiliation_ids(user_affiliation_id); |
| 91 } | 94 } |
| 92 user_policy->Build(); | 95 user_policy->Build(); |
| 93 fake_session_manager_client->set_user_policy(user_email, | 96 fake_session_manager_client->set_user_policy( |
| 94 user_policy->GetBlob()); | 97 cryptohome::Identification(account_id), user_policy->GetBlob()); |
| 95 } | 98 } |
| 96 | 99 |
| 97 void PreLoginUser(const std::string& user_id) { | 100 void PreLoginUser(const std::string& user_id) { |
| 98 ListPrefUpdate users_pref(g_browser_process->local_state(), "LoggedInUsers"); | 101 ListPrefUpdate users_pref(g_browser_process->local_state(), "LoggedInUsers"); |
| 99 users_pref->AppendIfNotPresent(new base::StringValue(user_id)); | 102 users_pref->AppendIfNotPresent(new base::StringValue(user_id)); |
| 100 chromeos::StartupUtils::MarkOobeCompleted(); | 103 chromeos::StartupUtils::MarkOobeCompleted(); |
| 101 } | 104 } |
| 102 | 105 |
| 103 void LoginUser(const std::string& user_id) { | 106 void LoginUser(const std::string& user_id) { |
| 104 chromeos::test::UserSessionManagerTestApi session_manager_test_api( | 107 chromeos::test::UserSessionManagerTestApi session_manager_test_api( |
| 105 chromeos::UserSessionManager::GetInstance()); | 108 chromeos::UserSessionManager::GetInstance()); |
| 106 session_manager_test_api.SetShouldObtainTokenHandleInTests(false); | 109 session_manager_test_api.SetShouldObtainTokenHandleInTests(false); |
| 107 | 110 |
| 108 chromeos::UserContext user_context(AccountId::FromUserEmail(user_id)); | 111 chromeos::UserContext user_context( |
| 109 user_context.SetGaiaID("gaia-id-" + user_id); | 112 AccountId::FromUserEmailGaiaId(user_id, "gaia-id-" + user_id)); |
| 110 user_context.SetKey(chromeos::Key("password")); | 113 user_context.SetKey(chromeos::Key("password")); |
| 111 if (user_id == kEnterpriseUser) { | 114 if (user_id == kEnterpriseUser) { |
| 112 user_context.SetRefreshToken(kFakeRefreshToken); | 115 user_context.SetRefreshToken(kFakeRefreshToken); |
| 113 } | 116 } |
| 114 chromeos::ExistingUserController* controller = | 117 chromeos::ExistingUserController* controller = |
| 115 chromeos::ExistingUserController::current_controller(); | 118 chromeos::ExistingUserController::current_controller(); |
| 116 CHECK(controller); | 119 CHECK(controller); |
| 117 content::WindowedNotificationObserver observer( | 120 content::WindowedNotificationObserver observer( |
| 118 chrome::NOTIFICATION_SESSION_STARTED, | 121 chrome::NOTIFICATION_SESSION_STARTED, |
| 119 content::NotificationService::AllSources()); | 122 content::NotificationService::AllSources()); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 131 } | 134 } |
| 132 | 135 |
| 133 void AppendCommandLineSwitchesForLoginManager(base::CommandLine* command_line) { | 136 void AppendCommandLineSwitchesForLoginManager(base::CommandLine* command_line) { |
| 134 command_line->AppendSwitch(chromeos::switches::kLoginManager); | 137 command_line->AppendSwitch(chromeos::switches::kLoginManager); |
| 135 command_line->AppendSwitch(chromeos::switches::kForceLoginManagerInTests); | 138 command_line->AppendSwitch(chromeos::switches::kForceLoginManagerInTests); |
| 136 } | 139 } |
| 137 | 140 |
| 138 } // namespace affiliation_test_helper | 141 } // namespace affiliation_test_helper |
| 139 | 142 |
| 140 } // namespace policy | 143 } // namespace policy |
| OLD | NEW |