| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/ui/webui/signin/signin_supervised_user_import_handler.h
" | 5 #include "chrome/browser/ui/webui/signin/signin_supervised_user_import_handler.h
" |
| 6 | 6 |
| 7 #include "base/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
| 8 #include "base/time/time.h" | 8 #include "base/time/time.h" |
| 9 #include "chrome/browser/signin/fake_signin_manager_builder.h" | 9 #include "chrome/browser/signin/fake_signin_manager_builder.h" |
| 10 #include "chrome/browser/signin/signin_error_controller_factory.h" | 10 #include "chrome/browser/signin/signin_error_controller_factory.h" |
| (...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 168 // Stop Sync before signing out. | 168 // Stop Sync before signing out. |
| 169 SupervisedUserSyncService* sync_service_ = | 169 SupervisedUserSyncService* sync_service_ = |
| 170 SupervisedUserSyncServiceFactory::GetForProfile(profile()); | 170 SupervisedUserSyncServiceFactory::GetForProfile(profile()); |
| 171 sync_service_->StopSyncing(syncer::SUPERVISED_USERS); | 171 sync_service_->StopSyncing(syncer::SUPERVISED_USERS); |
| 172 | 172 |
| 173 // Sign out the user. | 173 // Sign out the user. |
| 174 signin_manager()->ForceSignOut(); | 174 signin_manager()->ForceSignOut(); |
| 175 | 175 |
| 176 // Test the JS -> C++ -> JS callback path. | 176 // Test the JS -> C++ -> JS callback path. |
| 177 base::ListValue list_args; | 177 base::ListValue list_args; |
| 178 list_args.Append(new base::StringValue(kTestCallbackId)); | 178 list_args.AppendString(kTestCallbackId); |
| 179 list_args.Append(new base::StringValue(profile()->GetPath().AsUTF16Unsafe())); | 179 list_args.AppendString(profile()->GetPath().AsUTF16Unsafe()); |
| 180 handler()->GetExistingSupervisedUsers(&list_args); | 180 handler()->GetExistingSupervisedUsers(&list_args); |
| 181 | 181 |
| 182 // Expect an error response. | 182 // Expect an error response. |
| 183 VerifyResponse(1U, kTestCallbackId, false); | 183 VerifyResponse(1U, kTestCallbackId, false); |
| 184 | 184 |
| 185 base::string16 expected_error_message = l10n_util::GetStringUTF16( | 185 base::string16 expected_error_message = l10n_util::GetStringUTF16( |
| 186 IDS_PROFILES_CREATE_CUSTODIAN_ACCOUNT_DETAILS_OUT_OF_DATE_ERROR); | 186 IDS_PROFILES_CREATE_CUSTODIAN_ACCOUNT_DETAILS_OUT_OF_DATE_ERROR); |
| 187 base::string16 error_message; | 187 base::string16 error_message; |
| 188 ASSERT_TRUE(web_ui()->call_data()[0]->arg3()->GetAsString(&error_message)); | 188 ASSERT_TRUE(web_ui()->call_data()[0]->arg3()->GetAsString(&error_message)); |
| 189 EXPECT_EQ(expected_error_message, error_message); | 189 EXPECT_EQ(expected_error_message, error_message); |
| 190 } | 190 } |
| 191 | 191 |
| 192 TEST_F(SigninSupervisedUserImportHandlerTest, AuthError) { | 192 TEST_F(SigninSupervisedUserImportHandlerTest, AuthError) { |
| 193 // Set Auth Error. | 193 // Set Auth Error. |
| 194 const GoogleServiceAuthError error( | 194 const GoogleServiceAuthError error( |
| 195 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS); | 195 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS); |
| 196 FakeAuthStatusProvider provider( | 196 FakeAuthStatusProvider provider( |
| 197 SigninErrorControllerFactory::GetForProfile(profile())); | 197 SigninErrorControllerFactory::GetForProfile(profile())); |
| 198 provider.SetAuthError(kTestGaiaId, error); | 198 provider.SetAuthError(kTestGaiaId, error); |
| 199 | 199 |
| 200 // Test the JS -> C++ -> JS callback path. | 200 // Test the JS -> C++ -> JS callback path. |
| 201 base::ListValue list_args; | 201 base::ListValue list_args; |
| 202 list_args.Append(new base::StringValue(kTestCallbackId)); | 202 list_args.AppendString(kTestCallbackId); |
| 203 list_args.Append(new base::StringValue(profile()->GetPath().AsUTF16Unsafe())); | 203 list_args.AppendString(profile()->GetPath().AsUTF16Unsafe()); |
| 204 handler()->GetExistingSupervisedUsers(&list_args); | 204 handler()->GetExistingSupervisedUsers(&list_args); |
| 205 | 205 |
| 206 // Expect an error response. | 206 // Expect an error response. |
| 207 VerifyResponse(1U, kTestCallbackId, false); | 207 VerifyResponse(1U, kTestCallbackId, false); |
| 208 | 208 |
| 209 base::string16 expected_error_message = l10n_util::GetStringUTF16( | 209 base::string16 expected_error_message = l10n_util::GetStringUTF16( |
| 210 IDS_PROFILES_CREATE_CUSTODIAN_ACCOUNT_DETAILS_OUT_OF_DATE_ERROR); | 210 IDS_PROFILES_CREATE_CUSTODIAN_ACCOUNT_DETAILS_OUT_OF_DATE_ERROR); |
| 211 base::string16 error_message; | 211 base::string16 error_message; |
| 212 ASSERT_TRUE(web_ui()->call_data()[0]->arg3()->GetAsString(&error_message)); | 212 ASSERT_TRUE(web_ui()->call_data()[0]->arg3()->GetAsString(&error_message)); |
| 213 EXPECT_EQ(expected_error_message, error_message); | 213 EXPECT_EQ(expected_error_message, error_message); |
| 214 } | 214 } |
| 215 | 215 |
| 216 TEST_F(SigninSupervisedUserImportHandlerTest, CustodianIsSupervised) { | 216 TEST_F(SigninSupervisedUserImportHandlerTest, CustodianIsSupervised) { |
| 217 // Build a supervised test profile. | 217 // Build a supervised test profile. |
| 218 TestingProfile* profile_ = profile_manager()->CreateTestingProfile( | 218 TestingProfile* profile_ = profile_manager()->CreateTestingProfile( |
| 219 "supervised-test-profile", | 219 "supervised-test-profile", |
| 220 std::unique_ptr<syncable_prefs::PrefServiceSyncable>(), | 220 std::unique_ptr<syncable_prefs::PrefServiceSyncable>(), |
| 221 base::UTF8ToUTF16("supervised-test-profile"), | 221 base::UTF8ToUTF16("supervised-test-profile"), |
| 222 0, | 222 0, |
| 223 "12345", // supervised_user_id | 223 "12345", // supervised_user_id |
| 224 TestingProfile::TestingFactories()); | 224 TestingProfile::TestingFactories()); |
| 225 | 225 |
| 226 // Test the JS -> C++ -> JS callback path. | 226 // Test the JS -> C++ -> JS callback path. |
| 227 base::ListValue list_args; | 227 base::ListValue list_args; |
| 228 list_args.Append(new base::StringValue(kTestCallbackId)); | 228 list_args.AppendString(kTestCallbackId); |
| 229 list_args.Append(new base::StringValue(profile_->GetPath().AsUTF16Unsafe())); | 229 list_args.AppendString(profile_->GetPath().AsUTF16Unsafe()); |
| 230 handler()->GetExistingSupervisedUsers(&list_args); | 230 handler()->GetExistingSupervisedUsers(&list_args); |
| 231 | 231 |
| 232 // Expect to do nothing. | 232 // Expect to do nothing. |
| 233 EXPECT_EQ(0U, web_ui()->call_data().size()); | 233 EXPECT_EQ(0U, web_ui()->call_data().size()); |
| 234 } | 234 } |
| 235 | 235 |
| 236 TEST_F(SigninSupervisedUserImportHandlerTest, SendExistingSupervisedUsers) { | 236 TEST_F(SigninSupervisedUserImportHandlerTest, SendExistingSupervisedUsers) { |
| 237 // Test the JS -> C++ -> JS callback path. | 237 // Test the JS -> C++ -> JS callback path. |
| 238 base::ListValue list_args; | 238 base::ListValue list_args; |
| 239 list_args.Append(new base::StringValue(kTestCallbackId)); | 239 list_args.AppendString(kTestCallbackId); |
| 240 list_args.Append(new base::StringValue(profile()->GetPath().AsUTF16Unsafe())); | 240 list_args.AppendString(profile()->GetPath().AsUTF16Unsafe()); |
| 241 handler()->GetExistingSupervisedUsers(&list_args); | 241 handler()->GetExistingSupervisedUsers(&list_args); |
| 242 | 242 |
| 243 // Expect a success response. | 243 // Expect a success response. |
| 244 VerifyResponse(1U, kTestCallbackId, true); | 244 VerifyResponse(1U, kTestCallbackId, true); |
| 245 | 245 |
| 246 const base::ListValue* supervised_users; | 246 const base::ListValue* supervised_users; |
| 247 ASSERT_TRUE(web_ui()->call_data()[0]->arg3()->GetAsList(&supervised_users)); | 247 ASSERT_TRUE(web_ui()->call_data()[0]->arg3()->GetAsList(&supervised_users)); |
| 248 EXPECT_EQ(1U, supervised_users->GetSize()); | 248 EXPECT_EQ(1U, supervised_users->GetSize()); |
| 249 | 249 |
| 250 const base::DictionaryValue* supervised_user; | 250 const base::DictionaryValue* supervised_user; |
| 251 ASSERT_TRUE(supervised_users->GetDictionary(0, &supervised_user)); | 251 ASSERT_TRUE(supervised_users->GetDictionary(0, &supervised_user)); |
| 252 std::string id; | 252 std::string id; |
| 253 ASSERT_TRUE(supervised_user->GetString("id", &id)); | 253 ASSERT_TRUE(supervised_user->GetString("id", &id)); |
| 254 EXPECT_EQ(kSupervisedUserId, id); | 254 EXPECT_EQ(kSupervisedUserId, id); |
| 255 std::string name; | 255 std::string name; |
| 256 ASSERT_TRUE(supervised_user->GetString("name", &name)); | 256 ASSERT_TRUE(supervised_user->GetString("name", &name)); |
| 257 EXPECT_EQ(kSupervisedUsername, name); | 257 EXPECT_EQ(kSupervisedUsername, name); |
| 258 std::string iconURL; | 258 std::string iconURL; |
| 259 ASSERT_TRUE(supervised_user->GetString("iconURL", &iconURL)); | 259 ASSERT_TRUE(supervised_user->GetString("iconURL", &iconURL)); |
| 260 EXPECT_EQ(kSupervisedUserAvatarUrl, iconURL); | 260 EXPECT_EQ(kSupervisedUserAvatarUrl, iconURL); |
| 261 bool onCurrentDevice; | 261 bool onCurrentDevice; |
| 262 ASSERT_TRUE(supervised_user->GetBoolean("onCurrentDevice", &onCurrentDevice)); | 262 ASSERT_TRUE(supervised_user->GetBoolean("onCurrentDevice", &onCurrentDevice)); |
| 263 ASSERT_FALSE(onCurrentDevice); | 263 ASSERT_FALSE(onCurrentDevice); |
| 264 } | 264 } |
| OLD | NEW |