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

Side by Side Diff: chrome/browser/chromeos/file_system_provider/operations/open_file_unittest.cc

Issue 365583003: [fsp] Remove weak pointers from loggers wherever possible. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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 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 <string> 5 #include <string>
6 #include <vector> 6 #include <vector>
7 7
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/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 int file_handle() { return file_handle_; } 61 int file_handle() { return file_handle_; }
62 base::File::Error result() { return result_; } 62 base::File::Error result() { return result_; }
63 63
64 private: 64 private:
65 int file_handle_; 65 int file_handle_;
66 base::File::Error result_; 66 base::File::Error result_;
67 67
68 DISALLOW_COPY_AND_ASSIGN(Event); 68 DISALLOW_COPY_AND_ASSIGN(Event);
69 }; 69 };
70 70
71 CallbackLogger() : weak_ptr_factory_(this) {} 71 CallbackLogger() {}
72 virtual ~CallbackLogger() {} 72 virtual ~CallbackLogger() {}
73 73
74 void OnOpenFile(int file_handle, base::File::Error result) { 74 void OnOpenFile(int file_handle, base::File::Error result) {
75 events_.push_back(new Event(file_handle, result)); 75 events_.push_back(new Event(file_handle, result));
76 } 76 }
77 77
78 ScopedVector<Event>& events() { return events_; } 78 ScopedVector<Event>& events() { return events_; }
79 79
80 base::WeakPtr<CallbackLogger> GetWeakPtr() {
81 return weak_ptr_factory_.GetWeakPtr();
82 }
83
84 private: 80 private:
85 ScopedVector<Event> events_; 81 ScopedVector<Event> events_;
86 bool dispatch_reply_; 82 bool dispatch_reply_;
87 base::WeakPtrFactory<CallbackLogger> weak_ptr_factory_;
88 83
89 DISALLOW_COPY_AND_ASSIGN(CallbackLogger); 84 DISALLOW_COPY_AND_ASSIGN(CallbackLogger);
90 }; 85 };
91 86
92 } // namespace 87 } // namespace
93 88
94 class FileSystemProviderOperationsOpenFileTest : public testing::Test { 89 class FileSystemProviderOperationsOpenFileTest : public testing::Test {
95 protected: 90 protected:
96 FileSystemProviderOperationsOpenFileTest() {} 91 FileSystemProviderOperationsOpenFileTest() {}
97 virtual ~FileSystemProviderOperationsOpenFileTest() {} 92 virtual ~FileSystemProviderOperationsOpenFileTest() {}
98 93
99 virtual void SetUp() OVERRIDE { 94 virtual void SetUp() OVERRIDE {
100 file_system_info_ = 95 file_system_info_ =
101 ProvidedFileSystemInfo(kExtensionId, 96 ProvidedFileSystemInfo(kExtensionId,
102 kFileSystemId, 97 kFileSystemId,
103 "" /* file_system_name */, 98 "" /* file_system_name */,
104 base::FilePath() /* mount_path */); 99 base::FilePath() /* mount_path */);
105 } 100 }
106 101
107 ProvidedFileSystemInfo file_system_info_; 102 ProvidedFileSystemInfo file_system_info_;
108 }; 103 };
109 104
110 TEST_F(FileSystemProviderOperationsOpenFileTest, Execute) { 105 TEST_F(FileSystemProviderOperationsOpenFileTest, Execute) {
111 LoggingDispatchEventImpl dispatcher(true /* dispatch_reply */); 106 LoggingDispatchEventImpl dispatcher(true /* dispatch_reply */);
112 CallbackLogger callback_logger; 107 CallbackLogger callback_logger;
113 108
114 OpenFile open_file( 109 OpenFile open_file(NULL,
115 NULL, 110 file_system_info_,
116 file_system_info_, 111 base::FilePath::FromUTF8Unsafe(kFilePath),
117 base::FilePath::FromUTF8Unsafe(kFilePath), 112 ProvidedFileSystemInterface::OPEN_FILE_MODE_READ,
118 ProvidedFileSystemInterface::OPEN_FILE_MODE_READ, 113 false /* create */,
119 false /* create */, 114 base::Bind(&CallbackLogger::OnOpenFile,
120 base::Bind(&CallbackLogger::OnOpenFile, callback_logger.GetWeakPtr())); 115 base::Unretained(&callback_logger)));
121 open_file.SetDispatchEventImplForTesting( 116 open_file.SetDispatchEventImplForTesting(
122 base::Bind(&LoggingDispatchEventImpl::OnDispatchEventImpl, 117 base::Bind(&LoggingDispatchEventImpl::OnDispatchEventImpl,
123 base::Unretained(&dispatcher))); 118 base::Unretained(&dispatcher)));
124 119
125 EXPECT_TRUE(open_file.Execute(kRequestId)); 120 EXPECT_TRUE(open_file.Execute(kRequestId));
126 121
127 ASSERT_EQ(1u, dispatcher.events().size()); 122 ASSERT_EQ(1u, dispatcher.events().size());
128 extensions::Event* event = dispatcher.events()[0]; 123 extensions::Event* event = dispatcher.events()[0];
129 EXPECT_EQ( 124 EXPECT_EQ(
130 extensions::api::file_system_provider::OnOpenFileRequested::kEventName, 125 extensions::api::file_system_provider::OnOpenFileRequested::kEventName,
(...skipping 25 matching lines...) Expand all
156 151
157 bool event_create; 152 bool event_create;
158 EXPECT_TRUE(options->GetBoolean("create", &event_create)); 153 EXPECT_TRUE(options->GetBoolean("create", &event_create));
159 EXPECT_FALSE(event_create); 154 EXPECT_FALSE(event_create);
160 } 155 }
161 156
162 TEST_F(FileSystemProviderOperationsOpenFileTest, Execute_NoListener) { 157 TEST_F(FileSystemProviderOperationsOpenFileTest, Execute_NoListener) {
163 LoggingDispatchEventImpl dispatcher(false /* dispatch_reply */); 158 LoggingDispatchEventImpl dispatcher(false /* dispatch_reply */);
164 CallbackLogger callback_logger; 159 CallbackLogger callback_logger;
165 160
166 OpenFile open_file( 161 OpenFile open_file(NULL,
167 NULL, 162 file_system_info_,
168 file_system_info_, 163 base::FilePath::FromUTF8Unsafe(kFilePath),
169 base::FilePath::FromUTF8Unsafe(kFilePath), 164 ProvidedFileSystemInterface::OPEN_FILE_MODE_READ,
170 ProvidedFileSystemInterface::OPEN_FILE_MODE_READ, 165 false /* create */,
171 false /* create */, 166 base::Bind(&CallbackLogger::OnOpenFile,
172 base::Bind(&CallbackLogger::OnOpenFile, callback_logger.GetWeakPtr())); 167 base::Unretained(&callback_logger)));
173 open_file.SetDispatchEventImplForTesting( 168 open_file.SetDispatchEventImplForTesting(
174 base::Bind(&LoggingDispatchEventImpl::OnDispatchEventImpl, 169 base::Bind(&LoggingDispatchEventImpl::OnDispatchEventImpl,
175 base::Unretained(&dispatcher))); 170 base::Unretained(&dispatcher)));
176 171
177 EXPECT_FALSE(open_file.Execute(kRequestId)); 172 EXPECT_FALSE(open_file.Execute(kRequestId));
178 } 173 }
179 174
180 TEST_F(FileSystemProviderOperationsOpenFileTest, OnSuccess) { 175 TEST_F(FileSystemProviderOperationsOpenFileTest, OnSuccess) {
181 LoggingDispatchEventImpl dispatcher(true /* dispatch_reply */); 176 LoggingDispatchEventImpl dispatcher(true /* dispatch_reply */);
182 CallbackLogger callback_logger; 177 CallbackLogger callback_logger;
183 178
184 OpenFile open_file( 179 OpenFile open_file(NULL,
185 NULL, 180 file_system_info_,
186 file_system_info_, 181 base::FilePath::FromUTF8Unsafe(kFilePath),
187 base::FilePath::FromUTF8Unsafe(kFilePath), 182 ProvidedFileSystemInterface::OPEN_FILE_MODE_READ,
188 ProvidedFileSystemInterface::OPEN_FILE_MODE_READ, 183 false /* create */,
189 false /* create */, 184 base::Bind(&CallbackLogger::OnOpenFile,
190 base::Bind(&CallbackLogger::OnOpenFile, callback_logger.GetWeakPtr())); 185 base::Unretained(&callback_logger)));
191 open_file.SetDispatchEventImplForTesting( 186 open_file.SetDispatchEventImplForTesting(
192 base::Bind(&LoggingDispatchEventImpl::OnDispatchEventImpl, 187 base::Bind(&LoggingDispatchEventImpl::OnDispatchEventImpl,
193 base::Unretained(&dispatcher))); 188 base::Unretained(&dispatcher)));
194 189
195 EXPECT_TRUE(open_file.Execute(kRequestId)); 190 EXPECT_TRUE(open_file.Execute(kRequestId));
196 191
197 open_file.OnSuccess(kRequestId, 192 open_file.OnSuccess(kRequestId,
198 scoped_ptr<RequestValue>(new RequestValue()), 193 scoped_ptr<RequestValue>(new RequestValue()),
199 false /* has_more */); 194 false /* has_more */);
200 ASSERT_EQ(1u, callback_logger.events().size()); 195 ASSERT_EQ(1u, callback_logger.events().size());
201 CallbackLogger::Event* event = callback_logger.events()[0]; 196 CallbackLogger::Event* event = callback_logger.events()[0];
202 EXPECT_EQ(base::File::FILE_OK, event->result()); 197 EXPECT_EQ(base::File::FILE_OK, event->result());
203 EXPECT_LT(0, event->file_handle()); 198 EXPECT_LT(0, event->file_handle());
204 } 199 }
205 200
206 TEST_F(FileSystemProviderOperationsOpenFileTest, OnError) { 201 TEST_F(FileSystemProviderOperationsOpenFileTest, OnError) {
207 LoggingDispatchEventImpl dispatcher(true /* dispatch_reply */); 202 LoggingDispatchEventImpl dispatcher(true /* dispatch_reply */);
208 CallbackLogger callback_logger; 203 CallbackLogger callback_logger;
209 204
210 OpenFile open_file( 205 OpenFile open_file(NULL,
211 NULL, 206 file_system_info_,
212 file_system_info_, 207 base::FilePath::FromUTF8Unsafe(kFilePath),
213 base::FilePath::FromUTF8Unsafe(kFilePath), 208 ProvidedFileSystemInterface::OPEN_FILE_MODE_READ,
214 ProvidedFileSystemInterface::OPEN_FILE_MODE_READ, 209 false /* create */,
215 false /* create */, 210 base::Bind(&CallbackLogger::OnOpenFile,
216 base::Bind(&CallbackLogger::OnOpenFile, callback_logger.GetWeakPtr())); 211 base::Unretained(&callback_logger)));
217 open_file.SetDispatchEventImplForTesting( 212 open_file.SetDispatchEventImplForTesting(
218 base::Bind(&LoggingDispatchEventImpl::OnDispatchEventImpl, 213 base::Bind(&LoggingDispatchEventImpl::OnDispatchEventImpl,
219 base::Unretained(&dispatcher))); 214 base::Unretained(&dispatcher)));
220 215
221 EXPECT_TRUE(open_file.Execute(kRequestId)); 216 EXPECT_TRUE(open_file.Execute(kRequestId));
222 217
223 open_file.OnError(kRequestId, 218 open_file.OnError(kRequestId,
224 scoped_ptr<RequestValue>(new RequestValue()), 219 scoped_ptr<RequestValue>(new RequestValue()),
225 base::File::FILE_ERROR_TOO_MANY_OPENED); 220 base::File::FILE_ERROR_TOO_MANY_OPENED);
226 ASSERT_EQ(1u, callback_logger.events().size()); 221 ASSERT_EQ(1u, callback_logger.events().size());
227 CallbackLogger::Event* event = callback_logger.events()[0]; 222 CallbackLogger::Event* event = callback_logger.events()[0];
228 EXPECT_EQ(base::File::FILE_ERROR_TOO_MANY_OPENED, event->result()); 223 EXPECT_EQ(base::File::FILE_ERROR_TOO_MANY_OPENED, event->result());
229 ASSERT_EQ(0, event->file_handle()); 224 ASSERT_EQ(0, event->file_handle());
230 } 225 }
231 226
232 } // namespace operations 227 } // namespace operations
233 } // namespace file_system_provider 228 } // namespace file_system_provider
234 } // namespace chromeos 229 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698