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

Side by Side Diff: chrome/browser/chromeos/file_system_provider/operations/get_metadata_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 6
7 #include "base/files/file.h" 7 #include "base/files/file.h"
8 #include "base/files/file_path.h" 8 #include "base/files/file_path.h"
9 #include "base/json/json_reader.h" 9 #include "base/json/json_reader.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 const EntryMetadata& metadata() { return metadata_; } 62 const EntryMetadata& metadata() { return metadata_; }
63 base::File::Error result() { return result_; } 63 base::File::Error result() { return result_; }
64 64
65 private: 65 private:
66 EntryMetadata metadata_; 66 EntryMetadata metadata_;
67 base::File::Error result_; 67 base::File::Error result_;
68 68
69 DISALLOW_COPY_AND_ASSIGN(Event); 69 DISALLOW_COPY_AND_ASSIGN(Event);
70 }; 70 };
71 71
72 CallbackLogger() : weak_ptr_factory_(this) {} 72 CallbackLogger() {}
73 virtual ~CallbackLogger() {} 73 virtual ~CallbackLogger() {}
74 74
75 void OnGetMetadata(const EntryMetadata& metadata, base::File::Error result) { 75 void OnGetMetadata(const EntryMetadata& metadata, base::File::Error result) {
76 events_.push_back(new Event(metadata, result)); 76 events_.push_back(new Event(metadata, result));
77 } 77 }
78 78
79 ScopedVector<Event>& events() { return events_; } 79 ScopedVector<Event>& events() { return events_; }
80 80
81 base::WeakPtr<CallbackLogger> GetWeakPtr() {
82 return weak_ptr_factory_.GetWeakPtr();
83 }
84
85 private: 81 private:
86 ScopedVector<Event> events_; 82 ScopedVector<Event> events_;
87 bool dispatch_reply_; 83 bool dispatch_reply_;
88 base::WeakPtrFactory<CallbackLogger> weak_ptr_factory_;
89 84
90 DISALLOW_COPY_AND_ASSIGN(CallbackLogger); 85 DISALLOW_COPY_AND_ASSIGN(CallbackLogger);
91 }; 86 };
92 87
93 } // namespace 88 } // namespace
94 89
95 class FileSystemProviderOperationsGetMetadataTest : public testing::Test { 90 class FileSystemProviderOperationsGetMetadataTest : public testing::Test {
96 protected: 91 protected:
97 FileSystemProviderOperationsGetMetadataTest() {} 92 FileSystemProviderOperationsGetMetadataTest() {}
98 virtual ~FileSystemProviderOperationsGetMetadataTest() {} 93 virtual ~FileSystemProviderOperationsGetMetadataTest() {}
99 94
100 virtual void SetUp() OVERRIDE { 95 virtual void SetUp() OVERRIDE {
101 file_system_info_ = 96 file_system_info_ =
102 ProvidedFileSystemInfo(kExtensionId, 97 ProvidedFileSystemInfo(kExtensionId,
103 kFileSystemId, 98 kFileSystemId,
104 "" /* file_system_name */, 99 "" /* file_system_name */,
105 base::FilePath() /* mount_path */); 100 base::FilePath() /* mount_path */);
106 } 101 }
107 102
108 ProvidedFileSystemInfo file_system_info_; 103 ProvidedFileSystemInfo file_system_info_;
109 }; 104 };
110 105
111 TEST_F(FileSystemProviderOperationsGetMetadataTest, Execute) { 106 TEST_F(FileSystemProviderOperationsGetMetadataTest, Execute) {
112 LoggingDispatchEventImpl dispatcher(true /* dispatch_reply */); 107 LoggingDispatchEventImpl dispatcher(true /* dispatch_reply */);
113 CallbackLogger callback_logger; 108 CallbackLogger callback_logger;
114 109
115 GetMetadata get_metadata( 110 GetMetadata get_metadata(NULL,
116 NULL, 111 file_system_info_,
117 file_system_info_, 112 base::FilePath::FromUTF8Unsafe(kDirectoryPath),
118 base::FilePath::FromUTF8Unsafe(kDirectoryPath), 113 base::Bind(&CallbackLogger::OnGetMetadata,
119 base::Bind(&CallbackLogger::OnGetMetadata, callback_logger.GetWeakPtr())); 114 base::Unretained(&callback_logger)));
120 get_metadata.SetDispatchEventImplForTesting( 115 get_metadata.SetDispatchEventImplForTesting(
121 base::Bind(&LoggingDispatchEventImpl::OnDispatchEventImpl, 116 base::Bind(&LoggingDispatchEventImpl::OnDispatchEventImpl,
122 base::Unretained(&dispatcher))); 117 base::Unretained(&dispatcher)));
123 118
124 EXPECT_TRUE(get_metadata.Execute(kRequestId)); 119 EXPECT_TRUE(get_metadata.Execute(kRequestId));
125 120
126 ASSERT_EQ(1u, dispatcher.events().size()); 121 ASSERT_EQ(1u, dispatcher.events().size());
127 extensions::Event* event = dispatcher.events()[0]; 122 extensions::Event* event = dispatcher.events()[0];
128 EXPECT_EQ( 123 EXPECT_EQ(
129 extensions::api::file_system_provider::OnGetMetadataRequested::kEventName, 124 extensions::api::file_system_provider::OnGetMetadataRequested::kEventName,
(...skipping 14 matching lines...) Expand all
144 139
145 std::string event_entry_path; 140 std::string event_entry_path;
146 EXPECT_TRUE(options->GetString("entryPath", &event_entry_path)); 141 EXPECT_TRUE(options->GetString("entryPath", &event_entry_path));
147 EXPECT_EQ(kDirectoryPath, event_entry_path); 142 EXPECT_EQ(kDirectoryPath, event_entry_path);
148 } 143 }
149 144
150 TEST_F(FileSystemProviderOperationsGetMetadataTest, Execute_NoListener) { 145 TEST_F(FileSystemProviderOperationsGetMetadataTest, Execute_NoListener) {
151 LoggingDispatchEventImpl dispatcher(false /* dispatch_reply */); 146 LoggingDispatchEventImpl dispatcher(false /* dispatch_reply */);
152 CallbackLogger callback_logger; 147 CallbackLogger callback_logger;
153 148
154 GetMetadata get_metadata( 149 GetMetadata get_metadata(NULL,
155 NULL, 150 file_system_info_,
156 file_system_info_, 151 base::FilePath::FromUTF8Unsafe(kDirectoryPath),
157 base::FilePath::FromUTF8Unsafe(kDirectoryPath), 152 base::Bind(&CallbackLogger::OnGetMetadata,
158 base::Bind(&CallbackLogger::OnGetMetadata, callback_logger.GetWeakPtr())); 153 base::Unretained(&callback_logger)));
159 get_metadata.SetDispatchEventImplForTesting( 154 get_metadata.SetDispatchEventImplForTesting(
160 base::Bind(&LoggingDispatchEventImpl::OnDispatchEventImpl, 155 base::Bind(&LoggingDispatchEventImpl::OnDispatchEventImpl,
161 base::Unretained(&dispatcher))); 156 base::Unretained(&dispatcher)));
162 157
163 EXPECT_FALSE(get_metadata.Execute(kRequestId)); 158 EXPECT_FALSE(get_metadata.Execute(kRequestId));
164 } 159 }
165 160
166 TEST_F(FileSystemProviderOperationsGetMetadataTest, OnSuccess) { 161 TEST_F(FileSystemProviderOperationsGetMetadataTest, OnSuccess) {
167 using extensions::api::file_system_provider_internal:: 162 using extensions::api::file_system_provider_internal::
168 GetMetadataRequestedSuccess::Params; 163 GetMetadataRequestedSuccess::Params;
169 164
170 LoggingDispatchEventImpl dispatcher(true /* dispatch_reply */); 165 LoggingDispatchEventImpl dispatcher(true /* dispatch_reply */);
171 CallbackLogger callback_logger; 166 CallbackLogger callback_logger;
172 167
173 GetMetadata get_metadata( 168 GetMetadata get_metadata(NULL,
174 NULL, 169 file_system_info_,
175 file_system_info_, 170 base::FilePath::FromUTF8Unsafe(kDirectoryPath),
176 base::FilePath::FromUTF8Unsafe(kDirectoryPath), 171 base::Bind(&CallbackLogger::OnGetMetadata,
177 base::Bind(&CallbackLogger::OnGetMetadata, callback_logger.GetWeakPtr())); 172 base::Unretained(&callback_logger)));
178 get_metadata.SetDispatchEventImplForTesting( 173 get_metadata.SetDispatchEventImplForTesting(
179 base::Bind(&LoggingDispatchEventImpl::OnDispatchEventImpl, 174 base::Bind(&LoggingDispatchEventImpl::OnDispatchEventImpl,
180 base::Unretained(&dispatcher))); 175 base::Unretained(&dispatcher)));
181 176
182 EXPECT_TRUE(get_metadata.Execute(kRequestId)); 177 EXPECT_TRUE(get_metadata.Execute(kRequestId));
183 178
184 // Sample input as JSON. Keep in sync with file_system_provider_api.idl. 179 // Sample input as JSON. Keep in sync with file_system_provider_api.idl.
185 // As for now, it is impossible to create *::Params class directly, not from 180 // As for now, it is impossible to create *::Params class directly, not from
186 // base::Value. 181 // base::Value.
187 const std::string input = 182 const std::string input =
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 EXPECT_TRUE( 223 EXPECT_TRUE(
229 base::Time::FromString("Thu Apr 24 00:46:52 UTC 2014", &expected_time)); 224 base::Time::FromString("Thu Apr 24 00:46:52 UTC 2014", &expected_time));
230 EXPECT_EQ(expected_time, metadata.modification_time); 225 EXPECT_EQ(expected_time, metadata.modification_time);
231 EXPECT_EQ(kMimeType, metadata.mime_type); 226 EXPECT_EQ(kMimeType, metadata.mime_type);
232 } 227 }
233 228
234 TEST_F(FileSystemProviderOperationsGetMetadataTest, OnError) { 229 TEST_F(FileSystemProviderOperationsGetMetadataTest, OnError) {
235 LoggingDispatchEventImpl dispatcher(true /* dispatch_reply */); 230 LoggingDispatchEventImpl dispatcher(true /* dispatch_reply */);
236 CallbackLogger callback_logger; 231 CallbackLogger callback_logger;
237 232
238 GetMetadata get_metadata( 233 GetMetadata get_metadata(NULL,
239 NULL, 234 file_system_info_,
240 file_system_info_, 235 base::FilePath::FromUTF8Unsafe(kDirectoryPath),
241 base::FilePath::FromUTF8Unsafe(kDirectoryPath), 236 base::Bind(&CallbackLogger::OnGetMetadata,
242 base::Bind(&CallbackLogger::OnGetMetadata, callback_logger.GetWeakPtr())); 237 base::Unretained(&callback_logger)));
243 get_metadata.SetDispatchEventImplForTesting( 238 get_metadata.SetDispatchEventImplForTesting(
244 base::Bind(&LoggingDispatchEventImpl::OnDispatchEventImpl, 239 base::Bind(&LoggingDispatchEventImpl::OnDispatchEventImpl,
245 base::Unretained(&dispatcher))); 240 base::Unretained(&dispatcher)));
246 241
247 EXPECT_TRUE(get_metadata.Execute(kRequestId)); 242 EXPECT_TRUE(get_metadata.Execute(kRequestId));
248 243
249 get_metadata.OnError(kRequestId, 244 get_metadata.OnError(kRequestId,
250 scoped_ptr<RequestValue>(new RequestValue()), 245 scoped_ptr<RequestValue>(new RequestValue()),
251 base::File::FILE_ERROR_TOO_MANY_OPENED); 246 base::File::FILE_ERROR_TOO_MANY_OPENED);
252 247
253 ASSERT_EQ(1u, callback_logger.events().size()); 248 ASSERT_EQ(1u, callback_logger.events().size());
254 CallbackLogger::Event* event = callback_logger.events()[0]; 249 CallbackLogger::Event* event = callback_logger.events()[0];
255 EXPECT_EQ(base::File::FILE_ERROR_TOO_MANY_OPENED, event->result()); 250 EXPECT_EQ(base::File::FILE_ERROR_TOO_MANY_OPENED, event->result());
256 } 251 }
257 252
258 } // namespace operations 253 } // namespace operations
259 } // namespace file_system_provider 254 } // namespace file_system_provider
260 } // namespace chromeos 255 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698