OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 <stddef.h> | 5 #include <stddef.h> |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <functional> | 8 #include <functional> |
9 #include <limits> | 9 #include <limits> |
10 #include <memory> | 10 #include <memory> |
(...skipping 20 matching lines...) Expand all Loading... |
31 namespace { | 31 namespace { |
32 const base::FilePath::CharType kFileSystemDirName[] = | 32 const base::FilePath::CharType kFileSystemDirName[] = |
33 FILE_PATH_LITERAL("File System"); | 33 FILE_PATH_LITERAL("File System"); |
34 const base::FilePath::CharType kOriginDatabaseName[] = | 34 const base::FilePath::CharType kOriginDatabaseName[] = |
35 FILE_PATH_LITERAL("Origins"); | 35 FILE_PATH_LITERAL("Origins"); |
36 } // namespace | 36 } // namespace |
37 | 37 |
38 TEST(SandboxOriginDatabaseTest, BasicTest) { | 38 TEST(SandboxOriginDatabaseTest, BasicTest) { |
39 base::ScopedTempDir dir; | 39 base::ScopedTempDir dir; |
40 ASSERT_TRUE(dir.CreateUniqueTempDir()); | 40 ASSERT_TRUE(dir.CreateUniqueTempDir()); |
41 const base::FilePath kFSDir = dir.path().Append(kFileSystemDirName); | 41 const base::FilePath kFSDir = dir.GetPath().Append(kFileSystemDirName); |
42 EXPECT_FALSE(base::PathExists(kFSDir)); | 42 EXPECT_FALSE(base::PathExists(kFSDir)); |
43 EXPECT_TRUE(base::CreateDirectory(kFSDir)); | 43 EXPECT_TRUE(base::CreateDirectory(kFSDir)); |
44 | 44 |
45 SandboxOriginDatabase database(kFSDir, NULL); | 45 SandboxOriginDatabase database(kFSDir, NULL); |
46 std::string origin("origin"); | 46 std::string origin("origin"); |
47 | 47 |
48 EXPECT_FALSE(database.HasOriginPath(origin)); | 48 EXPECT_FALSE(database.HasOriginPath(origin)); |
49 // Double-check to make sure that had no side effects. | 49 // Double-check to make sure that had no side effects. |
50 EXPECT_FALSE(database.HasOriginPath(origin)); | 50 EXPECT_FALSE(database.HasOriginPath(origin)); |
51 | 51 |
52 base::FilePath path0; | 52 base::FilePath path0; |
53 base::FilePath path1; | 53 base::FilePath path1; |
54 | 54 |
55 // Empty strings aren't valid origins. | 55 // Empty strings aren't valid origins. |
56 EXPECT_FALSE(database.GetPathForOrigin(std::string(), &path0)); | 56 EXPECT_FALSE(database.GetPathForOrigin(std::string(), &path0)); |
57 | 57 |
58 EXPECT_TRUE(database.GetPathForOrigin(origin, &path0)); | 58 EXPECT_TRUE(database.GetPathForOrigin(origin, &path0)); |
59 EXPECT_TRUE(database.HasOriginPath(origin)); | 59 EXPECT_TRUE(database.HasOriginPath(origin)); |
60 EXPECT_TRUE(database.GetPathForOrigin(origin, &path1)); | 60 EXPECT_TRUE(database.GetPathForOrigin(origin, &path1)); |
61 EXPECT_FALSE(path0.empty()); | 61 EXPECT_FALSE(path0.empty()); |
62 EXPECT_FALSE(path1.empty()); | 62 EXPECT_FALSE(path1.empty()); |
63 EXPECT_EQ(path0, path1); | 63 EXPECT_EQ(path0, path1); |
64 | 64 |
65 EXPECT_TRUE(base::PathExists(kFSDir.Append(kOriginDatabaseName))); | 65 EXPECT_TRUE(base::PathExists(kFSDir.Append(kOriginDatabaseName))); |
66 } | 66 } |
67 | 67 |
68 TEST(SandboxOriginDatabaseTest, TwoPathTest) { | 68 TEST(SandboxOriginDatabaseTest, TwoPathTest) { |
69 base::ScopedTempDir dir; | 69 base::ScopedTempDir dir; |
70 ASSERT_TRUE(dir.CreateUniqueTempDir()); | 70 ASSERT_TRUE(dir.CreateUniqueTempDir()); |
71 const base::FilePath kFSDir = dir.path().Append(kFileSystemDirName); | 71 const base::FilePath kFSDir = dir.GetPath().Append(kFileSystemDirName); |
72 EXPECT_FALSE(base::PathExists(kFSDir)); | 72 EXPECT_FALSE(base::PathExists(kFSDir)); |
73 EXPECT_TRUE(base::CreateDirectory(kFSDir)); | 73 EXPECT_TRUE(base::CreateDirectory(kFSDir)); |
74 | 74 |
75 SandboxOriginDatabase database(kFSDir, NULL); | 75 SandboxOriginDatabase database(kFSDir, NULL); |
76 std::string origin0("origin0"); | 76 std::string origin0("origin0"); |
77 std::string origin1("origin1"); | 77 std::string origin1("origin1"); |
78 | 78 |
79 EXPECT_FALSE(database.HasOriginPath(origin0)); | 79 EXPECT_FALSE(database.HasOriginPath(origin0)); |
80 EXPECT_FALSE(database.HasOriginPath(origin1)); | 80 EXPECT_FALSE(database.HasOriginPath(origin1)); |
81 | 81 |
82 base::FilePath path0; | 82 base::FilePath path0; |
83 base::FilePath path1; | 83 base::FilePath path1; |
84 EXPECT_TRUE(database.GetPathForOrigin(origin0, &path0)); | 84 EXPECT_TRUE(database.GetPathForOrigin(origin0, &path0)); |
85 EXPECT_TRUE(database.HasOriginPath(origin0)); | 85 EXPECT_TRUE(database.HasOriginPath(origin0)); |
86 EXPECT_FALSE(database.HasOriginPath(origin1)); | 86 EXPECT_FALSE(database.HasOriginPath(origin1)); |
87 EXPECT_TRUE(database.GetPathForOrigin(origin1, &path1)); | 87 EXPECT_TRUE(database.GetPathForOrigin(origin1, &path1)); |
88 EXPECT_TRUE(database.HasOriginPath(origin1)); | 88 EXPECT_TRUE(database.HasOriginPath(origin1)); |
89 EXPECT_FALSE(path0.empty()); | 89 EXPECT_FALSE(path0.empty()); |
90 EXPECT_FALSE(path1.empty()); | 90 EXPECT_FALSE(path1.empty()); |
91 EXPECT_NE(path0, path1); | 91 EXPECT_NE(path0, path1); |
92 | 92 |
93 EXPECT_TRUE(base::PathExists(kFSDir.Append(kOriginDatabaseName))); | 93 EXPECT_TRUE(base::PathExists(kFSDir.Append(kOriginDatabaseName))); |
94 } | 94 } |
95 | 95 |
96 TEST(SandboxOriginDatabaseTest, DropDatabaseTest) { | 96 TEST(SandboxOriginDatabaseTest, DropDatabaseTest) { |
97 base::ScopedTempDir dir; | 97 base::ScopedTempDir dir; |
98 ASSERT_TRUE(dir.CreateUniqueTempDir()); | 98 ASSERT_TRUE(dir.CreateUniqueTempDir()); |
99 const base::FilePath kFSDir = dir.path().Append(kFileSystemDirName); | 99 const base::FilePath kFSDir = dir.GetPath().Append(kFileSystemDirName); |
100 EXPECT_FALSE(base::PathExists(kFSDir)); | 100 EXPECT_FALSE(base::PathExists(kFSDir)); |
101 EXPECT_TRUE(base::CreateDirectory(kFSDir)); | 101 EXPECT_TRUE(base::CreateDirectory(kFSDir)); |
102 | 102 |
103 SandboxOriginDatabase database(kFSDir, NULL); | 103 SandboxOriginDatabase database(kFSDir, NULL); |
104 std::string origin("origin"); | 104 std::string origin("origin"); |
105 | 105 |
106 EXPECT_FALSE(database.HasOriginPath(origin)); | 106 EXPECT_FALSE(database.HasOriginPath(origin)); |
107 | 107 |
108 base::FilePath path0; | 108 base::FilePath path0; |
109 EXPECT_TRUE(database.GetPathForOrigin(origin, &path0)); | 109 EXPECT_TRUE(database.GetPathForOrigin(origin, &path0)); |
110 EXPECT_TRUE(database.HasOriginPath(origin)); | 110 EXPECT_TRUE(database.HasOriginPath(origin)); |
111 EXPECT_FALSE(path0.empty()); | 111 EXPECT_FALSE(path0.empty()); |
112 | 112 |
113 EXPECT_TRUE(base::PathExists(kFSDir.Append(kOriginDatabaseName))); | 113 EXPECT_TRUE(base::PathExists(kFSDir.Append(kOriginDatabaseName))); |
114 | 114 |
115 database.DropDatabase(); | 115 database.DropDatabase(); |
116 | 116 |
117 base::FilePath path1; | 117 base::FilePath path1; |
118 EXPECT_TRUE(database.HasOriginPath(origin)); | 118 EXPECT_TRUE(database.HasOriginPath(origin)); |
119 EXPECT_TRUE(database.GetPathForOrigin(origin, &path1)); | 119 EXPECT_TRUE(database.GetPathForOrigin(origin, &path1)); |
120 EXPECT_FALSE(path1.empty()); | 120 EXPECT_FALSE(path1.empty()); |
121 EXPECT_EQ(path0, path1); | 121 EXPECT_EQ(path0, path1); |
122 } | 122 } |
123 | 123 |
124 TEST(SandboxOriginDatabaseTest, DeleteOriginTest) { | 124 TEST(SandboxOriginDatabaseTest, DeleteOriginTest) { |
125 base::ScopedTempDir dir; | 125 base::ScopedTempDir dir; |
126 ASSERT_TRUE(dir.CreateUniqueTempDir()); | 126 ASSERT_TRUE(dir.CreateUniqueTempDir()); |
127 const base::FilePath kFSDir = dir.path().Append(kFileSystemDirName); | 127 const base::FilePath kFSDir = dir.GetPath().Append(kFileSystemDirName); |
128 EXPECT_FALSE(base::PathExists(kFSDir)); | 128 EXPECT_FALSE(base::PathExists(kFSDir)); |
129 EXPECT_TRUE(base::CreateDirectory(kFSDir)); | 129 EXPECT_TRUE(base::CreateDirectory(kFSDir)); |
130 | 130 |
131 SandboxOriginDatabase database(kFSDir, NULL); | 131 SandboxOriginDatabase database(kFSDir, NULL); |
132 std::string origin("origin"); | 132 std::string origin("origin"); |
133 | 133 |
134 EXPECT_FALSE(database.HasOriginPath(origin)); | 134 EXPECT_FALSE(database.HasOriginPath(origin)); |
135 EXPECT_TRUE(database.RemovePathForOrigin(origin)); | 135 EXPECT_TRUE(database.RemovePathForOrigin(origin)); |
136 | 136 |
137 base::FilePath path0; | 137 base::FilePath path0; |
138 EXPECT_TRUE(database.GetPathForOrigin(origin, &path0)); | 138 EXPECT_TRUE(database.GetPathForOrigin(origin, &path0)); |
139 EXPECT_TRUE(database.HasOriginPath(origin)); | 139 EXPECT_TRUE(database.HasOriginPath(origin)); |
140 EXPECT_FALSE(path0.empty()); | 140 EXPECT_FALSE(path0.empty()); |
141 | 141 |
142 EXPECT_TRUE(database.RemovePathForOrigin(origin)); | 142 EXPECT_TRUE(database.RemovePathForOrigin(origin)); |
143 EXPECT_FALSE(database.HasOriginPath(origin)); | 143 EXPECT_FALSE(database.HasOriginPath(origin)); |
144 | 144 |
145 base::FilePath path1; | 145 base::FilePath path1; |
146 EXPECT_TRUE(database.GetPathForOrigin(origin, &path1)); | 146 EXPECT_TRUE(database.GetPathForOrigin(origin, &path1)); |
147 EXPECT_FALSE(path1.empty()); | 147 EXPECT_FALSE(path1.empty()); |
148 EXPECT_NE(path0, path1); | 148 EXPECT_NE(path0, path1); |
149 } | 149 } |
150 | 150 |
151 TEST(SandboxOriginDatabaseTest, ListOriginsTest) { | 151 TEST(SandboxOriginDatabaseTest, ListOriginsTest) { |
152 base::ScopedTempDir dir; | 152 base::ScopedTempDir dir; |
153 ASSERT_TRUE(dir.CreateUniqueTempDir()); | 153 ASSERT_TRUE(dir.CreateUniqueTempDir()); |
154 const base::FilePath kFSDir = dir.path().Append(kFileSystemDirName); | 154 const base::FilePath kFSDir = dir.GetPath().Append(kFileSystemDirName); |
155 EXPECT_FALSE(base::PathExists(kFSDir)); | 155 EXPECT_FALSE(base::PathExists(kFSDir)); |
156 EXPECT_TRUE(base::CreateDirectory(kFSDir)); | 156 EXPECT_TRUE(base::CreateDirectory(kFSDir)); |
157 | 157 |
158 std::vector<SandboxOriginDatabase::OriginRecord> origins; | 158 std::vector<SandboxOriginDatabase::OriginRecord> origins; |
159 | 159 |
160 SandboxOriginDatabase database(kFSDir, NULL); | 160 SandboxOriginDatabase database(kFSDir, NULL); |
161 EXPECT_TRUE(database.ListAllOrigins(&origins)); | 161 EXPECT_TRUE(database.ListAllOrigins(&origins)); |
162 EXPECT_TRUE(origins.empty()); | 162 EXPECT_TRUE(origins.empty()); |
163 origins.clear(); | 163 origins.clear(); |
164 | 164 |
(...skipping 28 matching lines...) Expand all Loading... |
193 | 193 |
194 TEST(SandboxOriginDatabaseTest, DatabaseRecoveryTest) { | 194 TEST(SandboxOriginDatabaseTest, DatabaseRecoveryTest) { |
195 // Checks if SandboxOriginDatabase properly handles database corruption. | 195 // Checks if SandboxOriginDatabase properly handles database corruption. |
196 // In this test, we'll register some origins to the origin database, then | 196 // In this test, we'll register some origins to the origin database, then |
197 // corrupt database and its log file. | 197 // corrupt database and its log file. |
198 // After repairing, the origin database should be consistent even when some | 198 // After repairing, the origin database should be consistent even when some |
199 // entries lost. | 199 // entries lost. |
200 | 200 |
201 base::ScopedTempDir dir; | 201 base::ScopedTempDir dir; |
202 ASSERT_TRUE(dir.CreateUniqueTempDir()); | 202 ASSERT_TRUE(dir.CreateUniqueTempDir()); |
203 const base::FilePath kFSDir = dir.path().Append(kFileSystemDirName); | 203 const base::FilePath kFSDir = dir.GetPath().Append(kFileSystemDirName); |
204 const base::FilePath kDBDir = kFSDir.Append(kOriginDatabaseName); | 204 const base::FilePath kDBDir = kFSDir.Append(kOriginDatabaseName); |
205 EXPECT_FALSE(base::PathExists(kFSDir)); | 205 EXPECT_FALSE(base::PathExists(kFSDir)); |
206 EXPECT_TRUE(base::CreateDirectory(kFSDir)); | 206 EXPECT_TRUE(base::CreateDirectory(kFSDir)); |
207 | 207 |
208 const std::string kOrigins[] = { | 208 const std::string kOrigins[] = { |
209 "foo.example.com", | 209 "foo.example.com", |
210 "bar.example.com", | 210 "bar.example.com", |
211 "baz.example.com", | 211 "baz.example.com", |
212 "hoge.example.com", | 212 "hoge.example.com", |
213 "fuga.example.com", | 213 "fuga.example.com", |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
268 leveldb::kTableFile, | 268 leveldb::kTableFile, |
269 leveldb::kDescriptorFile, | 269 leveldb::kDescriptorFile, |
270 leveldb::kCurrentFile, | 270 leveldb::kCurrentFile, |
271 leveldb::kTempFile, | 271 leveldb::kTempFile, |
272 leveldb::kInfoLogFile, | 272 leveldb::kInfoLogFile, |
273 }; | 273 }; |
274 | 274 |
275 for (size_t i = 0; i < arraysize(kLevelDBFileTypes); ++i) { | 275 for (size_t i = 0; i < arraysize(kLevelDBFileTypes); ++i) { |
276 base::ScopedTempDir dir; | 276 base::ScopedTempDir dir; |
277 ASSERT_TRUE(dir.CreateUniqueTempDir()); | 277 ASSERT_TRUE(dir.CreateUniqueTempDir()); |
278 const base::FilePath kFSDir = dir.path().Append(kFileSystemDirName); | 278 const base::FilePath kFSDir = dir.GetPath().Append(kFileSystemDirName); |
279 const base::FilePath kDBDir = kFSDir.Append(kOriginDatabaseName); | 279 const base::FilePath kDBDir = kFSDir.Append(kOriginDatabaseName); |
280 EXPECT_FALSE(base::PathExists(kFSDir)); | 280 EXPECT_FALSE(base::PathExists(kFSDir)); |
281 EXPECT_TRUE(base::CreateDirectory(kFSDir)); | 281 EXPECT_TRUE(base::CreateDirectory(kFSDir)); |
282 | 282 |
283 const std::string kOrigin = "foo.example.com"; | 283 const std::string kOrigin = "foo.example.com"; |
284 base::FilePath path; | 284 base::FilePath path; |
285 | 285 |
286 std::unique_ptr<SandboxOriginDatabase> database( | 286 std::unique_ptr<SandboxOriginDatabase> database( |
287 new SandboxOriginDatabase(kFSDir, NULL)); | 287 new SandboxOriginDatabase(kFSDir, NULL)); |
288 EXPECT_FALSE(database->HasOriginPath(kOrigin)); | 288 EXPECT_FALSE(database->HasOriginPath(kOrigin)); |
(...skipping 11 matching lines...) Expand all Loading... |
300 | 300 |
301 const std::string kOrigin2("piyo.example.org"); | 301 const std::string kOrigin2("piyo.example.org"); |
302 EXPECT_FALSE(database->HasOriginPath(kOrigin2)); | 302 EXPECT_FALSE(database->HasOriginPath(kOrigin2)); |
303 EXPECT_TRUE(database->GetPathForOrigin(kOrigin2, &path)); | 303 EXPECT_TRUE(database->GetPathForOrigin(kOrigin2, &path)); |
304 EXPECT_FALSE(path.empty()); | 304 EXPECT_FALSE(path.empty()); |
305 EXPECT_TRUE(database->HasOriginPath(kOrigin2)); | 305 EXPECT_TRUE(database->HasOriginPath(kOrigin2)); |
306 } | 306 } |
307 } | 307 } |
308 | 308 |
309 } // namespace content | 309 } // namespace content |
OLD | NEW |