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

Side by Side Diff: sync/syncable/syncable_unittest.cc

Issue 10844005: [Sync] Refactor GetEncryptedTypes usage. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Always trigger OnEncryptedTypesChanged on init Created 8 years, 4 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <string> 5 #include <string>
6 6
7 #include "base/compiler_specific.h" 7 #include "base/compiler_specific.h"
8 #include "base/file_path.h" 8 #include "base/file_path.h"
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/location.h" 10 #include "base/location.h"
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 ScopedTempDir temp_dir_; 99 ScopedTempDir temp_dir_;
100 NullDirectoryChangeDelegate delegate_; 100 NullDirectoryChangeDelegate delegate_;
101 FakeEncryptor encryptor_; 101 FakeEncryptor encryptor_;
102 TestUnrecoverableErrorHandler handler_; 102 TestUnrecoverableErrorHandler handler_;
103 FilePath db_path_; 103 FilePath db_path_;
104 }; 104 };
105 105
106 const char SyncableGeneralTest::kIndexTestName[] = "IndexTest"; 106 const char SyncableGeneralTest::kIndexTestName[] = "IndexTest";
107 107
108 TEST_F(SyncableGeneralTest, General) { 108 TEST_F(SyncableGeneralTest, General) {
109 Directory dir(&encryptor_, &handler_, NULL, 109 Directory dir(new InMemoryDirectoryBackingStore("SimpleTest"),
110 new InMemoryDirectoryBackingStore("SimpleTest")); 110 &handler_,
111 NULL,
112 NULL,
113 NULL);
114
111 ASSERT_EQ(OPENED, dir.Open( 115 ASSERT_EQ(OPENED, dir.Open(
112 "SimpleTest", &delegate_, NullTransactionObserver())); 116 "SimpleTest", &delegate_, NullTransactionObserver()));
113 117
114 int64 root_metahandle; 118 int64 root_metahandle;
115 { 119 {
116 ReadTransaction rtrans(FROM_HERE, &dir); 120 ReadTransaction rtrans(FROM_HERE, &dir);
117 Entry e(&rtrans, GET_BY_ID, rtrans.root_id()); 121 Entry e(&rtrans, GET_BY_ID, rtrans.root_id());
118 ASSERT_TRUE(e.good()); 122 ASSERT_TRUE(e.good());
119 root_metahandle = e.Get(META_HANDLE); 123 root_metahandle = e.Get(META_HANDLE);
120 } 124 }
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 MutableEntry e(&trans, GET_BY_HANDLE, written_metahandle); 204 MutableEntry e(&trans, GET_BY_HANDLE, written_metahandle);
201 e.Put(IS_DEL, true); 205 e.Put(IS_DEL, true);
202 206
203 EXPECT_EQ(0, CountEntriesWithName(&trans, trans.root_id(), name)); 207 EXPECT_EQ(0, CountEntriesWithName(&trans, trans.root_id(), name));
204 } 208 }
205 209
206 dir.SaveChanges(); 210 dir.SaveChanges();
207 } 211 }
208 212
209 TEST_F(SyncableGeneralTest, ChildrenOps) { 213 TEST_F(SyncableGeneralTest, ChildrenOps) {
210 Directory dir(&encryptor_, &handler_, NULL, 214 Directory dir(new InMemoryDirectoryBackingStore("SimpleTest"),
211 new InMemoryDirectoryBackingStore("SimpleTest")); 215 &handler_,
216 NULL,
217 NULL,
218 NULL);
212 ASSERT_EQ(OPENED, dir.Open( 219 ASSERT_EQ(OPENED, dir.Open(
213 "SimpleTest", &delegate_, NullTransactionObserver())); 220 "SimpleTest", &delegate_, NullTransactionObserver()));
214 221
215 int64 written_metahandle; 222 int64 written_metahandle;
216 const Id id = TestIdFactory::FromNumber(99); 223 const Id id = TestIdFactory::FromNumber(99);
217 std::string name = "Jeff"; 224 std::string name = "Jeff";
218 { 225 {
219 ReadTransaction rtrans(FROM_HERE, &dir); 226 ReadTransaction rtrans(FROM_HERE, &dir);
220 Entry e(&rtrans, GET_BY_ID, id); 227 Entry e(&rtrans, GET_BY_ID, id);
221 ASSERT_FALSE(e.good()); // Hasn't been written yet. 228 ASSERT_FALSE(e.good()); // Hasn't been written yet.
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 281
275 TEST_F(SyncableGeneralTest, ClientIndexRebuildsProperly) { 282 TEST_F(SyncableGeneralTest, ClientIndexRebuildsProperly) {
276 int64 written_metahandle; 283 int64 written_metahandle;
277 TestIdFactory factory; 284 TestIdFactory factory;
278 const Id id = factory.NewServerId(); 285 const Id id = factory.NewServerId();
279 std::string name = "cheesepuffs"; 286 std::string name = "cheesepuffs";
280 std::string tag = "dietcoke"; 287 std::string tag = "dietcoke";
281 288
282 // Test creating a new meta entry. 289 // Test creating a new meta entry.
283 { 290 {
284 Directory dir(&encryptor_, &handler_, NULL, 291 Directory dir(new OnDiskDirectoryBackingStore(kIndexTestName, db_path_),
285 new OnDiskDirectoryBackingStore(kIndexTestName, db_path_)); 292 &handler_,
293 NULL,
294 NULL,
295 NULL);
286 ASSERT_EQ(OPENED, dir.Open(kIndexTestName, &delegate_, 296 ASSERT_EQ(OPENED, dir.Open(kIndexTestName, &delegate_,
287 NullTransactionObserver())); 297 NullTransactionObserver()));
288 { 298 {
289 WriteTransaction wtrans(FROM_HERE, UNITTEST, &dir); 299 WriteTransaction wtrans(FROM_HERE, UNITTEST, &dir);
290 MutableEntry me(&wtrans, CREATE, wtrans.root_id(), name); 300 MutableEntry me(&wtrans, CREATE, wtrans.root_id(), name);
291 ASSERT_TRUE(me.good()); 301 ASSERT_TRUE(me.good());
292 me.Put(ID, id); 302 me.Put(ID, id);
293 me.Put(BASE_VERSION, 1); 303 me.Put(BASE_VERSION, 1);
294 me.Put(UNIQUE_CLIENT_TAG, tag); 304 me.Put(UNIQUE_CLIENT_TAG, tag);
295 written_metahandle = me.Get(META_HANDLE); 305 written_metahandle = me.Get(META_HANDLE);
296 } 306 }
297 dir.SaveChanges(); 307 dir.SaveChanges();
298 } 308 }
299 309
300 // The DB was closed. Now reopen it. This will cause index regeneration. 310 // The DB was closed. Now reopen it. This will cause index regeneration.
301 { 311 {
302 Directory dir(&encryptor_, &handler_, NULL, 312 Directory dir(new OnDiskDirectoryBackingStore(kIndexTestName, db_path_),
303 new OnDiskDirectoryBackingStore(kIndexTestName, db_path_)); 313 &handler_,
314 NULL,
315 NULL,
316 NULL);
304 ASSERT_EQ(OPENED, dir.Open(kIndexTestName, 317 ASSERT_EQ(OPENED, dir.Open(kIndexTestName,
305 &delegate_, NullTransactionObserver())); 318 &delegate_, NullTransactionObserver()));
306 319
307 ReadTransaction trans(FROM_HERE, &dir); 320 ReadTransaction trans(FROM_HERE, &dir);
308 Entry me(&trans, GET_BY_CLIENT_TAG, tag); 321 Entry me(&trans, GET_BY_CLIENT_TAG, tag);
309 ASSERT_TRUE(me.good()); 322 ASSERT_TRUE(me.good());
310 EXPECT_EQ(me.Get(ID), id); 323 EXPECT_EQ(me.Get(ID), id);
311 EXPECT_EQ(me.Get(BASE_VERSION), 1); 324 EXPECT_EQ(me.Get(BASE_VERSION), 1);
312 EXPECT_EQ(me.Get(UNIQUE_CLIENT_TAG), tag); 325 EXPECT_EQ(me.Get(UNIQUE_CLIENT_TAG), tag);
313 EXPECT_EQ(me.Get(META_HANDLE), written_metahandle); 326 EXPECT_EQ(me.Get(META_HANDLE), written_metahandle);
314 } 327 }
315 } 328 }
316 329
317 TEST_F(SyncableGeneralTest, ClientIndexRebuildsDeletedProperly) { 330 TEST_F(SyncableGeneralTest, ClientIndexRebuildsDeletedProperly) {
318 TestIdFactory factory; 331 TestIdFactory factory;
319 const Id id = factory.NewServerId(); 332 const Id id = factory.NewServerId();
320 std::string tag = "dietcoke"; 333 std::string tag = "dietcoke";
321 334
322 // Test creating a deleted, unsynced, server meta entry. 335 // Test creating a deleted, unsynced, server meta entry.
323 { 336 {
324 Directory dir(&encryptor_, &handler_, NULL, 337 Directory dir(new OnDiskDirectoryBackingStore(kIndexTestName, db_path_),
325 new OnDiskDirectoryBackingStore(kIndexTestName, db_path_)); 338 &handler_,
339 NULL,
340 NULL,
341 NULL);
326 ASSERT_EQ(OPENED, dir.Open(kIndexTestName, &delegate_, 342 ASSERT_EQ(OPENED, dir.Open(kIndexTestName, &delegate_,
327 NullTransactionObserver())); 343 NullTransactionObserver()));
328 { 344 {
329 WriteTransaction wtrans(FROM_HERE, UNITTEST, &dir); 345 WriteTransaction wtrans(FROM_HERE, UNITTEST, &dir);
330 MutableEntry me(&wtrans, CREATE, wtrans.root_id(), "deleted"); 346 MutableEntry me(&wtrans, CREATE, wtrans.root_id(), "deleted");
331 ASSERT_TRUE(me.good()); 347 ASSERT_TRUE(me.good());
332 me.Put(ID, id); 348 me.Put(ID, id);
333 me.Put(BASE_VERSION, 1); 349 me.Put(BASE_VERSION, 1);
334 me.Put(UNIQUE_CLIENT_TAG, tag); 350 me.Put(UNIQUE_CLIENT_TAG, tag);
335 me.Put(IS_DEL, true); 351 me.Put(IS_DEL, true);
336 me.Put(IS_UNSYNCED, true); // Or it might be purged. 352 me.Put(IS_UNSYNCED, true); // Or it might be purged.
337 } 353 }
338 dir.SaveChanges(); 354 dir.SaveChanges();
339 } 355 }
340 356
341 // The DB was closed. Now reopen it. This will cause index regeneration. 357 // The DB was closed. Now reopen it. This will cause index regeneration.
342 // Should still be present and valid in the client tag index. 358 // Should still be present and valid in the client tag index.
343 { 359 {
344 Directory dir(&encryptor_, &handler_, NULL, 360 Directory dir(new OnDiskDirectoryBackingStore(kIndexTestName, db_path_),
345 new OnDiskDirectoryBackingStore(kIndexTestName, db_path_)); 361 &handler_,
362 NULL,
363 NULL,
364 NULL);
346 ASSERT_EQ(OPENED, dir.Open(kIndexTestName, &delegate_, 365 ASSERT_EQ(OPENED, dir.Open(kIndexTestName, &delegate_,
347 NullTransactionObserver())); 366 NullTransactionObserver()));
348 367
349 ReadTransaction trans(FROM_HERE, &dir); 368 ReadTransaction trans(FROM_HERE, &dir);
350 Entry me(&trans, GET_BY_CLIENT_TAG, tag); 369 Entry me(&trans, GET_BY_CLIENT_TAG, tag);
351 ASSERT_TRUE(me.good()); 370 ASSERT_TRUE(me.good());
352 EXPECT_EQ(me.Get(ID), id); 371 EXPECT_EQ(me.Get(ID), id);
353 EXPECT_EQ(me.Get(UNIQUE_CLIENT_TAG), tag); 372 EXPECT_EQ(me.Get(UNIQUE_CLIENT_TAG), tag);
354 EXPECT_TRUE(me.Get(IS_DEL)); 373 EXPECT_TRUE(me.Get(IS_DEL));
355 EXPECT_TRUE(me.Get(IS_UNSYNCED)); 374 EXPECT_TRUE(me.Get(IS_UNSYNCED));
356 } 375 }
357 } 376 }
358 377
359 TEST_F(SyncableGeneralTest, ToValue) { 378 TEST_F(SyncableGeneralTest, ToValue) {
360 Directory dir(&encryptor_, &handler_, NULL, 379 Directory dir(new InMemoryDirectoryBackingStore("SimpleTest"),
361 new InMemoryDirectoryBackingStore("SimpleTest")); 380 &handler_,
381 NULL,
382 NULL,
383 NULL);
362 ASSERT_EQ(OPENED, dir.Open( 384 ASSERT_EQ(OPENED, dir.Open(
363 "SimpleTest", &delegate_, NullTransactionObserver())); 385 "SimpleTest", &delegate_, NullTransactionObserver()));
364 386
365 const Id id = TestIdFactory::FromNumber(99); 387 const Id id = TestIdFactory::FromNumber(99);
366 { 388 {
367 ReadTransaction rtrans(FROM_HERE, &dir); 389 ReadTransaction rtrans(FROM_HERE, &dir);
368 Entry e(&rtrans, GET_BY_ID, id); 390 Entry e(&rtrans, GET_BY_ID, id);
369 EXPECT_FALSE(e.good()); // Hasn't been written yet. 391 EXPECT_FALSE(e.good()); // Hasn't been written yet.
370 392
371 scoped_ptr<DictionaryValue> value(e.ToValue()); 393 scoped_ptr<DictionaryValue> value(e.ToValue());
(...skipping 28 matching lines...) Expand all
400 UnsaveableBackingStore(const std::string& dir_name, 422 UnsaveableBackingStore(const std::string& dir_name,
401 const FilePath& backing_filepath) 423 const FilePath& backing_filepath)
402 : OnDiskDirectoryBackingStore(dir_name, backing_filepath) { } 424 : OnDiskDirectoryBackingStore(dir_name, backing_filepath) { }
403 virtual bool SaveChanges(const Directory::SaveChangesSnapshot& snapshot) { 425 virtual bool SaveChanges(const Directory::SaveChangesSnapshot& snapshot) {
404 return false; 426 return false;
405 } 427 }
406 }; 428 };
407 429
408 TestUnsaveableDirectory(const std::string& dir_name, 430 TestUnsaveableDirectory(const std::string& dir_name,
409 const FilePath& backing_filepath) 431 const FilePath& backing_filepath)
410 : Directory(&encryptor_, &handler_, NULL, 432 : Directory(new UnsaveableBackingStore(dir_name, backing_filepath),
411 new UnsaveableBackingStore(dir_name, backing_filepath)) {} 433 &handler_,
434 NULL,
435 NULL,
436 NULL) {}
412 private: 437 private:
413 FakeEncryptor encryptor_; 438 FakeEncryptor encryptor_;
414 TestUnrecoverableErrorHandler handler_; 439 TestUnrecoverableErrorHandler handler_;
415 }; 440 };
416 441
417 // A test fixture for syncable::Directory. Uses an in-memory database to keep 442 // A test fixture for syncable::Directory. Uses an in-memory database to keep
418 // the unit tests fast. 443 // the unit tests fast.
419 class SyncableDirectoryTest : public testing::Test { 444 class SyncableDirectoryTest : public testing::Test {
420 protected: 445 protected:
421 MessageLoop message_loop_; 446 MessageLoop message_loop_;
422 static const char kName[]; 447 static const char kName[];
423 448
424 virtual void SetUp() { 449 virtual void SetUp() {
425 dir_.reset(new Directory(&encryptor_, &handler_, NULL, 450 dir_.reset(new Directory(new InMemoryDirectoryBackingStore(kName),
426 new InMemoryDirectoryBackingStore(kName))); 451 &handler_,
452 NULL,
453 NULL,
454 NULL));
427 ASSERT_TRUE(dir_.get()); 455 ASSERT_TRUE(dir_.get());
428 ASSERT_EQ(OPENED, dir_->Open(kName, &delegate_, 456 ASSERT_EQ(OPENED, dir_->Open(kName, &delegate_,
429 NullTransactionObserver())); 457 NullTransactionObserver()));
430 ASSERT_TRUE(dir_->good()); 458 ASSERT_TRUE(dir_->good());
431 } 459 }
432 460
433 virtual void TearDown() { 461 virtual void TearDown() {
434 if (dir_.get()) 462 if (dir_.get())
435 dir_->SaveChanges(); 463 dir_->SaveChanges();
436 dir_.reset(); 464 dir_.reset();
(...skipping 899 matching lines...) Expand 10 before | Expand all | Expand 10 after
1336 // A variant of SyncableDirectoryTest that uses a real sqlite database. 1364 // A variant of SyncableDirectoryTest that uses a real sqlite database.
1337 class OnDiskSyncableDirectoryTest : public SyncableDirectoryTest { 1365 class OnDiskSyncableDirectoryTest : public SyncableDirectoryTest {
1338 protected: 1366 protected:
1339 // SetUp() is called before each test case is run. 1367 // SetUp() is called before each test case is run.
1340 // The sqlite3 DB is deleted before each test is run. 1368 // The sqlite3 DB is deleted before each test is run.
1341 virtual void SetUp() { 1369 virtual void SetUp() {
1342 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); 1370 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
1343 file_path_ = temp_dir_.path().Append( 1371 file_path_ = temp_dir_.path().Append(
1344 FILE_PATH_LITERAL("Test.sqlite3")); 1372 FILE_PATH_LITERAL("Test.sqlite3"));
1345 file_util::Delete(file_path_, true); 1373 file_util::Delete(file_path_, true);
1346 dir_.reset(new Directory(&encryptor_, &handler_, NULL, 1374 dir_.reset(new Directory(new OnDiskDirectoryBackingStore(kName, file_path_),
1347 new OnDiskDirectoryBackingStore(kName, file_path_))); 1375 &handler_,
1376 NULL,
1377 NULL,
1378 NULL));
1348 ASSERT_TRUE(dir_.get()); 1379 ASSERT_TRUE(dir_.get());
1349 ASSERT_EQ(OPENED, dir_->Open(kName, &delegate_, 1380 ASSERT_EQ(OPENED, dir_->Open(kName, &delegate_,
1350 NullTransactionObserver())); 1381 NullTransactionObserver()));
1351 ASSERT_TRUE(dir_->good()); 1382 ASSERT_TRUE(dir_->good());
1352 } 1383 }
1353 1384
1354 virtual void TearDown() { 1385 virtual void TearDown() {
1355 // This also closes file handles. 1386 // This also closes file handles.
1356 dir_->SaveChanges(); 1387 dir_->SaveChanges();
1357 dir_.reset(); 1388 dir_.reset();
1358 file_util::Delete(file_path_, true); 1389 file_util::Delete(file_path_, true);
1359 } 1390 }
1360 1391
1361 void ReloadDir() { 1392 void ReloadDir() {
1362 dir_.reset(new Directory(&encryptor_, &handler_, NULL, 1393 dir_.reset(new Directory(
1363 new OnDiskDirectoryBackingStore(kName, file_path_))); 1394 new OnDiskDirectoryBackingStore(kName, file_path_),
1395 &handler_,
1396 NULL,
1397 NULL,
1398 NULL));
1364 ASSERT_TRUE(dir_.get()); 1399 ASSERT_TRUE(dir_.get());
1365 ASSERT_EQ(OPENED, dir_->Open(kName, &delegate_, 1400 ASSERT_EQ(OPENED, dir_->Open(kName, &delegate_,
1366 NullTransactionObserver())); 1401 NullTransactionObserver()));
1367 } 1402 }
1368 1403
1369 void SaveAndReloadDir() { 1404 void SaveAndReloadDir() {
1370 dir_->SaveChanges(); 1405 dir_->SaveChanges();
1371 ReloadDir(); 1406 ReloadDir();
1372 } 1407 }
1373 1408
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
1510 sync_pb::EntitySpecifics specifics; 1545 sync_pb::EntitySpecifics specifics;
1511 specifics.mutable_bookmark()->set_favicon("PNG"); 1546 specifics.mutable_bookmark()->set_favicon("PNG");
1512 specifics.mutable_bookmark()->set_url("http://nowhere"); 1547 specifics.mutable_bookmark()->set_url("http://nowhere");
1513 create.Put(SPECIFICS, specifics); 1548 create.Put(SPECIFICS, specifics);
1514 create_pre_save = create.GetKernelCopy(); 1549 create_pre_save = create.GetKernelCopy();
1515 update_pre_save = update.GetKernelCopy(); 1550 update_pre_save = update.GetKernelCopy();
1516 create_id = create.Get(ID); 1551 create_id = create.Get(ID);
1517 } 1552 }
1518 1553
1519 dir_->SaveChanges(); 1554 dir_->SaveChanges();
1520 dir_.reset(new Directory(&encryptor_, &handler_, NULL, 1555 dir_.reset(new Directory(new OnDiskDirectoryBackingStore(kName, file_path_),
1521 new OnDiskDirectoryBackingStore(kName, file_path_))); 1556 &handler_,
1557 NULL,
1558 NULL,
1559 NULL));
1560
1522 ASSERT_TRUE(dir_.get()); 1561 ASSERT_TRUE(dir_.get());
1523 ASSERT_EQ(OPENED, dir_->Open(kName, &delegate_, NullTransactionObserver())); 1562 ASSERT_EQ(OPENED, dir_->Open(kName, &delegate_, NullTransactionObserver()));
1524 ASSERT_TRUE(dir_->good()); 1563 ASSERT_TRUE(dir_->good());
1525 1564
1526 { 1565 {
1527 ReadTransaction trans(FROM_HERE, dir_.get()); 1566 ReadTransaction trans(FROM_HERE, dir_.get());
1528 Entry create(&trans, GET_BY_ID, create_id); 1567 Entry create(&trans, GET_BY_ID, create_id);
1529 EXPECT_EQ(1, CountEntriesWithName(&trans, trans.root_id(), create_name)); 1568 EXPECT_EQ(1, CountEntriesWithName(&trans, trans.root_id(), create_name));
1530 Entry update(&trans, GET_BY_ID, update_id); 1569 Entry update(&trans, GET_BY_ID, update_id);
1531 create_post_save = create.GetKernelCopy(); 1570 create_post_save = create.GetKernelCopy();
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
1721 if (!dir_->SaveChanges()) 1760 if (!dir_->SaveChanges())
1722 return FAILED_IN_UNITTEST; 1761 return FAILED_IN_UNITTEST;
1723 1762
1724 // Do some tricky things to preserve the backing store. 1763 // Do some tricky things to preserve the backing store.
1725 DirectoryBackingStore* saved_store = dir_->store_.release(); 1764 DirectoryBackingStore* saved_store = dir_->store_.release();
1726 1765
1727 // Close the current directory. 1766 // Close the current directory.
1728 dir_->Close(); 1767 dir_->Close();
1729 dir_.reset(); 1768 dir_.reset();
1730 1769
1731 dir_.reset(new Directory(&encryptor_, &handler_, NULL, saved_store)); 1770 dir_.reset(new Directory(saved_store,
1771 &handler_,
1772 NULL,
1773 NULL,
1774 NULL));
1732 DirOpenResult result = dir_->OpenImpl(kName, &delegate_, 1775 DirOpenResult result = dir_->OpenImpl(kName, &delegate_,
1733 NullTransactionObserver()); 1776 NullTransactionObserver());
1734 1777
1735 // If something went wrong, we need to clear this member. If we don't, 1778 // If something went wrong, we need to clear this member. If we don't,
1736 // TearDown() will be guaranteed to crash when it calls SaveChanges(). 1779 // TearDown() will be guaranteed to crash when it calls SaveChanges().
1737 if (result != OPENED) 1780 if (result != OPENED)
1738 dir_.reset(); 1781 dir_.reset();
1739 1782
1740 return result; 1783 return result;
1741 } 1784 }
(...skipping 13 matching lines...) Expand all
1755 ScopedTempDir temp_dir_; 1798 ScopedTempDir temp_dir_;
1756 FakeEncryptor encryptor_; 1799 FakeEncryptor encryptor_;
1757 TestUnrecoverableErrorHandler handler_; 1800 TestUnrecoverableErrorHandler handler_;
1758 NullDirectoryChangeDelegate delegate_; 1801 NullDirectoryChangeDelegate delegate_;
1759 }; 1802 };
1760 1803
1761 TEST_F(SyncableDirectoryManagement, TestFileRelease) { 1804 TEST_F(SyncableDirectoryManagement, TestFileRelease) {
1762 FilePath path = temp_dir_.path().Append( 1805 FilePath path = temp_dir_.path().Append(
1763 Directory::kSyncDatabaseFilename); 1806 Directory::kSyncDatabaseFilename);
1764 1807
1765 syncable::Directory dir(&encryptor_, &handler_, NULL, 1808 syncable::Directory dir(new OnDiskDirectoryBackingStore("ScopeTest", path),
1766 new OnDiskDirectoryBackingStore("ScopeTest", path)); 1809 &handler_,
1810 NULL,
1811 NULL,
1812 NULL);
1767 DirOpenResult result = 1813 DirOpenResult result =
1768 dir.Open("ScopeTest", &delegate_, NullTransactionObserver()); 1814 dir.Open("ScopeTest", &delegate_, NullTransactionObserver());
1769 ASSERT_EQ(result, OPENED); 1815 ASSERT_EQ(result, OPENED);
1770 dir.Close(); 1816 dir.Close();
1771 1817
1772 // Closing the directory should have released the backing database file. 1818 // Closing the directory should have released the backing database file.
1773 ASSERT_TRUE(file_util::Delete(path, true)); 1819 ASSERT_TRUE(file_util::Delete(path, true));
1774 } 1820 }
1775 1821
1776 class StressTransactionsDelegate : public base::PlatformThread::Delegate { 1822 class StressTransactionsDelegate : public base::PlatformThread::Delegate {
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1817 }; 1863 };
1818 1864
1819 TEST(SyncableDirectory, StressTransactions) { 1865 TEST(SyncableDirectory, StressTransactions) {
1820 MessageLoop message_loop; 1866 MessageLoop message_loop;
1821 ScopedTempDir temp_dir; 1867 ScopedTempDir temp_dir;
1822 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); 1868 ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
1823 FakeEncryptor encryptor; 1869 FakeEncryptor encryptor;
1824 TestUnrecoverableErrorHandler handler; 1870 TestUnrecoverableErrorHandler handler;
1825 NullDirectoryChangeDelegate delegate; 1871 NullDirectoryChangeDelegate delegate;
1826 std::string dirname = "stress"; 1872 std::string dirname = "stress";
1827 Directory dir(&encryptor, &handler, NULL, 1873 Directory dir(new InMemoryDirectoryBackingStore(dirname),
1828 new InMemoryDirectoryBackingStore(dirname)); 1874 &handler,
1875 NULL,
1876 NULL,
1877 NULL);
1829 dir.Open(dirname, &delegate, NullTransactionObserver()); 1878 dir.Open(dirname, &delegate, NullTransactionObserver());
1830 1879
1831 const int kThreadCount = 7; 1880 const int kThreadCount = 7;
1832 base::PlatformThreadHandle threads[kThreadCount]; 1881 base::PlatformThreadHandle threads[kThreadCount];
1833 scoped_ptr<StressTransactionsDelegate> thread_delegates[kThreadCount]; 1882 scoped_ptr<StressTransactionsDelegate> thread_delegates[kThreadCount];
1834 1883
1835 for (int i = 0; i < kThreadCount; ++i) { 1884 for (int i = 0; i < kThreadCount; ++i) {
1836 thread_delegates[i].reset(new StressTransactionsDelegate(&dir, i)); 1885 thread_delegates[i].reset(new StressTransactionsDelegate(&dir, i));
1837 ASSERT_TRUE(base::PlatformThread::Create( 1886 ASSERT_TRUE(base::PlatformThread::Create(
1838 0, thread_delegates[i].get(), &threads[i])); 1887 0, thread_delegates[i].get(), &threads[i]));
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
1940 EXPECT_TRUE(CreateWithDefaultTag(factory_.NewServerId(), true)); 1989 EXPECT_TRUE(CreateWithDefaultTag(factory_.NewServerId(), true));
1941 EXPECT_FALSE(CreateWithDefaultTag(factory_.NewServerId(), true)); 1990 EXPECT_FALSE(CreateWithDefaultTag(factory_.NewServerId(), true));
1942 EXPECT_FALSE(CreateWithDefaultTag(factory_.NewServerId(), false)); 1991 EXPECT_FALSE(CreateWithDefaultTag(factory_.NewServerId(), false));
1943 EXPECT_FALSE(CreateWithDefaultTag(factory_.NewLocalId(), false)); 1992 EXPECT_FALSE(CreateWithDefaultTag(factory_.NewLocalId(), false));
1944 EXPECT_FALSE(CreateWithDefaultTag(factory_.NewLocalId(), true)); 1993 EXPECT_FALSE(CreateWithDefaultTag(factory_.NewLocalId(), true));
1945 } 1994 }
1946 1995
1947 } // namespace 1996 } // namespace
1948 } // namespace syncable 1997 } // namespace syncable
1949 } // namespace syncer 1998 } // namespace syncer
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698