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

Side by Side Diff: chrome/installer/util/set_reg_value_work_item_unittest.cc

Issue 8337006: base/win: small improvement to RegKey API. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: apply grt comments Created 9 years, 2 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 | « chrome/installer/util/install_util_unittest.cc ('k') | chrome_frame/chrome_tab.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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 <windows.h> 5 #include <windows.h>
6 6
7 #include "base/file_util.h" 7 #include "base/file_util.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/string_util.h" 9 #include "base/string_util.h"
10 #include "base/win/registry.h" 10 #include "base/win/registry.h"
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 DWORD read_dword; 68 DWORD read_dword;
69 EXPECT_EQ(ERROR_SUCCESS, key.ReadValue(name_str.c_str(), &read_out)); 69 EXPECT_EQ(ERROR_SUCCESS, key.ReadValue(name_str.c_str(), &read_out));
70 EXPECT_EQ(ERROR_SUCCESS, key.ReadValueDW(name_dword.c_str(), &read_dword)); 70 EXPECT_EQ(ERROR_SUCCESS, key.ReadValueDW(name_dword.c_str(), &read_dword));
71 EXPECT_EQ(read_out, data_str_1); 71 EXPECT_EQ(read_out, data_str_1);
72 EXPECT_EQ(read_dword, dword1); 72 EXPECT_EQ(read_dword, dword1);
73 73
74 work_item1->Rollback(); 74 work_item1->Rollback();
75 work_item2->Rollback(); 75 work_item2->Rollback();
76 76
77 // Rollback should delete the value. 77 // Rollback should delete the value.
78 EXPECT_FALSE(key.ValueExists(name_str.c_str())); 78 EXPECT_FALSE(key.HasValue(name_str.c_str()));
79 EXPECT_FALSE(key.ValueExists(name_dword.c_str())); 79 EXPECT_FALSE(key.HasValue(name_dword.c_str()));
80 } 80 }
81 81
82 // Write a new value with overwrite flag. The value should be set. 82 // Write a new value with overwrite flag. The value should be set.
83 TEST_F(SetRegValueWorkItemTest, WriteNewOverwrite) { 83 TEST_F(SetRegValueWorkItemTest, WriteNewOverwrite) {
84 RegKey key; 84 RegKey key;
85 85
86 std::wstring parent_key(test_root); 86 std::wstring parent_key(test_root);
87 file_util::AppendToPath(&parent_key, L"WriteNewOverwrite"); 87 file_util::AppendToPath(&parent_key, L"WriteNewOverwrite");
88 ASSERT_EQ(ERROR_SUCCESS, 88 ASSERT_EQ(ERROR_SUCCESS,
89 key.Create(HKEY_CURRENT_USER, parent_key.c_str(), KEY_READ)); 89 key.Create(HKEY_CURRENT_USER, parent_key.c_str(), KEY_READ));
(...skipping 16 matching lines...) Expand all
106 DWORD read_dword; 106 DWORD read_dword;
107 EXPECT_EQ(ERROR_SUCCESS, key.ReadValue(name_str.c_str(), &read_out)); 107 EXPECT_EQ(ERROR_SUCCESS, key.ReadValue(name_str.c_str(), &read_out));
108 EXPECT_EQ(ERROR_SUCCESS, key.ReadValueDW(name_dword.c_str(), &read_dword)); 108 EXPECT_EQ(ERROR_SUCCESS, key.ReadValueDW(name_dword.c_str(), &read_dword));
109 EXPECT_EQ(read_out, data_str_1); 109 EXPECT_EQ(read_out, data_str_1);
110 EXPECT_EQ(read_dword, dword1); 110 EXPECT_EQ(read_dword, dword1);
111 111
112 work_item1->Rollback(); 112 work_item1->Rollback();
113 work_item2->Rollback(); 113 work_item2->Rollback();
114 114
115 // Rollback should delete the value. 115 // Rollback should delete the value.
116 EXPECT_FALSE(key.ValueExists(name_str.c_str())); 116 EXPECT_FALSE(key.HasValue(name_str.c_str()));
117 EXPECT_FALSE(key.ValueExists(name_dword.c_str())); 117 EXPECT_FALSE(key.HasValue(name_dword.c_str()));
118 } 118 }
119 119
120 // Write to an existing value without overwrite flag. There should be 120 // Write to an existing value without overwrite flag. There should be
121 // no change. 121 // no change.
122 TEST_F(SetRegValueWorkItemTest, WriteExistingNonOverwrite) { 122 TEST_F(SetRegValueWorkItemTest, WriteExistingNonOverwrite) {
123 RegKey key; 123 RegKey key;
124 124
125 std::wstring parent_key(test_root); 125 std::wstring parent_key(test_root);
126 file_util::AppendToPath(&parent_key, L"WriteExistingNonOverwrite"); 126 file_util::AppendToPath(&parent_key, L"WriteExistingNonOverwrite");
127 ASSERT_EQ(ERROR_SUCCESS, 127 ASSERT_EQ(ERROR_SUCCESS,
128 key.Create(HKEY_CURRENT_USER, parent_key.c_str(), 128 key.Create(HKEY_CURRENT_USER, parent_key.c_str(),
129 KEY_READ | KEY_SET_VALUE)); 129 KEY_READ | KEY_SET_VALUE));
130 130
131 // First test REG_SZ value. 131 // First test REG_SZ value.
132 // Write data to the value we are going to set. 132 // Write data to the value we are going to set.
133 std::wstring name(L"name_str"); 133 std::wstring name(L"name_str");
134 ASSERT_EQ(ERROR_SUCCESS, key.WriteValue(name.c_str(), data_str_1)); 134 ASSERT_EQ(ERROR_SUCCESS, key.WriteValue(name.c_str(), data_str_1));
135 135
136 std::wstring data(data_str_2); 136 std::wstring data(data_str_2);
137 scoped_ptr<SetRegValueWorkItem> work_item( 137 scoped_ptr<SetRegValueWorkItem> work_item(
138 WorkItem::CreateSetRegValueWorkItem(HKEY_CURRENT_USER, parent_key, 138 WorkItem::CreateSetRegValueWorkItem(HKEY_CURRENT_USER, parent_key,
139 name, data, false)); 139 name, data, false));
140 EXPECT_TRUE(work_item->Do()); 140 EXPECT_TRUE(work_item->Do());
141 141
142 std::wstring read_out; 142 std::wstring read_out;
143 EXPECT_EQ(ERROR_SUCCESS, key.ReadValue(name.c_str(), &read_out)); 143 EXPECT_EQ(ERROR_SUCCESS, key.ReadValue(name.c_str(), &read_out));
144 EXPECT_EQ(0, read_out.compare(data_str_1)); 144 EXPECT_EQ(0, read_out.compare(data_str_1));
145 145
146 work_item->Rollback(); 146 work_item->Rollback();
147 EXPECT_TRUE(key.ValueExists(name.c_str())); 147 EXPECT_TRUE(key.HasValue(name.c_str()));
148 EXPECT_EQ(ERROR_SUCCESS, key.ReadValue(name.c_str(), &read_out)); 148 EXPECT_EQ(ERROR_SUCCESS, key.ReadValue(name.c_str(), &read_out));
149 EXPECT_EQ(read_out, data_str_1); 149 EXPECT_EQ(read_out, data_str_1);
150 150
151 // Now test REG_DWORD value. 151 // Now test REG_DWORD value.
152 // Write data to the value we are going to set. 152 // Write data to the value we are going to set.
153 name.assign(L"name_dword"); 153 name.assign(L"name_dword");
154 ASSERT_EQ(ERROR_SUCCESS, key.WriteValue(name.c_str(), dword1)); 154 ASSERT_EQ(ERROR_SUCCESS, key.WriteValue(name.c_str(), dword1));
155 work_item.reset(WorkItem::CreateSetRegValueWorkItem(HKEY_CURRENT_USER, 155 work_item.reset(WorkItem::CreateSetRegValueWorkItem(HKEY_CURRENT_USER,
156 parent_key, name, dword2, false)); 156 parent_key, name, dword2, false));
157 EXPECT_TRUE(work_item->Do()); 157 EXPECT_TRUE(work_item->Do());
158 158
159 DWORD read_dword; 159 DWORD read_dword;
160 EXPECT_EQ(ERROR_SUCCESS, key.ReadValueDW(name.c_str(), &read_dword)); 160 EXPECT_EQ(ERROR_SUCCESS, key.ReadValueDW(name.c_str(), &read_dword));
161 EXPECT_EQ(read_dword, dword1); 161 EXPECT_EQ(read_dword, dword1);
162 162
163 work_item->Rollback(); 163 work_item->Rollback();
164 EXPECT_TRUE(key.ValueExists(name.c_str())); 164 EXPECT_TRUE(key.HasValue(name.c_str()));
165 EXPECT_EQ(ERROR_SUCCESS, key.ReadValueDW(name.c_str(), &read_dword)); 165 EXPECT_EQ(ERROR_SUCCESS, key.ReadValueDW(name.c_str(), &read_dword));
166 EXPECT_EQ(read_dword, dword1); 166 EXPECT_EQ(read_dword, dword1);
167 } 167 }
168 168
169 // Write to an existing value with overwrite flag. The value should be 169 // Write to an existing value with overwrite flag. The value should be
170 // overwritten. 170 // overwritten.
171 TEST_F(SetRegValueWorkItemTest, WriteExistingOverwrite) { 171 TEST_F(SetRegValueWorkItemTest, WriteExistingOverwrite) {
172 RegKey key; 172 RegKey key;
173 173
174 std::wstring parent_key(test_root); 174 std::wstring parent_key(test_root);
(...skipping 25 matching lines...) Expand all
200 std::wstring read_out; 200 std::wstring read_out;
201 EXPECT_EQ(ERROR_SUCCESS, key.ReadValue(name.c_str(), &read_out)); 201 EXPECT_EQ(ERROR_SUCCESS, key.ReadValue(name.c_str(), &read_out));
202 EXPECT_EQ(0, read_out.compare(data_str_2)); 202 EXPECT_EQ(0, read_out.compare(data_str_2));
203 203
204 EXPECT_EQ(ERROR_SUCCESS, key.ReadValue(name_empty.c_str(), &read_out)); 204 EXPECT_EQ(ERROR_SUCCESS, key.ReadValue(name_empty.c_str(), &read_out));
205 EXPECT_EQ(0, read_out.compare(data_str_2)); 205 EXPECT_EQ(0, read_out.compare(data_str_2));
206 206
207 work_item1->Rollback(); 207 work_item1->Rollback();
208 work_item2->Rollback(); 208 work_item2->Rollback();
209 209
210 EXPECT_TRUE(key.ValueExists(name.c_str())); 210 EXPECT_TRUE(key.HasValue(name.c_str()));
211 EXPECT_EQ(ERROR_SUCCESS, key.ReadValue(name.c_str(), &read_out)); 211 EXPECT_EQ(ERROR_SUCCESS, key.ReadValue(name.c_str(), &read_out));
212 EXPECT_EQ(read_out, data_str_1); 212 EXPECT_EQ(read_out, data_str_1);
213 213
214 DWORD type = 0; 214 DWORD type = 0;
215 DWORD size = 0; 215 DWORD size = 0;
216 EXPECT_EQ(ERROR_SUCCESS, key.ReadValue(name_empty.c_str(), NULL, &size, 216 EXPECT_EQ(ERROR_SUCCESS, key.ReadValue(name_empty.c_str(), NULL, &size,
217 &type)); 217 &type));
218 EXPECT_EQ(REG_SZ, type); 218 EXPECT_EQ(REG_SZ, type);
219 EXPECT_EQ(0, size); 219 EXPECT_EQ(0, size);
220 220
221 // Now test REG_DWORD value. 221 // Now test REG_DWORD value.
222 // Write data to the value we are going to set. 222 // Write data to the value we are going to set.
223 name.assign(L"name_dword"); 223 name.assign(L"name_dword");
224 ASSERT_EQ(ERROR_SUCCESS, key.WriteValue(name.c_str(), dword1)); 224 ASSERT_EQ(ERROR_SUCCESS, key.WriteValue(name.c_str(), dword1));
225 scoped_ptr<SetRegValueWorkItem> work_item3( 225 scoped_ptr<SetRegValueWorkItem> work_item3(
226 WorkItem::CreateSetRegValueWorkItem(HKEY_CURRENT_USER, parent_key, name, 226 WorkItem::CreateSetRegValueWorkItem(HKEY_CURRENT_USER, parent_key, name,
227 dword2, true)); 227 dword2, true));
228 EXPECT_TRUE(work_item3->Do()); 228 EXPECT_TRUE(work_item3->Do());
229 229
230 DWORD read_dword; 230 DWORD read_dword;
231 EXPECT_EQ(ERROR_SUCCESS, key.ReadValueDW(name.c_str(), &read_dword)); 231 EXPECT_EQ(ERROR_SUCCESS, key.ReadValueDW(name.c_str(), &read_dword));
232 EXPECT_EQ(read_dword, dword2); 232 EXPECT_EQ(read_dword, dword2);
233 233
234 work_item3->Rollback(); 234 work_item3->Rollback();
235 EXPECT_TRUE(key.ValueExists(name.c_str())); 235 EXPECT_TRUE(key.HasValue(name.c_str()));
236 EXPECT_EQ(ERROR_SUCCESS, key.ReadValueDW(name.c_str(), &read_dword)); 236 EXPECT_EQ(ERROR_SUCCESS, key.ReadValueDW(name.c_str(), &read_dword));
237 EXPECT_EQ(read_dword, dword1); 237 EXPECT_EQ(read_dword, dword1);
238 } 238 }
239 239
240 // Write a value to a non-existing key. This should fail. 240 // Write a value to a non-existing key. This should fail.
241 TEST_F(SetRegValueWorkItemTest, WriteNonExistingKey) { 241 TEST_F(SetRegValueWorkItemTest, WriteNonExistingKey) {
242 RegKey key; 242 RegKey key;
243 243
244 std::wstring parent_key(test_root); 244 std::wstring parent_key(test_root);
245 file_util::AppendToPath(&parent_key, L"WriteNonExistingKey"); 245 file_util::AppendToPath(&parent_key, L"WriteNonExistingKey");
246 246
247 std::wstring name(L"name"); 247 std::wstring name(L"name");
248 std::wstring data(data_str_1); 248 std::wstring data(data_str_1);
249 scoped_ptr<SetRegValueWorkItem> work_item( 249 scoped_ptr<SetRegValueWorkItem> work_item(
250 WorkItem::CreateSetRegValueWorkItem(HKEY_CURRENT_USER, parent_key, 250 WorkItem::CreateSetRegValueWorkItem(HKEY_CURRENT_USER, parent_key,
251 name, data, false)); 251 name, data, false));
252 EXPECT_FALSE(work_item->Do()); 252 EXPECT_FALSE(work_item->Do());
253 253
254 work_item.reset(WorkItem::CreateSetRegValueWorkItem(HKEY_CURRENT_USER, 254 work_item.reset(WorkItem::CreateSetRegValueWorkItem(HKEY_CURRENT_USER,
255 parent_key, name, dword1, false)); 255 parent_key, name, dword1, false));
256 EXPECT_FALSE(work_item->Do()); 256 EXPECT_FALSE(work_item->Do());
257 } 257 }
OLDNEW
« no previous file with comments | « chrome/installer/util/install_util_unittest.cc ('k') | chrome_frame/chrome_tab.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698