1dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// Use of this source code is governed by a BSD-style license that can be 3731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// found in the LICENSE file. 4731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 5731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "chrome/browser/autofill/autofill_ie_toolbar_import_win.h" 6731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 7731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "base/basictypes.h" 8731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "base/string16.h" 9731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "base/win/registry.h" 10731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "chrome/browser/autofill/autofill_profile.h" 11731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "chrome/browser/autofill/credit_card.h" 12731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "chrome/browser/autofill/field_types.h" 13731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "chrome/browser/sync/util/data_encryption.h" 14731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "testing/gtest/include/gtest/gtest.h" 15731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 16731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickusing base::win::RegKey; 17731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 18731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// Defined in autofill_ie_toolbar_import_win.cc. Not exposed in the header file. 19ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenbool ImportCurrentUserProfiles(std::vector<AutofillProfile>* profiles, 20731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick std::vector<CreditCard>* credit_cards); 21731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 22731df977c0511bca2206b5f333555b1205ff1f43Iain Merricknamespace { 23731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 24731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickconst wchar_t kUnitTestRegistrySubKey[] = L"SOFTWARE\\Chromium Unit Tests"; 25731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickconst wchar_t kUnitTestUserOverrideSubKey[] = 26731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick L"SOFTWARE\\Chromium Unit Tests\\HKCU Override"; 27731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 28731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickconst wchar_t* const kProfileKey = 29731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick L"Software\\Google\\Google Toolbar\\4.0\\Autofill\\Profiles"; 30731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickconst wchar_t* const kCreditCardKey = 31731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick L"Software\\Google\\Google Toolbar\\4.0\\Autofill\\Credit Cards"; 32731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickconst wchar_t* const kPasswordHashValue = L"password_hash"; 33731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickconst wchar_t* const kSaltValue = L"salt"; 34731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 35731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickstruct ValueDescription { 36731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick wchar_t const* const value_name; 37731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick wchar_t const* const value; 38731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick}; 39731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 40731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickValueDescription profile1[] = { 41731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick { L"name_first", L"John" }, 42731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick { L"name_middle", L"Herman" }, 43731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick { L"name_last", L"Doe" }, 44731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick { L"email", L"jdoe@test.com" }, 45731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick { L"company_name", L"Testcompany" }, 46731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick { L"phone_home_number", L"555-5555" }, 47731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick { L"phone_home_city_code", L"444" }, 48731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick { L"phone_home_country_code", L"1" }, 49731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick}; 50731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 51731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickValueDescription profile2[] = { 52731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick { L"name_first", L"Jane" }, 53731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick { L"name_last", L"Doe" }, 54731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick { L"email", L"janedoe@test.com" }, 55731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick { L"company_name", L"Testcompany" }, 56731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick { L"phone_fax_number", L"555-6666" }, 57731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick { L"phone_fax_city_code", L"777" }, 58731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick { L"phone_fax_country_code", L"2" }, 59731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick}; 60731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 61731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickValueDescription credit_card[] = { 62731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick { L"credit_card_name", L"Tommy Gun" }, 634a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch // "4111111111111111" encrypted: 644a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch { L"credit_card_number", L"\xE53F\x19AB\xC1BF\xC9EB\xECCC\x9BDA\x8515" 654a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch L"\xE14D\x6852\x80A8\x50A3\x4375\xFD9F\x1E07" 664a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch L"\x790E\x7336\xB773\xAF33\x93EA\xB846\xEC89" 674a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch L"\x265C\xD0E6\x4E23\xB75F\x7983" }, 68731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick { L"credit_card_exp_month", L"11" }, 69731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick { L"credit_card_exp_4_digit_year", L"2011" }, 70731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick}; 71731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 72731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickValueDescription empty_salt = { 73731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick L"salt", L"\x1\x2\x3\x4\x5\x6\x7\x8\x9\xA\xB\xC\xD\xE\xF\x10\x11\x12\x13\x14" 74731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick}; 75731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 76731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickValueDescription empty_password = { 77731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick L"password_hash", L"" 78731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick}; 79731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 80731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickValueDescription protected_salt = { 81731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick L"salt", L"\x4854\xB906\x9C7C\x50A6\x4376\xFD9D\x1E02" 82731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick}; 83731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 84731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickValueDescription protected_password = { 85731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick L"password_hash", L"\x18B7\xE586\x459B\x7457\xA066\x3842\x71DA" 86731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick}; 87731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 88731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickvoid EncryptAndWrite(RegKey* key, const ValueDescription* value) { 89731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick string data; 90731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick size_t data_size = (lstrlen(value->value) + 1) * sizeof(wchar_t); 91731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick data.resize(data_size); 92731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick memcpy(&data[0], value->value, data_size); 93731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 94731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick std::vector<uint8> encrypted_data = EncryptData(data); 9572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen EXPECT_EQ(ERROR_SUCCESS, key->WriteValue(value->value_name, 9672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen &encrypted_data[0], encrypted_data.size(), REG_BINARY)); 97731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick} 98731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 99731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickvoid CreateSubkey(RegKey* key, wchar_t const* subkey_name, 100731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick const ValueDescription* values, size_t values_size) { 101731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick RegKey subkey; 102731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick subkey.Create(key->Handle(), subkey_name, KEY_ALL_ACCESS); 103731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick EXPECT_TRUE(subkey.Valid()); 104731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick for (size_t i = 0; i < values_size; ++i) 105731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick EncryptAndWrite(&subkey, values + i); 106731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick} 107731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 108731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick} // namespace 109731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 110731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickclass AutofillIeToolbarImportTest : public testing::Test { 111731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick public: 112731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick AutofillIeToolbarImportTest(); 113731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 114731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // testing::Test method overrides: 115731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick virtual void SetUp(); 116731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick virtual void TearDown(); 117731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 118731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick private: 119731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick RegKey temp_hkcu_hive_key_; 120731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 121731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick DISALLOW_COPY_AND_ASSIGN(AutofillIeToolbarImportTest); 122731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick}; 123731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 124731df977c0511bca2206b5f333555b1205ff1f43Iain MerrickAutofillIeToolbarImportTest::AutofillIeToolbarImportTest() { 125731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick} 126731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 127731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickvoid AutofillIeToolbarImportTest::SetUp() { 128731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick temp_hkcu_hive_key_.Create(HKEY_CURRENT_USER, 129731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick kUnitTestUserOverrideSubKey, 130731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick KEY_ALL_ACCESS); 131731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick EXPECT_TRUE(temp_hkcu_hive_key_.Valid()); 132731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick EXPECT_EQ(ERROR_SUCCESS, RegOverridePredefKey(HKEY_CURRENT_USER, 133731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick temp_hkcu_hive_key_.Handle())); 134731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick} 135731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 136731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickvoid AutofillIeToolbarImportTest::TearDown() { 137731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick EXPECT_EQ(ERROR_SUCCESS, RegOverridePredefKey(HKEY_CURRENT_USER, NULL)); 138731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick temp_hkcu_hive_key_.Close(); 139731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick RegKey key(HKEY_CURRENT_USER, kUnitTestRegistrySubKey, KEY_ALL_ACCESS); 140731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick key.DeleteKey(L""); 141731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick} 142731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 143ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian MonsenTEST_F(AutofillIeToolbarImportTest, TestAutofillImport) { 144731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick RegKey profile_key; 145731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick profile_key.Create(HKEY_CURRENT_USER, kProfileKey, KEY_ALL_ACCESS); 146731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick EXPECT_TRUE(profile_key.Valid()); 147731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 148731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick CreateSubkey(&profile_key, L"0", profile1, arraysize(profile1)); 149731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick CreateSubkey(&profile_key, L"1", profile2, arraysize(profile2)); 150731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 151731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick RegKey cc_key; 152731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick cc_key.Create(HKEY_CURRENT_USER, kCreditCardKey, KEY_ALL_ACCESS); 153731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick EXPECT_TRUE(cc_key.Valid()); 154731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick CreateSubkey(&cc_key, L"0", credit_card, arraysize(credit_card)); 155731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick EncryptAndWrite(&cc_key, &empty_password); 156731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick EncryptAndWrite(&cc_key, &empty_salt); 157731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 158731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick profile_key.Close(); 159731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick cc_key.Close(); 160731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 161ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen std::vector<AutofillProfile> profiles; 162731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick std::vector<CreditCard> credit_cards; 163731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick EXPECT_TRUE(ImportCurrentUserProfiles(&profiles, &credit_cards)); 164731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick ASSERT_EQ(profiles.size(), 2); 165731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // The profiles are read in reverse order. 166ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_EQ(profiles[1].GetInfo(NAME_FIRST), profile1[0].value); 167ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_EQ(profiles[1].GetInfo(NAME_MIDDLE), profile1[1].value); 168ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_EQ(profiles[1].GetInfo(NAME_LAST), profile1[2].value); 169ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_EQ(profiles[1].GetInfo(EMAIL_ADDRESS), profile1[3].value); 170ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_EQ(profiles[1].GetInfo(COMPANY_NAME), profile1[4].value); 171ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_EQ(profiles[1].GetInfo(PHONE_HOME_COUNTRY_CODE), profile1[7].value); 172ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_EQ(profiles[1].GetInfo(PHONE_HOME_CITY_CODE), profile1[6].value); 173ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_EQ(profiles[1].GetInfo(PHONE_HOME_NUMBER), L"5555555"); 174ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_EQ(profiles[1].GetInfo(PHONE_HOME_WHOLE_NUMBER), L"14445555555"); 175ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 176ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_EQ(profiles[0].GetInfo(NAME_FIRST), profile2[0].value); 177ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_EQ(profiles[0].GetInfo(NAME_LAST), profile2[1].value); 178ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_EQ(profiles[0].GetInfo(EMAIL_ADDRESS), profile2[2].value); 179ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_EQ(profiles[0].GetInfo(COMPANY_NAME), profile2[3].value); 180ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_EQ(profiles[0].GetInfo(PHONE_FAX_COUNTRY_CODE), profile2[6].value); 181ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_EQ(profiles[0].GetInfo(PHONE_FAX_CITY_CODE), profile2[5].value); 182ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_EQ(profiles[0].GetInfo(PHONE_FAX_NUMBER), L"5556666"); 183ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_EQ(profiles[0].GetInfo(PHONE_FAX_WHOLE_NUMBER), L"27775556666"); 184513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch 185731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick ASSERT_EQ(credit_cards.size(), 1); 186ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_EQ(credit_cards[0].GetInfo(CREDIT_CARD_NAME), credit_card[0].value); 187ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_EQ(credit_cards[0].GetInfo(CREDIT_CARD_NUMBER), L"4111111111111111"); 188ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_EQ(credit_cards[0].GetInfo(CREDIT_CARD_EXP_MONTH), 189731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick credit_card[2].value); 190ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen EXPECT_EQ(credit_cards[0].GetInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR), 191731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick credit_card[3].value); 192731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 193731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // Mock password encrypted cc. 194731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick cc_key.Open(HKEY_CURRENT_USER, kCreditCardKey, KEY_ALL_ACCESS); 195731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick EXPECT_TRUE(cc_key.Valid()); 196731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick EncryptAndWrite(&cc_key, &protected_password); 197731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick EncryptAndWrite(&cc_key, &protected_salt); 198731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick cc_key.Close(); 199731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 200731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick profiles.clear(); 201731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick credit_cards.clear(); 202731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick EXPECT_TRUE(ImportCurrentUserProfiles(&profiles, &credit_cards)); 203731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // Profiles are not protected. 204731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick EXPECT_EQ(profiles.size(), 2); 205731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick // Credit cards are. 206731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick EXPECT_EQ(credit_cards.size(), 0); 207731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick} 208731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick 209