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

Side by Side Diff: webkit/fileapi/file_system_origin_database_unittest.cc

Issue 11359217: Move scoped_temp_dir from base to base/files (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 1 month 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 <algorithm> 5 #include <algorithm>
6 #include <functional> 6 #include <functional>
7 #include <limits> 7 #include <limits>
8 #include <string> 8 #include <string>
9 9
10 #include "base/file_path.h" 10 #include "base/file_path.h"
11 #include "base/file_util.h" 11 #include "base/file_util.h"
12 #include "base/files/scoped_temp_dir.h"
12 #include "base/platform_file.h" 13 #include "base/platform_file.h"
13 #include "base/scoped_temp_dir.h"
14 #include "base/stl_util.h" 14 #include "base/stl_util.h"
15 #include "testing/gtest/include/gtest/gtest.h" 15 #include "testing/gtest/include/gtest/gtest.h"
16 #include "third_party/leveldatabase/src/db/filename.h" 16 #include "third_party/leveldatabase/src/db/filename.h"
17 #include "third_party/leveldatabase/src/include/leveldb/db.h" 17 #include "third_party/leveldatabase/src/include/leveldb/db.h"
18 #include "webkit/fileapi/file_system_database_test_helper.h" 18 #include "webkit/fileapi/file_system_database_test_helper.h"
19 #include "webkit/fileapi/file_system_origin_database.h" 19 #include "webkit/fileapi/file_system_origin_database.h"
20 #include "webkit/fileapi/file_system_util.h" 20 #include "webkit/fileapi/file_system_util.h"
21 21
22 namespace fileapi { 22 namespace fileapi {
23 23
24 namespace { 24 namespace {
25 const FilePath::CharType kFileSystemDirName[] = 25 const FilePath::CharType kFileSystemDirName[] =
26 FILE_PATH_LITERAL("File System"); 26 FILE_PATH_LITERAL("File System");
27 const FilePath::CharType kOriginDatabaseName[] = FILE_PATH_LITERAL("Origins"); 27 const FilePath::CharType kOriginDatabaseName[] = FILE_PATH_LITERAL("Origins");
28 } // namespace 28 } // namespace
29 29
30 TEST(FileSystemOriginDatabaseTest, BasicTest) { 30 TEST(FileSystemOriginDatabaseTest, BasicTest) {
31 ScopedTempDir dir; 31 base::ScopedTempDir dir;
32 ASSERT_TRUE(dir.CreateUniqueTempDir()); 32 ASSERT_TRUE(dir.CreateUniqueTempDir());
33 const FilePath kFSDir = dir.path().Append(kFileSystemDirName); 33 const FilePath kFSDir = dir.path().Append(kFileSystemDirName);
34 EXPECT_FALSE(file_util::PathExists(kFSDir)); 34 EXPECT_FALSE(file_util::PathExists(kFSDir));
35 EXPECT_TRUE(file_util::CreateDirectory(kFSDir)); 35 EXPECT_TRUE(file_util::CreateDirectory(kFSDir));
36 36
37 FileSystemOriginDatabase database(kFSDir); 37 FileSystemOriginDatabase database(kFSDir);
38 std::string origin("origin"); 38 std::string origin("origin");
39 39
40 EXPECT_FALSE(database.HasOriginPath(origin)); 40 EXPECT_FALSE(database.HasOriginPath(origin));
41 // Double-check to make sure that had no side effects. 41 // Double-check to make sure that had no side effects.
42 EXPECT_FALSE(database.HasOriginPath(origin)); 42 EXPECT_FALSE(database.HasOriginPath(origin));
43 43
44 FilePath path0; 44 FilePath path0;
45 FilePath path1; 45 FilePath path1;
46 46
47 // Empty strings aren't valid origins. 47 // Empty strings aren't valid origins.
48 EXPECT_FALSE(database.GetPathForOrigin(std::string(), &path0)); 48 EXPECT_FALSE(database.GetPathForOrigin(std::string(), &path0));
49 49
50 EXPECT_TRUE(database.GetPathForOrigin(origin, &path0)); 50 EXPECT_TRUE(database.GetPathForOrigin(origin, &path0));
51 EXPECT_TRUE(database.HasOriginPath(origin)); 51 EXPECT_TRUE(database.HasOriginPath(origin));
52 EXPECT_TRUE(database.GetPathForOrigin(origin, &path1)); 52 EXPECT_TRUE(database.GetPathForOrigin(origin, &path1));
53 EXPECT_FALSE(path0.empty()); 53 EXPECT_FALSE(path0.empty());
54 EXPECT_FALSE(path1.empty()); 54 EXPECT_FALSE(path1.empty());
55 EXPECT_EQ(path0, path1); 55 EXPECT_EQ(path0, path1);
56 56
57 EXPECT_TRUE(file_util::PathExists(kFSDir.Append(kOriginDatabaseName))); 57 EXPECT_TRUE(file_util::PathExists(kFSDir.Append(kOriginDatabaseName)));
58 } 58 }
59 59
60 TEST(FileSystemOriginDatabaseTest, TwoPathTest) { 60 TEST(FileSystemOriginDatabaseTest, TwoPathTest) {
61 ScopedTempDir dir; 61 base::ScopedTempDir dir;
62 ASSERT_TRUE(dir.CreateUniqueTempDir()); 62 ASSERT_TRUE(dir.CreateUniqueTempDir());
63 const FilePath kFSDir = dir.path().Append(kFileSystemDirName); 63 const FilePath kFSDir = dir.path().Append(kFileSystemDirName);
64 EXPECT_FALSE(file_util::PathExists(kFSDir)); 64 EXPECT_FALSE(file_util::PathExists(kFSDir));
65 EXPECT_TRUE(file_util::CreateDirectory(kFSDir)); 65 EXPECT_TRUE(file_util::CreateDirectory(kFSDir));
66 66
67 FileSystemOriginDatabase database(kFSDir); 67 FileSystemOriginDatabase database(kFSDir);
68 std::string origin0("origin0"); 68 std::string origin0("origin0");
69 std::string origin1("origin1"); 69 std::string origin1("origin1");
70 70
71 EXPECT_FALSE(database.HasOriginPath(origin0)); 71 EXPECT_FALSE(database.HasOriginPath(origin0));
72 EXPECT_FALSE(database.HasOriginPath(origin1)); 72 EXPECT_FALSE(database.HasOriginPath(origin1));
73 73
74 FilePath path0; 74 FilePath path0;
75 FilePath path1; 75 FilePath path1;
76 EXPECT_TRUE(database.GetPathForOrigin(origin0, &path0)); 76 EXPECT_TRUE(database.GetPathForOrigin(origin0, &path0));
77 EXPECT_TRUE(database.HasOriginPath(origin0)); 77 EXPECT_TRUE(database.HasOriginPath(origin0));
78 EXPECT_FALSE(database.HasOriginPath(origin1)); 78 EXPECT_FALSE(database.HasOriginPath(origin1));
79 EXPECT_TRUE(database.GetPathForOrigin(origin1, &path1)); 79 EXPECT_TRUE(database.GetPathForOrigin(origin1, &path1));
80 EXPECT_TRUE(database.HasOriginPath(origin1)); 80 EXPECT_TRUE(database.HasOriginPath(origin1));
81 EXPECT_FALSE(path0.empty()); 81 EXPECT_FALSE(path0.empty());
82 EXPECT_FALSE(path1.empty()); 82 EXPECT_FALSE(path1.empty());
83 EXPECT_NE(path0, path1); 83 EXPECT_NE(path0, path1);
84 84
85 EXPECT_TRUE(file_util::PathExists(kFSDir.Append(kOriginDatabaseName))); 85 EXPECT_TRUE(file_util::PathExists(kFSDir.Append(kOriginDatabaseName)));
86 } 86 }
87 87
88 TEST(FileSystemOriginDatabaseTest, DropDatabaseTest) { 88 TEST(FileSystemOriginDatabaseTest, DropDatabaseTest) {
89 ScopedTempDir dir; 89 base::ScopedTempDir dir;
90 ASSERT_TRUE(dir.CreateUniqueTempDir()); 90 ASSERT_TRUE(dir.CreateUniqueTempDir());
91 const FilePath kFSDir = dir.path().Append(kFileSystemDirName); 91 const FilePath kFSDir = dir.path().Append(kFileSystemDirName);
92 EXPECT_FALSE(file_util::PathExists(kFSDir)); 92 EXPECT_FALSE(file_util::PathExists(kFSDir));
93 EXPECT_TRUE(file_util::CreateDirectory(kFSDir)); 93 EXPECT_TRUE(file_util::CreateDirectory(kFSDir));
94 94
95 FileSystemOriginDatabase database(kFSDir); 95 FileSystemOriginDatabase database(kFSDir);
96 std::string origin("origin"); 96 std::string origin("origin");
97 97
98 EXPECT_FALSE(database.HasOriginPath(origin)); 98 EXPECT_FALSE(database.HasOriginPath(origin));
99 99
100 FilePath path0; 100 FilePath path0;
101 EXPECT_TRUE(database.GetPathForOrigin(origin, &path0)); 101 EXPECT_TRUE(database.GetPathForOrigin(origin, &path0));
102 EXPECT_TRUE(database.HasOriginPath(origin)); 102 EXPECT_TRUE(database.HasOriginPath(origin));
103 EXPECT_FALSE(path0.empty()); 103 EXPECT_FALSE(path0.empty());
104 104
105 EXPECT_TRUE(file_util::PathExists(kFSDir.Append(kOriginDatabaseName))); 105 EXPECT_TRUE(file_util::PathExists(kFSDir.Append(kOriginDatabaseName)));
106 106
107 database.DropDatabase(); 107 database.DropDatabase();
108 108
109 FilePath path1; 109 FilePath path1;
110 EXPECT_TRUE(database.HasOriginPath(origin)); 110 EXPECT_TRUE(database.HasOriginPath(origin));
111 EXPECT_TRUE(database.GetPathForOrigin(origin, &path1)); 111 EXPECT_TRUE(database.GetPathForOrigin(origin, &path1));
112 EXPECT_FALSE(path1.empty()); 112 EXPECT_FALSE(path1.empty());
113 EXPECT_EQ(path0, path1); 113 EXPECT_EQ(path0, path1);
114 } 114 }
115 115
116 TEST(FileSystemOriginDatabaseTest, DeleteOriginTest) { 116 TEST(FileSystemOriginDatabaseTest, DeleteOriginTest) {
117 ScopedTempDir dir; 117 base::ScopedTempDir dir;
118 ASSERT_TRUE(dir.CreateUniqueTempDir()); 118 ASSERT_TRUE(dir.CreateUniqueTempDir());
119 const FilePath kFSDir = dir.path().Append(kFileSystemDirName); 119 const FilePath kFSDir = dir.path().Append(kFileSystemDirName);
120 EXPECT_FALSE(file_util::PathExists(kFSDir)); 120 EXPECT_FALSE(file_util::PathExists(kFSDir));
121 EXPECT_TRUE(file_util::CreateDirectory(kFSDir)); 121 EXPECT_TRUE(file_util::CreateDirectory(kFSDir));
122 122
123 FileSystemOriginDatabase database(kFSDir); 123 FileSystemOriginDatabase database(kFSDir);
124 std::string origin("origin"); 124 std::string origin("origin");
125 125
126 EXPECT_FALSE(database.HasOriginPath(origin)); 126 EXPECT_FALSE(database.HasOriginPath(origin));
127 EXPECT_TRUE(database.RemovePathForOrigin(origin)); 127 EXPECT_TRUE(database.RemovePathForOrigin(origin));
128 128
129 FilePath path0; 129 FilePath path0;
130 EXPECT_TRUE(database.GetPathForOrigin(origin, &path0)); 130 EXPECT_TRUE(database.GetPathForOrigin(origin, &path0));
131 EXPECT_TRUE(database.HasOriginPath(origin)); 131 EXPECT_TRUE(database.HasOriginPath(origin));
132 EXPECT_FALSE(path0.empty()); 132 EXPECT_FALSE(path0.empty());
133 133
134 EXPECT_TRUE(database.RemovePathForOrigin(origin)); 134 EXPECT_TRUE(database.RemovePathForOrigin(origin));
135 EXPECT_FALSE(database.HasOriginPath(origin)); 135 EXPECT_FALSE(database.HasOriginPath(origin));
136 136
137 FilePath path1; 137 FilePath path1;
138 EXPECT_TRUE(database.GetPathForOrigin(origin, &path1)); 138 EXPECT_TRUE(database.GetPathForOrigin(origin, &path1));
139 EXPECT_FALSE(path1.empty()); 139 EXPECT_FALSE(path1.empty());
140 EXPECT_NE(path0, path1); 140 EXPECT_NE(path0, path1);
141 } 141 }
142 142
143 TEST(FileSystemOriginDatabaseTest, ListOriginsTest) { 143 TEST(FileSystemOriginDatabaseTest, ListOriginsTest) {
144 ScopedTempDir dir; 144 base::ScopedTempDir dir;
145 ASSERT_TRUE(dir.CreateUniqueTempDir()); 145 ASSERT_TRUE(dir.CreateUniqueTempDir());
146 const FilePath kFSDir = dir.path().Append(kFileSystemDirName); 146 const FilePath kFSDir = dir.path().Append(kFileSystemDirName);
147 EXPECT_FALSE(file_util::PathExists(kFSDir)); 147 EXPECT_FALSE(file_util::PathExists(kFSDir));
148 EXPECT_TRUE(file_util::CreateDirectory(kFSDir)); 148 EXPECT_TRUE(file_util::CreateDirectory(kFSDir));
149 149
150 std::vector<FileSystemOriginDatabase::OriginRecord> origins; 150 std::vector<FileSystemOriginDatabase::OriginRecord> origins;
151 151
152 FileSystemOriginDatabase database(kFSDir); 152 FileSystemOriginDatabase database(kFSDir);
153 EXPECT_TRUE(database.ListAllOrigins(&origins)); 153 EXPECT_TRUE(database.ListAllOrigins(&origins));
154 EXPECT_TRUE(origins.empty()); 154 EXPECT_TRUE(origins.empty());
(...skipping 28 matching lines...) Expand all
183 } 183 }
184 } 184 }
185 185
186 TEST(FileSystemOriginDatabaseTest, DatabaseRecoveryTest) { 186 TEST(FileSystemOriginDatabaseTest, DatabaseRecoveryTest) {
187 // Checks if FileSystemOriginDatabase properly handles database corruption. 187 // Checks if FileSystemOriginDatabase properly handles database corruption.
188 // In this test, we'll register some origins to the origin database, then 188 // In this test, we'll register some origins to the origin database, then
189 // corrupt database and its log file. 189 // corrupt database and its log file.
190 // After repairing, the origin database should be consistent even when some 190 // After repairing, the origin database should be consistent even when some
191 // entries lost. 191 // entries lost.
192 192
193 ScopedTempDir dir; 193 base::ScopedTempDir dir;
194 ASSERT_TRUE(dir.CreateUniqueTempDir()); 194 ASSERT_TRUE(dir.CreateUniqueTempDir());
195 const FilePath kFSDir = dir.path().Append(kFileSystemDirName); 195 const FilePath kFSDir = dir.path().Append(kFileSystemDirName);
196 const FilePath kDBDir = kFSDir.Append(kOriginDatabaseName); 196 const FilePath kDBDir = kFSDir.Append(kOriginDatabaseName);
197 EXPECT_FALSE(file_util::PathExists(kFSDir)); 197 EXPECT_FALSE(file_util::PathExists(kFSDir));
198 EXPECT_TRUE(file_util::CreateDirectory(kFSDir)); 198 EXPECT_TRUE(file_util::CreateDirectory(kFSDir));
199 199
200 const std::string kOrigins[] = { 200 const std::string kOrigins[] = {
201 "foo.example.com", 201 "foo.example.com",
202 "bar.example.com", 202 "bar.example.com",
203 "baz.example.com", 203 "baz.example.com",
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
252 EXPECT_FALSE(database->HasOriginPath(kOrigin)); 252 EXPECT_FALSE(database->HasOriginPath(kOrigin));
253 EXPECT_TRUE(database->GetPathForOrigin(kOrigin, &path)); 253 EXPECT_TRUE(database->GetPathForOrigin(kOrigin, &path));
254 EXPECT_FALSE(path.empty()); 254 EXPECT_FALSE(path.empty());
255 EXPECT_TRUE(database->HasOriginPath(kOrigin)); 255 EXPECT_TRUE(database->HasOriginPath(kOrigin));
256 256
257 EXPECT_FALSE(file_util::PathExists(kGarbageFile)); 257 EXPECT_FALSE(file_util::PathExists(kGarbageFile));
258 EXPECT_FALSE(file_util::PathExists(kGarbageDir)); 258 EXPECT_FALSE(file_util::PathExists(kGarbageDir));
259 } 259 }
260 260
261 } // namespace fileapi 261 } // namespace fileapi
OLDNEW
« no previous file with comments | « webkit/fileapi/file_system_mount_point_provider_unittest.cc ('k') | webkit/fileapi/file_system_quota_client_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698