| OLD | NEW |
| 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 "chrome/test/sync/engine/test_directory_setter_upper.h" | 5 #include "chrome/test/sync/engine/test_directory_setter_upper.h" |
| 6 | 6 |
| 7 #include "base/compiler_specific.h" | 7 #include "base/compiler_specific.h" |
| 8 #include "base/file_util.h" | 8 #include "base/file_util.h" |
| 9 #include "base/string_util.h" | 9 #include "base/string_util.h" |
| 10 #include "base/tracked.h" |
| 10 #include "chrome/browser/sync/syncable/directory_manager.h" | 11 #include "chrome/browser/sync/syncable/directory_manager.h" |
| 11 #include "chrome/browser/sync/syncable/syncable.h" | 12 #include "chrome/browser/sync/syncable/syncable.h" |
| 12 #include "chrome/common/deprecated/event_sys-inl.h" | 13 #include "chrome/common/deprecated/event_sys-inl.h" |
| 13 #include "testing/gtest/include/gtest/gtest.h" | 14 #include "testing/gtest/include/gtest/gtest.h" |
| 14 | 15 |
| 15 using syncable::DirectoryManager; | 16 using syncable::DirectoryManager; |
| 16 using syncable::ReadTransaction; | 17 using syncable::ReadTransaction; |
| 17 using syncable::ScopedDirLookup; | 18 using syncable::ScopedDirLookup; |
| 18 | 19 |
| 19 namespace browser_sync { | 20 namespace browser_sync { |
| (...skipping 11 matching lines...) Expand all Loading... |
| 31 // temp dir. | 32 // temp dir. |
| 32 ASSERT_FALSE(file_util::PathExists(manager_->GetSyncDataDatabasePath())); | 33 ASSERT_FALSE(file_util::PathExists(manager_->GetSyncDataDatabasePath())); |
| 33 } | 34 } |
| 34 | 35 |
| 35 void TestDirectorySetterUpper::reset_directory_manager(DirectoryManager* d) { | 36 void TestDirectorySetterUpper::reset_directory_manager(DirectoryManager* d) { |
| 36 manager_.reset(d); | 37 manager_.reset(d); |
| 37 } | 38 } |
| 38 | 39 |
| 39 void TestDirectorySetterUpper::SetUp() { | 40 void TestDirectorySetterUpper::SetUp() { |
| 40 Init(); | 41 Init(); |
| 41 ASSERT_TRUE(manager()->Open(name())); | 42 ASSERT_TRUE(manager()->Open(name(), &delegate_)); |
| 42 } | 43 } |
| 43 | 44 |
| 44 void TestDirectorySetterUpper::TearDown() { | 45 void TestDirectorySetterUpper::TearDown() { |
| 45 if (!manager()) | 46 if (!manager()) |
| 46 return; | 47 return; |
| 47 | 48 |
| 48 { | 49 { |
| 49 // A small scope so we don't have the dir open when we close it and reset | 50 // A small scope so we don't have the dir open when we close it and reset |
| 50 // the DirectoryManager below. | 51 // the DirectoryManager below. |
| 51 ScopedDirLookup dir(manager(), name()); | 52 ScopedDirLookup dir(manager(), name()); |
| 52 CHECK(dir.good()) << "Bad directory during tear down check"; | 53 CHECK(dir.good()) << "Bad directory during tear down check"; |
| 53 RunInvariantCheck(dir); | 54 RunInvariantCheck(dir); |
| 54 dir->SaveChanges(); | 55 dir->SaveChanges(); |
| 55 RunInvariantCheck(dir); | 56 RunInvariantCheck(dir); |
| 56 dir->SaveChanges(); | 57 dir->SaveChanges(); |
| 57 } | 58 } |
| 58 | 59 |
| 59 manager()->FinalSaveChangesForAll(); | 60 manager()->FinalSaveChangesForAll(); |
| 60 manager()->Close(name()); | 61 manager()->Close(name()); |
| 61 manager_.reset(); | 62 manager_.reset(); |
| 62 ASSERT_TRUE(temp_dir_.Delete()); | 63 ASSERT_TRUE(temp_dir_.Delete()); |
| 63 } | 64 } |
| 64 | 65 |
| 65 void TestDirectorySetterUpper::RunInvariantCheck(const ScopedDirLookup& dir) { | 66 void TestDirectorySetterUpper::RunInvariantCheck(const ScopedDirLookup& dir) { |
| 66 { | 67 { |
| 67 // Check invariants for in-memory items. | 68 // Check invariants for in-memory items. |
| 68 ReadTransaction trans(dir, __FILE__, __LINE__); | 69 ReadTransaction trans(dir, FROM_HERE); |
| 69 dir->CheckTreeInvariants(&trans, false); | 70 dir->CheckTreeInvariants(&trans, false); |
| 70 } | 71 } |
| 71 { | 72 { |
| 72 // Check invariants for all items. | 73 // Check invariants for all items. |
| 73 ReadTransaction trans(dir, __FILE__, __LINE__); | 74 ReadTransaction trans(dir, FROM_HERE); |
| 74 dir->CheckTreeInvariants(&trans, true); | 75 dir->CheckTreeInvariants(&trans, true); |
| 75 } | 76 } |
| 76 } | 77 } |
| 77 | 78 |
| 78 void ManuallyOpenedTestDirectorySetterUpper::SetUp() { | 79 void ManuallyOpenedTestDirectorySetterUpper::SetUp() { |
| 79 Init(); | 80 Init(); |
| 80 } | 81 } |
| 81 | 82 |
| 82 void ManuallyOpenedTestDirectorySetterUpper::Open() { | 83 void ManuallyOpenedTestDirectorySetterUpper::Open() { |
| 83 ASSERT_TRUE(manager()->Open(name())); | 84 ASSERT_TRUE(manager()->Open(name(), &delegate_)); |
| 84 was_opened_ = true; | 85 was_opened_ = true; |
| 85 } | 86 } |
| 86 | 87 |
| 87 void ManuallyOpenedTestDirectorySetterUpper::TearDown() { | 88 void ManuallyOpenedTestDirectorySetterUpper::TearDown() { |
| 88 if (was_opened_) { | 89 if (was_opened_) { |
| 89 TestDirectorySetterUpper::TearDown(); | 90 TestDirectorySetterUpper::TearDown(); |
| 90 } | 91 } |
| 91 } | 92 } |
| 92 | 93 |
| 93 TriggeredOpenTestDirectorySetterUpper::TriggeredOpenTestDirectorySetterUpper( | 94 TriggeredOpenTestDirectorySetterUpper::TriggeredOpenTestDirectorySetterUpper( |
| (...skipping 10 matching lines...) Expand all Loading... |
| 104 manager()->GetOpenDirectories(&names); | 105 manager()->GetOpenDirectories(&names); |
| 105 if (!names.empty()) { | 106 if (!names.empty()) { |
| 106 ASSERT_EQ(1U, names.size()); | 107 ASSERT_EQ(1U, names.size()); |
| 107 ASSERT_EQ(name(), names[0]); | 108 ASSERT_EQ(name(), names[0]); |
| 108 TestDirectorySetterUpper::TearDown(); | 109 TestDirectorySetterUpper::TearDown(); |
| 109 } | 110 } |
| 110 } | 111 } |
| 111 | 112 |
| 112 MockDirectorySetterUpper::MockDirectory::MockDirectory( | 113 MockDirectorySetterUpper::MockDirectory::MockDirectory( |
| 113 const std::string& name) { | 114 const std::string& name) { |
| 114 init_kernel(name); | 115 InitKernel(name, &delegate_); |
| 115 } | 116 } |
| 116 | 117 |
| 117 MockDirectorySetterUpper::MockDirectory::~MockDirectory() {} | 118 MockDirectorySetterUpper::MockDirectory::~MockDirectory() {} |
| 118 | 119 |
| 119 MockDirectorySetterUpper::Manager::Manager( | 120 MockDirectorySetterUpper::Manager::Manager( |
| 120 const FilePath& root_path, syncable::Directory* dir) : | 121 const FilePath& root_path, syncable::Directory* dir) : |
| 121 syncable::DirectoryManager(root_path) { | 122 syncable::DirectoryManager(root_path) { |
| 122 managed_directory_ = dir; | 123 managed_directory_ = dir; |
| 123 } | 124 } |
| 124 | 125 |
| 125 MockDirectorySetterUpper::MockDirectorySetterUpper() | 126 MockDirectorySetterUpper::MockDirectorySetterUpper() |
| 126 : directory_(new MockDirectory(name())) { | 127 : directory_(new MockDirectory(name())) { |
| 127 } | 128 } |
| 128 | 129 |
| 129 MockDirectorySetterUpper::~MockDirectorySetterUpper() {} | 130 MockDirectorySetterUpper::~MockDirectorySetterUpper() {} |
| 130 | 131 |
| 131 void MockDirectorySetterUpper::SetUp() { | 132 void MockDirectorySetterUpper::SetUp() { |
| 132 reset_directory_manager(new Manager(FilePath(), directory_.get())); | 133 reset_directory_manager(new Manager(FilePath(), directory_.get())); |
| 133 } | 134 } |
| 134 | 135 |
| 135 void MockDirectorySetterUpper::TearDown() { | 136 void MockDirectorySetterUpper::TearDown() { |
| 136 // Nothing to do here. | 137 // Nothing to do here. |
| 137 } | 138 } |
| 138 | 139 |
| 139 } // namespace browser_sync | 140 } // namespace browser_sync |
| OLD | NEW |