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

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

Issue 294073007: [fsp] Let extensions decide about the file system id. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased. 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 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"
11 #include "base/memory/scoped_vector.h" 11 #include "base/memory/scoped_vector.h"
12 #include "chrome/browser/chromeos/file_system_provider/operations/open_file.h" 12 #include "chrome/browser/chromeos/file_system_provider/operations/open_file.h"
13 #include "chrome/browser/chromeos/file_system_provider/provided_file_system_inte rface.h" 13 #include "chrome/browser/chromeos/file_system_provider/provided_file_system_inte rface.h"
14 #include "chrome/common/extensions/api/file_system_provider.h" 14 #include "chrome/common/extensions/api/file_system_provider.h"
15 #include "chrome/common/extensions/api/file_system_provider_internal.h" 15 #include "chrome/common/extensions/api/file_system_provider_internal.h"
16 #include "extensions/browser/event_router.h" 16 #include "extensions/browser/event_router.h"
17 #include "testing/gtest/include/gtest/gtest.h" 17 #include "testing/gtest/include/gtest/gtest.h"
18 #include "webkit/browser/fileapi/async_file_util.h" 18 #include "webkit/browser/fileapi/async_file_util.h"
19 19
20 namespace chromeos { 20 namespace chromeos {
21 namespace file_system_provider { 21 namespace file_system_provider {
22 namespace operations { 22 namespace operations {
23 namespace { 23 namespace {
24 24
25 const char kExtensionId[] = "mbflcebpggnecokmikipoihdbecnjfoj"; 25 const char kExtensionId[] = "mbflcebpggnecokmikipoihdbecnjfoj";
26 const int kFileSystemId = 1; 26 const char kFileSystemId[] = "testing-file-system";
27 const int kRequestId = 2; 27 const int kRequestId = 2;
28 const base::FilePath::CharType kFilePath[] = "/directory/blueberries.txt"; 28 const base::FilePath::CharType kFilePath[] = "/directory/blueberries.txt";
29 29
30 // Fake event dispatcher implementation with extra logging capability. Acts as 30 // Fake event dispatcher implementation with extra logging capability. Acts as
31 // a providing extension end-point. 31 // a providing extension end-point.
32 class LoggingDispatchEventImpl { 32 class LoggingDispatchEventImpl {
33 public: 33 public:
34 explicit LoggingDispatchEventImpl(bool dispatch_reply) 34 explicit LoggingDispatchEventImpl(bool dispatch_reply)
35 : dispatch_reply_(dispatch_reply) {} 35 : dispatch_reply_(dispatch_reply) {}
36 virtual ~LoggingDispatchEventImpl() {} 36 virtual ~LoggingDispatchEventImpl() {}
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 EXPECT_TRUE(open_file.Execute(kRequestId)); 125 EXPECT_TRUE(open_file.Execute(kRequestId));
126 126
127 ASSERT_EQ(1u, dispatcher.events().size()); 127 ASSERT_EQ(1u, dispatcher.events().size());
128 extensions::Event* event = dispatcher.events()[0]; 128 extensions::Event* event = dispatcher.events()[0];
129 EXPECT_EQ( 129 EXPECT_EQ(
130 extensions::api::file_system_provider::OnOpenFileRequested::kEventName, 130 extensions::api::file_system_provider::OnOpenFileRequested::kEventName,
131 event->event_name); 131 event->event_name);
132 base::ListValue* event_args = event->event_args.get(); 132 base::ListValue* event_args = event->event_args.get();
133 ASSERT_EQ(5u, event_args->GetSize()); 133 ASSERT_EQ(5u, event_args->GetSize());
134 134
135 int event_file_system_id = -1; 135 std::string event_file_system_id;
136 EXPECT_TRUE(event_args->GetInteger(0, &event_file_system_id)); 136 EXPECT_TRUE(event_args->GetString(0, &event_file_system_id));
137 EXPECT_EQ(kFileSystemId, event_file_system_id); 137 EXPECT_EQ(kFileSystemId, event_file_system_id);
138 138
139 int event_request_id = -1; 139 int event_request_id = -1;
140 EXPECT_TRUE(event_args->GetInteger(1, &event_request_id)); 140 EXPECT_TRUE(event_args->GetInteger(1, &event_request_id));
141 EXPECT_EQ(kRequestId, event_request_id); 141 EXPECT_EQ(kRequestId, event_request_id);
142 142
143 std::string event_file_path; 143 std::string event_file_path;
144 EXPECT_TRUE(event_args->GetString(2, &event_file_path)); 144 EXPECT_TRUE(event_args->GetString(2, &event_file_path));
145 EXPECT_EQ(kFilePath, event_file_path); 145 EXPECT_EQ(kFilePath, event_file_path);
146 146
(...skipping 21 matching lines...) Expand all
168 false /* create */, 168 false /* create */,
169 base::Bind(&CallbackLogger::OnOpenFile, callback_logger.GetWeakPtr())); 169 base::Bind(&CallbackLogger::OnOpenFile, callback_logger.GetWeakPtr()));
170 open_file.SetDispatchEventImplForTesting( 170 open_file.SetDispatchEventImplForTesting(
171 base::Bind(&LoggingDispatchEventImpl::OnDispatchEventImpl, 171 base::Bind(&LoggingDispatchEventImpl::OnDispatchEventImpl,
172 base::Unretained(&dispatcher))); 172 base::Unretained(&dispatcher)));
173 173
174 EXPECT_FALSE(open_file.Execute(kRequestId)); 174 EXPECT_FALSE(open_file.Execute(kRequestId));
175 } 175 }
176 176
177 TEST_F(FileSystemProviderOperationsOpenFileTest, OnSuccess) { 177 TEST_F(FileSystemProviderOperationsOpenFileTest, OnSuccess) {
178 using extensions::api::file_system_provider::EntryMetadata;
179 using extensions::api::file_system_provider_internal:: 178 using extensions::api::file_system_provider_internal::
180 OpenFileRequestedSuccess::Params; 179 OpenFileRequestedSuccess::Params;
181 180
182 LoggingDispatchEventImpl dispatcher(true /* dispatch_reply */); 181 LoggingDispatchEventImpl dispatcher(true /* dispatch_reply */);
183 CallbackLogger callback_logger; 182 CallbackLogger callback_logger;
184 183
185 OpenFile open_file( 184 OpenFile open_file(
186 NULL, 185 NULL,
187 file_system_info_, 186 file_system_info_,
188 base::FilePath::FromUTF8Unsafe(kFilePath), 187 base::FilePath::FromUTF8Unsafe(kFilePath),
189 ProvidedFileSystemInterface::OPEN_FILE_MODE_READ, 188 ProvidedFileSystemInterface::OPEN_FILE_MODE_READ,
190 false /* create */, 189 false /* create */,
191 base::Bind(&CallbackLogger::OnOpenFile, callback_logger.GetWeakPtr())); 190 base::Bind(&CallbackLogger::OnOpenFile, callback_logger.GetWeakPtr()));
192 open_file.SetDispatchEventImplForTesting( 191 open_file.SetDispatchEventImplForTesting(
193 base::Bind(&LoggingDispatchEventImpl::OnDispatchEventImpl, 192 base::Bind(&LoggingDispatchEventImpl::OnDispatchEventImpl,
194 base::Unretained(&dispatcher))); 193 base::Unretained(&dispatcher)));
195 194
196 EXPECT_TRUE(open_file.Execute(kRequestId)); 195 EXPECT_TRUE(open_file.Execute(kRequestId));
197 196
198 open_file.OnSuccess(kRequestId, 197 open_file.OnSuccess(kRequestId,
199 scoped_ptr<RequestValue>(new RequestValue()), 198 scoped_ptr<RequestValue>(new RequestValue()),
200 false /* has_next */); 199 false /* has_next */);
201 ASSERT_EQ(1u, callback_logger.events().size()); 200 ASSERT_EQ(1u, callback_logger.events().size());
202 CallbackLogger::Event* event = callback_logger.events()[0]; 201 CallbackLogger::Event* event = callback_logger.events()[0];
203 EXPECT_EQ(base::File::FILE_OK, event->result()); 202 EXPECT_EQ(base::File::FILE_OK, event->result());
204 EXPECT_LT(0, event->file_handle()); 203 EXPECT_LT(0, event->file_handle());
205 } 204 }
206 205
207 TEST_F(FileSystemProviderOperationsOpenFileTest, OnError) { 206 TEST_F(FileSystemProviderOperationsOpenFileTest, OnError) {
208 using extensions::api::file_system_provider::EntryMetadata;
209 using extensions::api::file_system_provider_internal::OpenFileRequestedError:: 207 using extensions::api::file_system_provider_internal::OpenFileRequestedError::
210 Params; 208 Params;
211 209
212 LoggingDispatchEventImpl dispatcher(true /* dispatch_reply */); 210 LoggingDispatchEventImpl dispatcher(true /* dispatch_reply */);
213 CallbackLogger callback_logger; 211 CallbackLogger callback_logger;
214 212
215 OpenFile open_file( 213 OpenFile open_file(
216 NULL, 214 NULL,
217 file_system_info_, 215 file_system_info_,
218 base::FilePath::FromUTF8Unsafe(kFilePath), 216 base::FilePath::FromUTF8Unsafe(kFilePath),
219 ProvidedFileSystemInterface::OPEN_FILE_MODE_READ, 217 ProvidedFileSystemInterface::OPEN_FILE_MODE_READ,
220 false /* create */, 218 false /* create */,
221 base::Bind(&CallbackLogger::OnOpenFile, callback_logger.GetWeakPtr())); 219 base::Bind(&CallbackLogger::OnOpenFile, callback_logger.GetWeakPtr()));
222 open_file.SetDispatchEventImplForTesting( 220 open_file.SetDispatchEventImplForTesting(
223 base::Bind(&LoggingDispatchEventImpl::OnDispatchEventImpl, 221 base::Bind(&LoggingDispatchEventImpl::OnDispatchEventImpl,
224 base::Unretained(&dispatcher))); 222 base::Unretained(&dispatcher)));
225 223
226 EXPECT_TRUE(open_file.Execute(kRequestId)); 224 EXPECT_TRUE(open_file.Execute(kRequestId));
227 225
228 open_file.OnError(kRequestId, base::File::FILE_ERROR_TOO_MANY_OPENED); 226 open_file.OnError(kRequestId, base::File::FILE_ERROR_TOO_MANY_OPENED);
229 ASSERT_EQ(1u, callback_logger.events().size()); 227 ASSERT_EQ(1u, callback_logger.events().size());
230 CallbackLogger::Event* event = callback_logger.events()[0]; 228 CallbackLogger::Event* event = callback_logger.events()[0];
231 EXPECT_EQ(base::File::FILE_ERROR_TOO_MANY_OPENED, event->result()); 229 EXPECT_EQ(base::File::FILE_ERROR_TOO_MANY_OPENED, event->result());
232 ASSERT_EQ(0, event->file_handle()); 230 ASSERT_EQ(0, event->file_handle());
233 } 231 }
234 232
235 } // namespace operations 233 } // namespace operations
236 } // namespace file_system_provider 234 } // namespace file_system_provider
237 } // namespace chromeos 235 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698