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

Side by Side Diff: chrome/test/sync/engine/test_directory_setter_upper.cc

Issue 7828055: Move sync test code out of chrome/test (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 3 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "chrome/test/sync/engine/test_directory_setter_upper.h"
6
7 #include "base/compiler_specific.h"
8 #include "base/file_util.h"
9 #include "base/string_util.h"
10 #include "base/tracked.h"
11 #include "chrome/browser/sync/syncable/directory_manager.h"
12 #include "chrome/browser/sync/syncable/syncable.h"
13 #include "testing/gtest/include/gtest/gtest.h"
14
15 using syncable::DirectoryManager;
16 using syncable::ReadTransaction;
17 using syncable::ScopedDirLookup;
18
19 namespace browser_sync {
20
21 TestDirectorySetterUpper::TestDirectorySetterUpper() : name_("Test") {}
22 TestDirectorySetterUpper::TestDirectorySetterUpper(const std::string& name)
23 : name_(name) {}
24
25 TestDirectorySetterUpper::~TestDirectorySetterUpper() {}
26
27 void TestDirectorySetterUpper::Init() {
28 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
29 reset_directory_manager(new DirectoryManager(temp_dir_.path()));
30 // There shouldn't be any existing database in the newly-created
31 // temp dir.
32 ASSERT_FALSE(file_util::PathExists(manager_->GetSyncDataDatabasePath()));
33 }
34
35 void TestDirectorySetterUpper::reset_directory_manager(DirectoryManager* d) {
36 manager_.reset(d);
37 }
38
39 void TestDirectorySetterUpper::SetUp() {
40 Init();
41 ASSERT_TRUE(manager()->Open(name(), &delegate_));
42 }
43
44 void TestDirectorySetterUpper::TearDown() {
45 if (!manager())
46 return;
47
48 {
49 // A small scope so we don't have the dir open when we close it and reset
50 // the DirectoryManager below.
51 ScopedDirLookup dir(manager(), name());
52 CHECK(dir.good()) << "Bad directory during tear down check";
53 RunInvariantCheck(dir);
54 dir->SaveChanges();
55 RunInvariantCheck(dir);
56 dir->SaveChanges();
57 }
58
59 manager()->FinalSaveChangesForAll();
60 manager()->Close(name());
61 manager_.reset();
62 ASSERT_TRUE(temp_dir_.Delete());
63 }
64
65 void TestDirectorySetterUpper::RunInvariantCheck(const ScopedDirLookup& dir) {
66 {
67 // Check invariants for in-memory items.
68 ReadTransaction trans(FROM_HERE, dir);
69 dir->CheckTreeInvariants(&trans, false);
70 }
71 {
72 // Check invariants for all items.
73 ReadTransaction trans(FROM_HERE, dir);
74 dir->CheckTreeInvariants(&trans, true);
75 }
76 }
77
78 void ManuallyOpenedTestDirectorySetterUpper::SetUp() {
79 Init();
80 }
81
82 void ManuallyOpenedTestDirectorySetterUpper::Open() {
83 ASSERT_TRUE(manager()->Open(name(), &delegate_));
84 was_opened_ = true;
85 }
86
87 void ManuallyOpenedTestDirectorySetterUpper::TearDown() {
88 if (was_opened_) {
89 TestDirectorySetterUpper::TearDown();
90 }
91 }
92
93 TriggeredOpenTestDirectorySetterUpper::TriggeredOpenTestDirectorySetterUpper(
94 const std::string& name)
95 : TestDirectorySetterUpper(name) {
96 }
97
98 void TriggeredOpenTestDirectorySetterUpper::SetUp() {
99 Init();
100 }
101
102 void TriggeredOpenTestDirectorySetterUpper::TearDown() {
103 DirectoryManager::DirNames names;
104 manager()->GetOpenDirectories(&names);
105 if (!names.empty()) {
106 ASSERT_EQ(1U, names.size());
107 ASSERT_EQ(name(), names[0]);
108 TestDirectorySetterUpper::TearDown();
109 }
110 }
111
112 MockDirectorySetterUpper::MockDirectory::MockDirectory(
113 const std::string& name) {
114 InitKernel(name, &delegate_);
115 }
116
117 MockDirectorySetterUpper::MockDirectory::~MockDirectory() {}
118
119 MockDirectorySetterUpper::Manager::Manager(
120 const FilePath& root_path, syncable::Directory* dir) :
121 syncable::DirectoryManager(root_path) {
122 managed_directory_ = dir;
123 }
124
125 MockDirectorySetterUpper::MockDirectorySetterUpper()
126 : directory_(new MockDirectory(name())) {
127 }
128
129 MockDirectorySetterUpper::~MockDirectorySetterUpper() {}
130
131 void MockDirectorySetterUpper::SetUp() {
132 reset_directory_manager(new Manager(FilePath(), directory_.get()));
133 }
134
135 void MockDirectorySetterUpper::TearDown() {
136 // Nothing to do here.
137 }
138
139 } // namespace browser_sync
OLDNEW
« no previous file with comments | « chrome/test/sync/engine/test_directory_setter_upper.h ('k') | chrome/test/sync/engine/test_id_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698