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

Side by Side Diff: content/browser/fileapi/local_file_util_unittest.cc

Issue 274903002: Remove PlatformFile from fileapi::FileSystemFileUtil (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/file_util.h" 7 #include "base/file_util.h"
8 #include "base/files/file.h" 8 #include "base/files/file.h"
9 #include "base/files/file_path.h" 9 #include "base/files/file_path.h"
10 #include "base/files/scoped_temp_dir.h" 10 #include "base/files/scoped_temp_dir.h"
11 #include "base/message_loop/message_loop_proxy.h" 11 #include "base/message_loop/message_loop_proxy.h"
12 #include "base/platform_file.h"
13 #include "base/run_loop.h" 12 #include "base/run_loop.h"
14 #include "base/strings/sys_string_conversions.h" 13 #include "base/strings/sys_string_conversions.h"
15 #include "base/strings/utf_string_conversions.h" 14 #include "base/strings/utf_string_conversions.h"
16 #include "content/public/test/async_file_test_helper.h" 15 #include "content/public/test/async_file_test_helper.h"
17 #include "content/public/test/test_file_system_context.h" 16 #include "content/public/test/test_file_system_context.h"
18 #include "testing/gtest/include/gtest/gtest.h" 17 #include "testing/gtest/include/gtest/gtest.h"
19 #include "webkit/browser/fileapi/async_file_util_adapter.h" 18 #include "webkit/browser/fileapi/async_file_util_adapter.h"
20 #include "webkit/browser/fileapi/file_system_context.h" 19 #include "webkit/browser/fileapi/file_system_context.h"
21 #include "webkit/browser/fileapi/file_system_file_util.h" 20 #include "webkit/browser/fileapi/file_system_file_util.h"
22 #include "webkit/browser/fileapi/file_system_operation_context.h" 21 #include "webkit/browser/fileapi/file_system_operation_context.h"
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 bool DirectoryExists(const char *file_name) { 90 bool DirectoryExists(const char *file_name) {
92 return base::DirectoryExists(LocalPath(file_name)); 91 return base::DirectoryExists(LocalPath(file_name));
93 } 92 }
94 93
95 int64 GetSize(const char *file_name) { 94 int64 GetSize(const char *file_name) {
96 base::File::Info info; 95 base::File::Info info;
97 base::GetFileInfo(LocalPath(file_name), &info); 96 base::GetFileInfo(LocalPath(file_name), &info);
98 return info.size; 97 return info.size;
99 } 98 }
100 99
101 base::File::Error CreateFile(const char* file_name, 100 base::File CreateFile(const char* file_name) {
102 base::PlatformFile* file_handle, 101 int file_flags = base::File::FLAG_CREATE |
103 bool* created) { 102 base::File::FLAG_WRITE | base::File::FLAG_ASYNC;
104 int file_flags = base::PLATFORM_FILE_CREATE |
105 base::PLATFORM_FILE_WRITE | base::PLATFORM_FILE_ASYNC;
106 103
107 scoped_ptr<FileSystemOperationContext> context(NewContext()); 104 scoped_ptr<FileSystemOperationContext> context(NewContext());
108 return file_util()->CreateOrOpen( 105 return file_util()->CreateOrOpen(context.get(), CreateURL(file_name),
109 context.get(), 106 file_flags);
110 CreateURL(file_name),
111 file_flags, file_handle, created);
112 } 107 }
113 108
114 base::File::Error EnsureFileExists(const char* file_name, 109 base::File::Error EnsureFileExists(const char* file_name,
115 bool* created) { 110 bool* created) {
116 scoped_ptr<FileSystemOperationContext> context(NewContext()); 111 scoped_ptr<FileSystemOperationContext> context(NewContext());
117 return file_util()->EnsureFileExists( 112 return file_util()->EnsureFileExists(context.get(),
118 context.get(), 113 CreateURL(file_name), created);
119 CreateURL(file_name), created);
120 } 114 }
121 115
122 FileSystemContext* file_system_context() { 116 FileSystemContext* file_system_context() {
123 return file_system_context_.get(); 117 return file_system_context_.get();
124 } 118 }
125 119
126 private: 120 private:
127 base::MessageLoop message_loop_; 121 base::MessageLoop message_loop_;
128 scoped_refptr<FileSystemContext> file_system_context_; 122 scoped_refptr<FileSystemContext> file_system_context_;
129 base::ScopedTempDir data_dir_; 123 base::ScopedTempDir data_dir_;
130 124
131 DISALLOW_COPY_AND_ASSIGN(LocalFileUtilTest); 125 DISALLOW_COPY_AND_ASSIGN(LocalFileUtilTest);
132 }; 126 };
133 127
134 TEST_F(LocalFileUtilTest, CreateAndClose) { 128 TEST_F(LocalFileUtilTest, CreateAndClose) {
135 const char *file_name = "test_file"; 129 const char *file_name = "test_file";
136 base::PlatformFile file_handle; 130 base::File file = CreateFile(file_name);
137 bool created; 131 ASSERT_TRUE(file.IsValid());
138 ASSERT_EQ(base::File::FILE_OK, 132 ASSERT_TRUE(file.created());
139 CreateFile(file_name, &file_handle, &created));
140 ASSERT_TRUE(created);
141 133
142 EXPECT_TRUE(FileExists(file_name)); 134 EXPECT_TRUE(FileExists(file_name));
143 EXPECT_EQ(0, GetSize(file_name)); 135 EXPECT_EQ(0, GetSize(file_name));
144 136
145 scoped_ptr<FileSystemOperationContext> context(NewContext()); 137 scoped_ptr<FileSystemOperationContext> context(NewContext());
146 EXPECT_EQ(base::File::FILE_OK,
147 file_util()->Close(context.get(), file_handle));
148 } 138 }
149 139
150 // base::CreateSymbolicLink is only supported on POSIX. 140 // base::CreateSymbolicLink is only supported on POSIX.
151 #if defined(OS_POSIX) 141 #if defined(OS_POSIX)
152 TEST_F(LocalFileUtilTest, CreateFailForSymlink) { 142 TEST_F(LocalFileUtilTest, CreateFailForSymlink) {
153 // Create symlink target file. 143 // Create symlink target file.
154 const char *target_name = "symlink_target"; 144 const char *target_name = "symlink_target";
155 base::PlatformFile target_handle; 145 base::File target_file = CreateFile(target_name);
156 bool symlink_target_created = false; 146 ASSERT_TRUE(target_file.IsValid());
157 ASSERT_EQ(base::File::FILE_OK, 147 ASSERT_TRUE(target_file.created());
158 CreateFile(target_name, &target_handle, &symlink_target_created));
159 ASSERT_TRUE(symlink_target_created);
160 base::FilePath target_path = LocalPath(target_name); 148 base::FilePath target_path = LocalPath(target_name);
161 149
162 // Create symlink where target must be real file. 150 // Create symlink where target must be real file.
163 const char *symlink_name = "symlink_file"; 151 const char *symlink_name = "symlink_file";
164 base::FilePath symlink_path = LocalPath(symlink_name); 152 base::FilePath symlink_path = LocalPath(symlink_name);
165 ASSERT_TRUE(base::CreateSymbolicLink(target_path, symlink_path)); 153 ASSERT_TRUE(base::CreateSymbolicLink(target_path, symlink_path));
166 ASSERT_TRUE(FileExists(symlink_name)); 154 ASSERT_TRUE(FileExists(symlink_name));
167 155
168 // Try to open the symlink file which should fail. 156 // Try to open the symlink file which should fail.
169 scoped_ptr<FileSystemOperationContext> context(NewContext()); 157 scoped_ptr<FileSystemOperationContext> context(NewContext());
170 FileSystemURL url = CreateURL(symlink_name); 158 FileSystemURL url = CreateURL(symlink_name);
171 int file_flags = base::PLATFORM_FILE_OPEN | base::PLATFORM_FILE_READ; 159 int file_flags = base::File::FLAG_OPEN | base::File::FLAG_READ;
172 base::PlatformFile file_handle; 160 base::File file = file_util()->CreateOrOpen(context.get(), url, file_flags);
173 bool created = false; 161 ASSERT_FALSE(file.IsValid());
174 EXPECT_EQ(base::File::FILE_ERROR_NOT_FOUND, 162 EXPECT_EQ(base::File::FILE_ERROR_NOT_FOUND, file.error_details());
175 file_util()->CreateOrOpen(context.get(), url, file_flags,
176 &file_handle, &created));
177 EXPECT_FALSE(created);
178 } 163 }
179 #endif 164 #endif
180 165
181 TEST_F(LocalFileUtilTest, EnsureFileExists) { 166 TEST_F(LocalFileUtilTest, EnsureFileExists) {
182 const char *file_name = "foobar"; 167 const char *file_name = "foobar";
183 bool created; 168 bool created;
184 ASSERT_EQ(base::File::FILE_OK, EnsureFileExists(file_name, &created)); 169 ASSERT_EQ(base::File::FILE_OK, EnsureFileExists(file_name, &created));
185 ASSERT_TRUE(created); 170 ASSERT_TRUE(created);
186 171
187 EXPECT_TRUE(FileExists(file_name)); 172 EXPECT_TRUE(FileExists(file_name));
188 EXPECT_EQ(0, GetSize(file_name)); 173 EXPECT_EQ(0, GetSize(file_name));
189 174
190 ASSERT_EQ(base::File::FILE_OK, EnsureFileExists(file_name, &created)); 175 ASSERT_EQ(base::File::FILE_OK, EnsureFileExists(file_name, &created));
191 EXPECT_FALSE(created); 176 EXPECT_FALSE(created);
192 } 177 }
193 178
194 TEST_F(LocalFileUtilTest, TouchFile) { 179 TEST_F(LocalFileUtilTest, TouchFile) {
195 const char *file_name = "test_file"; 180 const char *file_name = "test_file";
196 base::PlatformFile file_handle; 181 base::File file = CreateFile(file_name);
197 bool created; 182 ASSERT_TRUE(file.IsValid());
198 ASSERT_EQ(base::File::FILE_OK, 183 ASSERT_TRUE(file.created());
199 CreateFile(file_name, &file_handle, &created));
200 ASSERT_TRUE(created);
201 184
202 scoped_ptr<FileSystemOperationContext> context(NewContext()); 185 scoped_ptr<FileSystemOperationContext> context(NewContext());
203 186
204 base::File::Info info; 187 base::File::Info info;
205 ASSERT_TRUE(base::GetFileInfo(LocalPath(file_name), &info)); 188 ASSERT_TRUE(base::GetFileInfo(LocalPath(file_name), &info));
206 const base::Time new_accessed = 189 const base::Time new_accessed =
207 info.last_accessed + base::TimeDelta::FromHours(10); 190 info.last_accessed + base::TimeDelta::FromHours(10);
208 const base::Time new_modified = 191 const base::Time new_modified =
209 info.last_modified + base::TimeDelta::FromHours(5); 192 info.last_modified + base::TimeDelta::FromHours(5);
210 193
211 EXPECT_EQ(base::File::FILE_OK, 194 EXPECT_EQ(base::File::FILE_OK,
212 file_util()->Touch(context.get(), CreateURL(file_name), 195 file_util()->Touch(context.get(), CreateURL(file_name),
213 new_accessed, new_modified)); 196 new_accessed, new_modified));
214 197
215 ASSERT_TRUE(base::GetFileInfo(LocalPath(file_name), &info)); 198 ASSERT_TRUE(base::GetFileInfo(LocalPath(file_name), &info));
216 EXPECT_EQ(new_accessed, info.last_accessed); 199 EXPECT_EQ(new_accessed, info.last_accessed);
217 EXPECT_EQ(new_modified, info.last_modified); 200 EXPECT_EQ(new_modified, info.last_modified);
218
219 EXPECT_EQ(base::File::FILE_OK,
220 file_util()->Close(context.get(), file_handle));
221 } 201 }
222 202
223 TEST_F(LocalFileUtilTest, TouchDirectory) { 203 TEST_F(LocalFileUtilTest, TouchDirectory) {
224 const char *dir_name = "test_dir"; 204 const char *dir_name = "test_dir";
225 scoped_ptr<FileSystemOperationContext> context(NewContext()); 205 scoped_ptr<FileSystemOperationContext> context(NewContext());
226 ASSERT_EQ(base::File::FILE_OK, 206 ASSERT_EQ(base::File::FILE_OK,
227 file_util()->CreateDirectory(context.get(), 207 file_util()->CreateDirectory(context.get(),
228 CreateURL(dir_name), 208 CreateURL(dir_name),
229 false /* exclusive */, 209 false /* exclusive */,
230 false /* recursive */)); 210 false /* recursive */));
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
389 CreateURL(from_dir), 369 CreateURL(from_dir),
390 CreateURL(to_dir))); 370 CreateURL(to_dir)));
391 371
392 EXPECT_FALSE(DirectoryExists(from_dir)); 372 EXPECT_FALSE(DirectoryExists(from_dir));
393 EXPECT_TRUE(DirectoryExists(to_dir)); 373 EXPECT_TRUE(DirectoryExists(to_dir));
394 EXPECT_TRUE(FileExists(to_file)); 374 EXPECT_TRUE(FileExists(to_file));
395 EXPECT_EQ(1020, GetSize(to_file)); 375 EXPECT_EQ(1020, GetSize(to_file));
396 } 376 }
397 377
398 } // namespace content 378 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698