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