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

Side by Side Diff: base/files/file_util_proxy_unittest.cc

Issue 1647803004: Move base to DEPS (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 4 years, 10 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
« no previous file with comments | « base/files/file_util_proxy.cc ('k') | base/files/file_util_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "base/files/file_util_proxy.h"
6
7 #include "base/bind.h"
8 #include "base/files/file_util.h"
9 #include "base/files/scoped_temp_dir.h"
10 #include "base/memory/weak_ptr.h"
11 #include "base/threading/thread.h"
12 #include "testing/gtest/include/gtest/gtest.h"
13
14 namespace base {
15
16 class FileUtilProxyTest : public testing::Test {
17 public:
18 FileUtilProxyTest()
19 : file_thread_("FileUtilProxyTestFileThread"),
20 error_(File::FILE_OK),
21 weak_factory_(this) {}
22
23 void SetUp() override {
24 ASSERT_TRUE(dir_.CreateUniqueTempDir());
25 ASSERT_TRUE(file_thread_.Start());
26 }
27
28 void DidFinish(File::Error error) {
29 error_ = error;
30 MessageLoop::current()->QuitWhenIdle();
31 }
32
33 void DidGetFileInfo(File::Error error,
34 const File::Info& file_info) {
35 error_ = error;
36 file_info_ = file_info;
37 MessageLoop::current()->QuitWhenIdle();
38 }
39
40 protected:
41 TaskRunner* file_task_runner() const {
42 return file_thread_.task_runner().get();
43 }
44 const FilePath& test_dir_path() const { return dir_.path(); }
45 const FilePath test_path() const { return dir_.path().AppendASCII("test"); }
46
47 MessageLoopForIO message_loop_;
48 Thread file_thread_;
49
50 ScopedTempDir dir_;
51 File::Error error_;
52 FilePath path_;
53 File::Info file_info_;
54 std::vector<char> buffer_;
55 WeakPtrFactory<FileUtilProxyTest> weak_factory_;
56 };
57
58
59 TEST_F(FileUtilProxyTest, GetFileInfo_File) {
60 // Setup.
61 ASSERT_EQ(4, WriteFile(test_path(), "test", 4));
62 File::Info expected_info;
63 GetFileInfo(test_path(), &expected_info);
64
65 // Run.
66 FileUtilProxy::GetFileInfo(
67 file_task_runner(),
68 test_path(),
69 Bind(&FileUtilProxyTest::DidGetFileInfo, weak_factory_.GetWeakPtr()));
70 MessageLoop::current()->Run();
71
72 // Verify.
73 EXPECT_EQ(File::FILE_OK, error_);
74 EXPECT_EQ(expected_info.size, file_info_.size);
75 EXPECT_EQ(expected_info.is_directory, file_info_.is_directory);
76 EXPECT_EQ(expected_info.is_symbolic_link, file_info_.is_symbolic_link);
77 EXPECT_EQ(expected_info.last_modified, file_info_.last_modified);
78 EXPECT_EQ(expected_info.last_accessed, file_info_.last_accessed);
79 EXPECT_EQ(expected_info.creation_time, file_info_.creation_time);
80 }
81
82 TEST_F(FileUtilProxyTest, GetFileInfo_Directory) {
83 // Setup.
84 ASSERT_TRUE(base::CreateDirectory(test_path()));
85 File::Info expected_info;
86 GetFileInfo(test_path(), &expected_info);
87
88 // Run.
89 FileUtilProxy::GetFileInfo(
90 file_task_runner(),
91 test_path(),
92 Bind(&FileUtilProxyTest::DidGetFileInfo, weak_factory_.GetWeakPtr()));
93 MessageLoop::current()->Run();
94
95 // Verify.
96 EXPECT_EQ(File::FILE_OK, error_);
97 EXPECT_EQ(expected_info.size, file_info_.size);
98 EXPECT_EQ(expected_info.is_directory, file_info_.is_directory);
99 EXPECT_EQ(expected_info.is_symbolic_link, file_info_.is_symbolic_link);
100 EXPECT_EQ(expected_info.last_modified, file_info_.last_modified);
101 EXPECT_EQ(expected_info.last_accessed, file_info_.last_accessed);
102 EXPECT_EQ(expected_info.creation_time, file_info_.creation_time);
103 }
104
105 TEST_F(FileUtilProxyTest, Touch) {
106 ASSERT_EQ(4, WriteFile(test_path(), "test", 4));
107 Time last_accessed_time = Time::Now() - TimeDelta::FromDays(12345);
108 Time last_modified_time = Time::Now() - TimeDelta::FromHours(98765);
109
110 FileUtilProxy::Touch(
111 file_task_runner(),
112 test_path(),
113 last_accessed_time,
114 last_modified_time,
115 Bind(&FileUtilProxyTest::DidFinish, weak_factory_.GetWeakPtr()));
116 MessageLoop::current()->Run();
117 EXPECT_EQ(File::FILE_OK, error_);
118
119 File::Info info;
120 GetFileInfo(test_path(), &info);
121
122 // The returned values may only have the seconds precision, so we cast
123 // the double values to int here.
124 EXPECT_EQ(static_cast<int>(last_modified_time.ToDoubleT()),
125 static_cast<int>(info.last_modified.ToDoubleT()));
126 EXPECT_EQ(static_cast<int>(last_accessed_time.ToDoubleT()),
127 static_cast<int>(info.last_accessed.ToDoubleT()));
128 }
129
130 } // namespace base
OLDNEW
« no previous file with comments | « base/files/file_util_proxy.cc ('k') | base/files/file_util_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698