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 | 4 |
5 #include "chrome/utility/importer/edge_database_reader_win.h" | 5 #include "chrome/utility/importer/edge_database_reader_win.h" |
6 | 6 |
7 #include <windows.h> | 7 #include <windows.h> |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 #include <string.h> | 10 #include <string.h> |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
127 | 127 |
128 TEST_F(EdgeDatabaseReaderTest, OpenTableDatabaseTest) { | 128 TEST_F(EdgeDatabaseReaderTest, OpenTableDatabaseTest) { |
129 // Only verified to work with ESE library on Windows 7 and above. | 129 // Only verified to work with ESE library on Windows 7 and above. |
130 if (base::win::GetVersion() < base::win::VERSION_WIN7) | 130 if (base::win::GetVersion() < base::win::VERSION_WIN7) |
131 return; | 131 return; |
132 | 132 |
133 base::FilePath database_path; | 133 base::FilePath database_path; |
134 ASSERT_TRUE(CopyTestDatabase(L"testdata.edb", &database_path)); | 134 ASSERT_TRUE(CopyTestDatabase(L"testdata.edb", &database_path)); |
135 EdgeDatabaseReader reader; | 135 EdgeDatabaseReader reader; |
136 EXPECT_TRUE(reader.OpenDatabase(database_path.value())); | 136 EXPECT_TRUE(reader.OpenDatabase(database_path.value())); |
137 scoped_ptr<EdgeDatabaseTableEnumerator> table_enum = | 137 std::unique_ptr<EdgeDatabaseTableEnumerator> table_enum = |
138 reader.OpenTableEnumerator(L"TestTable"); | 138 reader.OpenTableEnumerator(L"TestTable"); |
139 EXPECT_NE(nullptr, table_enum); | 139 EXPECT_NE(nullptr, table_enum); |
140 } | 140 } |
141 | 141 |
142 TEST_F(EdgeDatabaseReaderTest, InvalidTableDatabaseTest) { | 142 TEST_F(EdgeDatabaseReaderTest, InvalidTableDatabaseTest) { |
143 // Only verified to work with ESE library on Windows 7 and above. | 143 // Only verified to work with ESE library on Windows 7 and above. |
144 if (base::win::GetVersion() < base::win::VERSION_WIN7) | 144 if (base::win::GetVersion() < base::win::VERSION_WIN7) |
145 return; | 145 return; |
146 | 146 |
147 base::FilePath database_path; | 147 base::FilePath database_path; |
148 ASSERT_TRUE(CopyTestDatabase(L"testdata.edb", &database_path)); | 148 ASSERT_TRUE(CopyTestDatabase(L"testdata.edb", &database_path)); |
149 EdgeDatabaseReader reader; | 149 EdgeDatabaseReader reader; |
150 EXPECT_TRUE(reader.OpenDatabase(database_path.value())); | 150 EXPECT_TRUE(reader.OpenDatabase(database_path.value())); |
151 scoped_ptr<EdgeDatabaseTableEnumerator> table_enum = | 151 std::unique_ptr<EdgeDatabaseTableEnumerator> table_enum = |
152 reader.OpenTableEnumerator(L"NotARealTableName"); | 152 reader.OpenTableEnumerator(L"NotARealTableName"); |
153 EXPECT_EQ(nullptr, table_enum); | 153 EXPECT_EQ(nullptr, table_enum); |
154 } | 154 } |
155 | 155 |
156 TEST_F(EdgeDatabaseReaderTest, NotOpenDatabaseTest) { | 156 TEST_F(EdgeDatabaseReaderTest, NotOpenDatabaseTest) { |
157 // Only verified to work with ESE library on Windows 7 and above. | 157 // Only verified to work with ESE library on Windows 7 and above. |
158 if (base::win::GetVersion() < base::win::VERSION_WIN7) | 158 if (base::win::GetVersion() < base::win::VERSION_WIN7) |
159 return; | 159 return; |
160 | 160 |
161 EdgeDatabaseReader reader; | 161 EdgeDatabaseReader reader; |
162 scoped_ptr<EdgeDatabaseTableEnumerator> table_enum = | 162 std::unique_ptr<EdgeDatabaseTableEnumerator> table_enum = |
163 reader.OpenTableEnumerator(L"TestTable"); | 163 reader.OpenTableEnumerator(L"TestTable"); |
164 EXPECT_EQ(nullptr, table_enum); | 164 EXPECT_EQ(nullptr, table_enum); |
165 EXPECT_EQ(JET_errDatabaseNotFound, reader.last_error()); | 165 EXPECT_EQ(JET_errDatabaseNotFound, reader.last_error()); |
166 } | 166 } |
167 | 167 |
168 TEST_F(EdgeDatabaseReaderTest, AlreadyOpenDatabaseTest) { | 168 TEST_F(EdgeDatabaseReaderTest, AlreadyOpenDatabaseTest) { |
169 // Only verified to work with ESE library on Windows 7 and above. | 169 // Only verified to work with ESE library on Windows 7 and above. |
170 if (base::win::GetVersion() < base::win::VERSION_WIN7) | 170 if (base::win::GetVersion() < base::win::VERSION_WIN7) |
171 return; | 171 return; |
172 | 172 |
173 base::FilePath database_path; | 173 base::FilePath database_path; |
174 ASSERT_TRUE(CopyTestDatabase(L"testdata.edb", &database_path)); | 174 ASSERT_TRUE(CopyTestDatabase(L"testdata.edb", &database_path)); |
175 EdgeDatabaseReader reader; | 175 EdgeDatabaseReader reader; |
176 EXPECT_TRUE(reader.OpenDatabase(database_path.value())); | 176 EXPECT_TRUE(reader.OpenDatabase(database_path.value())); |
177 EXPECT_FALSE(reader.OpenDatabase(database_path.value())); | 177 EXPECT_FALSE(reader.OpenDatabase(database_path.value())); |
178 EXPECT_EQ(JET_errOneDatabasePerSession, reader.last_error()); | 178 EXPECT_EQ(JET_errOneDatabasePerSession, reader.last_error()); |
179 } | 179 } |
180 | 180 |
181 TEST_F(EdgeDatabaseReaderTest, OpenTableAndReadDataDatabaseTest) { | 181 TEST_F(EdgeDatabaseReaderTest, OpenTableAndReadDataDatabaseTest) { |
182 // Only verified to work with ESE library on Windows 7 and above. | 182 // Only verified to work with ESE library on Windows 7 and above. |
183 if (base::win::GetVersion() < base::win::VERSION_WIN7) | 183 if (base::win::GetVersion() < base::win::VERSION_WIN7) |
184 return; | 184 return; |
185 | 185 |
186 base::FilePath database_path; | 186 base::FilePath database_path; |
187 ASSERT_TRUE(CopyTestDatabase(L"testdata.edb", &database_path)); | 187 ASSERT_TRUE(CopyTestDatabase(L"testdata.edb", &database_path)); |
188 EdgeDatabaseReader reader; | 188 EdgeDatabaseReader reader; |
189 EXPECT_TRUE(reader.OpenDatabase(database_path.value())); | 189 EXPECT_TRUE(reader.OpenDatabase(database_path.value())); |
190 scoped_ptr<EdgeDatabaseTableEnumerator> table_enum = | 190 std::unique_ptr<EdgeDatabaseTableEnumerator> table_enum = |
191 reader.OpenTableEnumerator(L"TestTable"); | 191 reader.OpenTableEnumerator(L"TestTable"); |
192 EXPECT_NE(nullptr, table_enum); | 192 EXPECT_NE(nullptr, table_enum); |
193 int row_count = 0; | 193 int row_count = 0; |
194 do { | 194 do { |
195 int32_t int_col_value = 0; | 195 int32_t int_col_value = 0; |
196 EXPECT_TRUE(table_enum->RetrieveColumn(L"IntCol", &int_col_value)); | 196 EXPECT_TRUE(table_enum->RetrieveColumn(L"IntCol", &int_col_value)); |
197 EXPECT_EQ(-row_count, int_col_value); | 197 EXPECT_EQ(-row_count, int_col_value); |
198 | 198 |
199 uint32_t uint_col_value = 0; | 199 uint32_t uint_col_value = 0; |
200 EXPECT_TRUE(table_enum->RetrieveColumn(L"UIntCol", &uint_col_value)); | 200 EXPECT_TRUE(table_enum->RetrieveColumn(L"UIntCol", &uint_col_value)); |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
243 | 243 |
244 TEST_F(EdgeDatabaseReaderTest, CheckEnumResetDatabaseTest) { | 244 TEST_F(EdgeDatabaseReaderTest, CheckEnumResetDatabaseTest) { |
245 // Only verified to work with ESE library on Windows 7 and above. | 245 // Only verified to work with ESE library on Windows 7 and above. |
246 if (base::win::GetVersion() < base::win::VERSION_WIN7) | 246 if (base::win::GetVersion() < base::win::VERSION_WIN7) |
247 return; | 247 return; |
248 | 248 |
249 base::FilePath database_path; | 249 base::FilePath database_path; |
250 ASSERT_TRUE(CopyTestDatabase(L"testdata.edb", &database_path)); | 250 ASSERT_TRUE(CopyTestDatabase(L"testdata.edb", &database_path)); |
251 EdgeDatabaseReader reader; | 251 EdgeDatabaseReader reader; |
252 EXPECT_TRUE(reader.OpenDatabase(database_path.value())); | 252 EXPECT_TRUE(reader.OpenDatabase(database_path.value())); |
253 scoped_ptr<EdgeDatabaseTableEnumerator> table_enum = | 253 std::unique_ptr<EdgeDatabaseTableEnumerator> table_enum = |
254 reader.OpenTableEnumerator(L"TestTable"); | 254 reader.OpenTableEnumerator(L"TestTable"); |
255 EXPECT_NE(nullptr, table_enum); | 255 EXPECT_NE(nullptr, table_enum); |
256 int row_count = 0; | 256 int row_count = 0; |
257 do { | 257 do { |
258 row_count++; | 258 row_count++; |
259 } while (table_enum->Next()); | 259 } while (table_enum->Next()); |
260 EXPECT_NE(0, row_count); | 260 EXPECT_NE(0, row_count); |
261 EXPECT_TRUE(table_enum->Reset()); | 261 EXPECT_TRUE(table_enum->Reset()); |
262 do { | 262 do { |
263 row_count--; | 263 row_count--; |
264 } while (table_enum->Next()); | 264 } while (table_enum->Next()); |
265 EXPECT_EQ(0, row_count); | 265 EXPECT_EQ(0, row_count); |
266 } | 266 } |
267 | 267 |
268 TEST_F(EdgeDatabaseReaderTest, InvalidColumnDatabaseTest) { | 268 TEST_F(EdgeDatabaseReaderTest, InvalidColumnDatabaseTest) { |
269 // Only verified to work with ESE library on Windows 7 and above. | 269 // Only verified to work with ESE library on Windows 7 and above. |
270 if (base::win::GetVersion() < base::win::VERSION_WIN7) | 270 if (base::win::GetVersion() < base::win::VERSION_WIN7) |
271 return; | 271 return; |
272 | 272 |
273 base::FilePath database_path; | 273 base::FilePath database_path; |
274 ASSERT_TRUE(CopyTestDatabase(L"testdata.edb", &database_path)); | 274 ASSERT_TRUE(CopyTestDatabase(L"testdata.edb", &database_path)); |
275 EdgeDatabaseReader reader; | 275 EdgeDatabaseReader reader; |
276 EXPECT_TRUE(reader.OpenDatabase(database_path.value())); | 276 EXPECT_TRUE(reader.OpenDatabase(database_path.value())); |
277 scoped_ptr<EdgeDatabaseTableEnumerator> table_enum = | 277 std::unique_ptr<EdgeDatabaseTableEnumerator> table_enum = |
278 reader.OpenTableEnumerator(L"TestTable"); | 278 reader.OpenTableEnumerator(L"TestTable"); |
279 EXPECT_NE(nullptr, table_enum); | 279 EXPECT_NE(nullptr, table_enum); |
280 int32_t int_col_value = 0; | 280 int32_t int_col_value = 0; |
281 EXPECT_FALSE(table_enum->RetrieveColumn(L"NotARealNameCol", &int_col_value)); | 281 EXPECT_FALSE(table_enum->RetrieveColumn(L"NotARealNameCol", &int_col_value)); |
282 EXPECT_EQ(JET_errColumnNotFound, table_enum->last_error()); | 282 EXPECT_EQ(JET_errColumnNotFound, table_enum->last_error()); |
283 } | 283 } |
284 | 284 |
285 TEST_F(EdgeDatabaseReaderTest, NoColumnDatabaseTest) { | 285 TEST_F(EdgeDatabaseReaderTest, NoColumnDatabaseTest) { |
286 // Only verified to work with ESE library on Windows 7 and above. | 286 // Only verified to work with ESE library on Windows 7 and above. |
287 if (base::win::GetVersion() < base::win::VERSION_WIN7) | 287 if (base::win::GetVersion() < base::win::VERSION_WIN7) |
288 return; | 288 return; |
289 | 289 |
290 base::FilePath database_path; | 290 base::FilePath database_path; |
291 ASSERT_TRUE(CopyTestDatabase(L"testdata.edb", &database_path)); | 291 ASSERT_TRUE(CopyTestDatabase(L"testdata.edb", &database_path)); |
292 EdgeDatabaseReader reader; | 292 EdgeDatabaseReader reader; |
293 EXPECT_TRUE(reader.OpenDatabase(database_path.value())); | 293 EXPECT_TRUE(reader.OpenDatabase(database_path.value())); |
294 scoped_ptr<EdgeDatabaseTableEnumerator> table_enum = | 294 std::unique_ptr<EdgeDatabaseTableEnumerator> table_enum = |
295 reader.OpenTableEnumerator(L"NoColsTable"); | 295 reader.OpenTableEnumerator(L"NoColsTable"); |
296 EXPECT_NE(nullptr, table_enum); | 296 EXPECT_NE(nullptr, table_enum); |
297 int32_t int_col_value = 0; | 297 int32_t int_col_value = 0; |
298 EXPECT_FALSE(table_enum->RetrieveColumn(L"IntCol", &int_col_value)); | 298 EXPECT_FALSE(table_enum->RetrieveColumn(L"IntCol", &int_col_value)); |
299 EXPECT_EQ(JET_errColumnNotFound, table_enum->last_error()); | 299 EXPECT_EQ(JET_errColumnNotFound, table_enum->last_error()); |
300 } | 300 } |
301 | 301 |
302 TEST_F(EdgeDatabaseReaderTest, EmptyTableDatabaseTest) { | 302 TEST_F(EdgeDatabaseReaderTest, EmptyTableDatabaseTest) { |
303 // Only verified to work with ESE library on Windows 7 and above. | 303 // Only verified to work with ESE library on Windows 7 and above. |
304 if (base::win::GetVersion() < base::win::VERSION_WIN7) | 304 if (base::win::GetVersion() < base::win::VERSION_WIN7) |
305 return; | 305 return; |
306 | 306 |
307 base::FilePath database_path; | 307 base::FilePath database_path; |
308 ASSERT_TRUE(CopyTestDatabase(L"testdata.edb", &database_path)); | 308 ASSERT_TRUE(CopyTestDatabase(L"testdata.edb", &database_path)); |
309 EdgeDatabaseReader reader; | 309 EdgeDatabaseReader reader; |
310 EXPECT_TRUE(reader.OpenDatabase(database_path.value())); | 310 EXPECT_TRUE(reader.OpenDatabase(database_path.value())); |
311 scoped_ptr<EdgeDatabaseTableEnumerator> table_enum = | 311 std::unique_ptr<EdgeDatabaseTableEnumerator> table_enum = |
312 reader.OpenTableEnumerator(L"EmptyTable"); | 312 reader.OpenTableEnumerator(L"EmptyTable"); |
313 EXPECT_NE(nullptr, table_enum); | 313 EXPECT_NE(nullptr, table_enum); |
314 int32_t int_col_value = 0; | 314 int32_t int_col_value = 0; |
315 EXPECT_FALSE(table_enum->RetrieveColumn(L"IntCol", &int_col_value)); | 315 EXPECT_FALSE(table_enum->RetrieveColumn(L"IntCol", &int_col_value)); |
316 EXPECT_NE(JET_errColumnNotFound, table_enum->last_error()); | 316 EXPECT_NE(JET_errColumnNotFound, table_enum->last_error()); |
317 EXPECT_FALSE(table_enum->Reset()); | 317 EXPECT_FALSE(table_enum->Reset()); |
318 EXPECT_FALSE(table_enum->Next()); | 318 EXPECT_FALSE(table_enum->Next()); |
319 } | 319 } |
320 | 320 |
321 TEST_F(EdgeDatabaseReaderTest, UnicodeStringsDatabaseTest) { | 321 TEST_F(EdgeDatabaseReaderTest, UnicodeStringsDatabaseTest) { |
322 const char* utf8_strings[] = { | 322 const char* utf8_strings[] = { |
323 "\xE3\x81\x93\xE3\x81\xAB\xE3\x81\xA1\xE3\x81\xAF", | 323 "\xE3\x81\x93\xE3\x81\xAB\xE3\x81\xA1\xE3\x81\xAF", |
324 "\xE4\xBD\xA0\xE5\xA5\xBD", | 324 "\xE4\xBD\xA0\xE5\xA5\xBD", |
325 "\xD0\x97\xD0\xB4\xD1\x80\xD0\xB0\xD0\xB2\xD1\x81\xD1\x82\xD0\xB2\xD1\x83" | 325 "\xD0\x97\xD0\xB4\xD1\x80\xD0\xB0\xD0\xB2\xD1\x81\xD1\x82\xD0\xB2\xD1\x83" |
326 "\xD0\xB9\xD1\x82\xD0\xB5", | 326 "\xD0\xB9\xD1\x82\xD0\xB5", |
327 "\x48\x65\x6C\x6C\x6F", | 327 "\x48\x65\x6C\x6C\x6F", |
328 "\xEC\x95\x88\xEB\x85\x95\xED\x95\x98\xEC\x84\xB8\xEC\x9A\x94", | 328 "\xEC\x95\x88\xEB\x85\x95\xED\x95\x98\xEC\x84\xB8\xEC\x9A\x94", |
329 }; | 329 }; |
330 // Only verified to work with ESE library on Windows 7 and above. | 330 // Only verified to work with ESE library on Windows 7 and above. |
331 if (base::win::GetVersion() < base::win::VERSION_WIN7) | 331 if (base::win::GetVersion() < base::win::VERSION_WIN7) |
332 return; | 332 return; |
333 | 333 |
334 base::FilePath database_path; | 334 base::FilePath database_path; |
335 ASSERT_TRUE(CopyTestDatabase(L"testdata.edb", &database_path)); | 335 ASSERT_TRUE(CopyTestDatabase(L"testdata.edb", &database_path)); |
336 EdgeDatabaseReader reader; | 336 EdgeDatabaseReader reader; |
337 EXPECT_TRUE(reader.OpenDatabase(database_path.value())); | 337 EXPECT_TRUE(reader.OpenDatabase(database_path.value())); |
338 scoped_ptr<EdgeDatabaseTableEnumerator> table_enum = | 338 std::unique_ptr<EdgeDatabaseTableEnumerator> table_enum = |
339 reader.OpenTableEnumerator(L"UnicodeTable"); | 339 reader.OpenTableEnumerator(L"UnicodeTable"); |
340 EXPECT_NE(nullptr, table_enum); | 340 EXPECT_NE(nullptr, table_enum); |
341 size_t utf8_strings_count = arraysize(utf8_strings); | 341 size_t utf8_strings_count = arraysize(utf8_strings); |
342 for (size_t row_count = 0; row_count < utf8_strings_count; ++row_count) { | 342 for (size_t row_count = 0; row_count < utf8_strings_count; ++row_count) { |
343 std::wstring row_string = base::UTF8ToWide(utf8_strings[row_count]); | 343 std::wstring row_string = base::UTF8ToWide(utf8_strings[row_count]); |
344 base::string16 str_col_value; | 344 base::string16 str_col_value; |
345 EXPECT_TRUE(table_enum->RetrieveColumn(L"StrCol", &str_col_value)); | 345 EXPECT_TRUE(table_enum->RetrieveColumn(L"StrCol", &str_col_value)); |
346 EXPECT_EQ(row_string, str_col_value); | 346 EXPECT_EQ(row_string, str_col_value); |
347 if (row_count < utf8_strings_count - 1) | 347 if (row_count < utf8_strings_count - 1) |
348 EXPECT_TRUE(table_enum->Next()); | 348 EXPECT_TRUE(table_enum->Next()); |
349 else | 349 else |
350 EXPECT_FALSE(table_enum->Next()); | 350 EXPECT_FALSE(table_enum->Next()); |
351 } | 351 } |
352 } | 352 } |
353 | 353 |
354 TEST_F(EdgeDatabaseReaderTest, NonUnicodeStringsDatabaseTest) { | 354 TEST_F(EdgeDatabaseReaderTest, NonUnicodeStringsDatabaseTest) { |
355 // Only verified to work with ESE library on Windows 7 and above. | 355 // Only verified to work with ESE library on Windows 7 and above. |
356 if (base::win::GetVersion() < base::win::VERSION_WIN7) | 356 if (base::win::GetVersion() < base::win::VERSION_WIN7) |
357 return; | 357 return; |
358 | 358 |
359 base::FilePath database_path; | 359 base::FilePath database_path; |
360 ASSERT_TRUE(CopyTestDatabase(L"testdata.edb", &database_path)); | 360 ASSERT_TRUE(CopyTestDatabase(L"testdata.edb", &database_path)); |
361 EdgeDatabaseReader reader; | 361 EdgeDatabaseReader reader; |
362 EXPECT_TRUE(reader.OpenDatabase(database_path.value())); | 362 EXPECT_TRUE(reader.OpenDatabase(database_path.value())); |
363 scoped_ptr<EdgeDatabaseTableEnumerator> table_enum = | 363 std::unique_ptr<EdgeDatabaseTableEnumerator> table_enum = |
364 reader.OpenTableEnumerator(L"NonUnicodeTable"); | 364 reader.OpenTableEnumerator(L"NonUnicodeTable"); |
365 EXPECT_NE(nullptr, table_enum); | 365 EXPECT_NE(nullptr, table_enum); |
366 base::string16 str_col_value; | 366 base::string16 str_col_value; |
367 EXPECT_FALSE(table_enum->RetrieveColumn(L"StrCol", &str_col_value)); | 367 EXPECT_FALSE(table_enum->RetrieveColumn(L"StrCol", &str_col_value)); |
368 EXPECT_EQ(JET_errInvalidColumnType, table_enum->last_error()); | 368 EXPECT_EQ(JET_errInvalidColumnType, table_enum->last_error()); |
369 } | 369 } |
370 | 370 |
371 TEST_F(EdgeDatabaseReaderTest, CheckNullColumnDatabaseTest) { | 371 TEST_F(EdgeDatabaseReaderTest, CheckNullColumnDatabaseTest) { |
372 // Only verified to work with ESE library on Windows 7 and above. | 372 // Only verified to work with ESE library on Windows 7 and above. |
373 if (base::win::GetVersion() < base::win::VERSION_WIN7) | 373 if (base::win::GetVersion() < base::win::VERSION_WIN7) |
374 return; | 374 return; |
375 | 375 |
376 base::FilePath database_path; | 376 base::FilePath database_path; |
377 ASSERT_TRUE(CopyTestDatabase(L"testdata.edb", &database_path)); | 377 ASSERT_TRUE(CopyTestDatabase(L"testdata.edb", &database_path)); |
378 EdgeDatabaseReader reader; | 378 EdgeDatabaseReader reader; |
379 EXPECT_TRUE(reader.OpenDatabase(database_path.value())); | 379 EXPECT_TRUE(reader.OpenDatabase(database_path.value())); |
380 scoped_ptr<EdgeDatabaseTableEnumerator> table_enum = | 380 std::unique_ptr<EdgeDatabaseTableEnumerator> table_enum = |
381 reader.OpenTableEnumerator(L"NullTable"); | 381 reader.OpenTableEnumerator(L"NullTable"); |
382 EXPECT_NE(nullptr, table_enum); | 382 EXPECT_NE(nullptr, table_enum); |
383 | 383 |
384 // We expect to successfully open a column value but get the default value | 384 // We expect to successfully open a column value but get the default value |
385 // back. | 385 // back. |
386 int32_t int_col_value = 1; | 386 int32_t int_col_value = 1; |
387 EXPECT_TRUE(table_enum->RetrieveColumn(L"IntCol", &int_col_value)); | 387 EXPECT_TRUE(table_enum->RetrieveColumn(L"IntCol", &int_col_value)); |
388 EXPECT_EQ(0, int_col_value); | 388 EXPECT_EQ(0, int_col_value); |
389 | 389 |
390 uint32_t uint_col_value = 1; | 390 uint32_t uint_col_value = 1; |
(...skipping 30 matching lines...) Expand all Loading... |
421 | 421 |
422 TEST_F(EdgeDatabaseReaderTest, CheckInvalidColumnTypeDatabaseTest) { | 422 TEST_F(EdgeDatabaseReaderTest, CheckInvalidColumnTypeDatabaseTest) { |
423 // Only verified to work with ESE library on Windows 7 and above. | 423 // Only verified to work with ESE library on Windows 7 and above. |
424 if (base::win::GetVersion() < base::win::VERSION_WIN7) | 424 if (base::win::GetVersion() < base::win::VERSION_WIN7) |
425 return; | 425 return; |
426 | 426 |
427 base::FilePath database_path; | 427 base::FilePath database_path; |
428 ASSERT_TRUE(CopyTestDatabase(L"testdata.edb", &database_path)); | 428 ASSERT_TRUE(CopyTestDatabase(L"testdata.edb", &database_path)); |
429 EdgeDatabaseReader reader; | 429 EdgeDatabaseReader reader; |
430 EXPECT_TRUE(reader.OpenDatabase(database_path.value())); | 430 EXPECT_TRUE(reader.OpenDatabase(database_path.value())); |
431 scoped_ptr<EdgeDatabaseTableEnumerator> table_enum = | 431 std::unique_ptr<EdgeDatabaseTableEnumerator> table_enum = |
432 reader.OpenTableEnumerator(L"TestTable"); | 432 reader.OpenTableEnumerator(L"TestTable"); |
433 EXPECT_NE(nullptr, table_enum); | 433 EXPECT_NE(nullptr, table_enum); |
434 | 434 |
435 uint32_t uint_col_value = 0; | 435 uint32_t uint_col_value = 0; |
436 EXPECT_FALSE(table_enum->RetrieveColumn(L"IntCol", &uint_col_value)); | 436 EXPECT_FALSE(table_enum->RetrieveColumn(L"IntCol", &uint_col_value)); |
437 EXPECT_EQ(JET_errInvalidColumnType, table_enum->last_error()); | 437 EXPECT_EQ(JET_errInvalidColumnType, table_enum->last_error()); |
438 // Check unsigned int with a signed int. | 438 // Check unsigned int with a signed int. |
439 int32_t int_col_value = 0; | 439 int32_t int_col_value = 0; |
440 EXPECT_FALSE(table_enum->RetrieveColumn(L"UIntCol", &int_col_value)); | 440 EXPECT_FALSE(table_enum->RetrieveColumn(L"UIntCol", &int_col_value)); |
441 EXPECT_EQ(JET_errInvalidColumnType, table_enum->last_error()); | 441 EXPECT_EQ(JET_errInvalidColumnType, table_enum->last_error()); |
442 EXPECT_FALSE(table_enum->RetrieveColumn(L"LongLongCol", &uint_col_value)); | 442 EXPECT_FALSE(table_enum->RetrieveColumn(L"LongLongCol", &uint_col_value)); |
443 EXPECT_EQ(JET_errInvalidColumnType, table_enum->last_error()); | 443 EXPECT_EQ(JET_errInvalidColumnType, table_enum->last_error()); |
444 EXPECT_FALSE(table_enum->RetrieveColumn(L"GuidCol", &uint_col_value)); | 444 EXPECT_FALSE(table_enum->RetrieveColumn(L"GuidCol", &uint_col_value)); |
445 EXPECT_EQ(JET_errInvalidColumnType, table_enum->last_error()); | 445 EXPECT_EQ(JET_errInvalidColumnType, table_enum->last_error()); |
446 EXPECT_FALSE(table_enum->RetrieveColumn(L"DateCol", &uint_col_value)); | 446 EXPECT_FALSE(table_enum->RetrieveColumn(L"DateCol", &uint_col_value)); |
447 EXPECT_EQ(JET_errInvalidColumnType, table_enum->last_error()); | 447 EXPECT_EQ(JET_errInvalidColumnType, table_enum->last_error()); |
448 EXPECT_FALSE(table_enum->RetrieveColumn(L"StrCol", &uint_col_value)); | 448 EXPECT_FALSE(table_enum->RetrieveColumn(L"StrCol", &uint_col_value)); |
449 EXPECT_EQ(JET_errInvalidColumnType, table_enum->last_error()); | 449 EXPECT_EQ(JET_errInvalidColumnType, table_enum->last_error()); |
450 EXPECT_FALSE(table_enum->RetrieveColumn(L"BoolCol", &uint_col_value)); | 450 EXPECT_FALSE(table_enum->RetrieveColumn(L"BoolCol", &uint_col_value)); |
451 EXPECT_EQ(JET_errInvalidColumnType, table_enum->last_error()); | 451 EXPECT_EQ(JET_errInvalidColumnType, table_enum->last_error()); |
452 } | 452 } |
OLD | NEW |