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

Side by Side Diff: chrome/browser/chromeos/file_system_provider/service_unittest.cc

Issue 625463002: [fsp] Add support for observing entries and notifying about changes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased. Created 6 years, 2 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
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 "chrome/browser/chromeos/file_system_provider/service.h" 5 #include "chrome/browser/chromeos/file_system_provider/service.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/files/file.h" 10 #include "base/files/file.h"
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 extensions::Extension::NO_FLAGS, 97 extensions::Extension::NO_FLAGS,
98 extension_id, 98 extension_id,
99 &error); 99 &error);
100 } 100 }
101 101
102 // Stores a provided file system information in preferences. 102 // Stores a provided file system information in preferences.
103 void RememberFakeFileSystem(TestingProfile* profile, 103 void RememberFakeFileSystem(TestingProfile* profile,
104 const std::string& extension_id, 104 const std::string& extension_id,
105 const std::string& file_system_id, 105 const std::string& file_system_id,
106 const std::string& display_name, 106 const std::string& display_name,
107 bool writable) { 107 bool writable,
108 bool supports_notify_tag) {
108 TestingPrefServiceSyncable* const pref_service = 109 TestingPrefServiceSyncable* const pref_service =
109 profile->GetTestingPrefService(); 110 profile->GetTestingPrefService();
110 ASSERT_TRUE(pref_service); 111 ASSERT_TRUE(pref_service);
111 112
112 base::DictionaryValue extensions; 113 base::DictionaryValue extensions;
113 base::DictionaryValue* file_systems = new base::DictionaryValue(); 114 base::DictionaryValue* file_systems = new base::DictionaryValue();
114 base::DictionaryValue* file_system = new base::DictionaryValue(); 115 base::DictionaryValue* file_system = new base::DictionaryValue();
115 file_system->SetStringWithoutPathExpansion(kPrefKeyFileSystemId, 116 file_system->SetStringWithoutPathExpansion(kPrefKeyFileSystemId,
116 kFileSystemId); 117 kFileSystemId);
117 file_system->SetStringWithoutPathExpansion(kPrefKeyDisplayName, kDisplayName); 118 file_system->SetStringWithoutPathExpansion(kPrefKeyDisplayName, kDisplayName);
118 file_system->SetBooleanWithoutPathExpansion(kPrefKeyWritable, writable); 119 file_system->SetBooleanWithoutPathExpansion(kPrefKeyWritable, writable);
120 file_system->SetBooleanWithoutPathExpansion(kPrefKeySupportsNotifyTag,
121 supports_notify_tag);
119 file_systems->SetWithoutPathExpansion(kFileSystemId, file_system); 122 file_systems->SetWithoutPathExpansion(kFileSystemId, file_system);
120 extensions.SetWithoutPathExpansion(kExtensionId, file_systems); 123 extensions.SetWithoutPathExpansion(kExtensionId, file_systems);
121 124
122 pref_service->Set(prefs::kFileSystemProviderMounted, extensions); 125 pref_service->Set(prefs::kFileSystemProviderMounted, extensions);
123 } 126 }
124 127
125 } // namespace 128 } // namespace
126 129
127 class FileSystemProviderServiceTest : public testing::Test { 130 class FileSystemProviderServiceTest : public testing::Test {
128 protected: 131 protected:
(...skipping 23 matching lines...) Expand all
152 scoped_ptr<ScopedUserManagerEnabler> user_manager_enabler_; 155 scoped_ptr<ScopedUserManagerEnabler> user_manager_enabler_;
153 scoped_ptr<extensions::ExtensionRegistry> extension_registry_; 156 scoped_ptr<extensions::ExtensionRegistry> extension_registry_;
154 scoped_ptr<Service> service_; 157 scoped_ptr<Service> service_;
155 scoped_refptr<extensions::Extension> extension_; 158 scoped_refptr<extensions::Extension> extension_;
156 }; 159 };
157 160
158 TEST_F(FileSystemProviderServiceTest, MountFileSystem) { 161 TEST_F(FileSystemProviderServiceTest, MountFileSystem) {
159 LoggingObserver observer; 162 LoggingObserver observer;
160 service_->AddObserver(&observer); 163 service_->AddObserver(&observer);
161 164
162 EXPECT_TRUE(service_->MountFileSystem( 165 EXPECT_TRUE(service_->MountFileSystem(kExtensionId,
163 kExtensionId, kFileSystemId, kDisplayName, false /* writable */)); 166 kFileSystemId,
167 kDisplayName,
168 false /* writable */,
169 false /* supports_notify_tag */));
164 170
165 ASSERT_EQ(1u, observer.mounts.size()); 171 ASSERT_EQ(1u, observer.mounts.size());
166 EXPECT_EQ(kExtensionId, observer.mounts[0].file_system_info().extension_id()); 172 EXPECT_EQ(kExtensionId, observer.mounts[0].file_system_info().extension_id());
167 EXPECT_EQ(kFileSystemId, 173 EXPECT_EQ(kFileSystemId,
168 observer.mounts[0].file_system_info().file_system_id()); 174 observer.mounts[0].file_system_info().file_system_id());
169 base::FilePath expected_mount_path = 175 base::FilePath expected_mount_path =
170 util::GetMountPath(profile_, kExtensionId, kFileSystemId); 176 util::GetMountPath(profile_, kExtensionId, kFileSystemId);
171 EXPECT_EQ(expected_mount_path.AsUTF8Unsafe(), 177 EXPECT_EQ(expected_mount_path.AsUTF8Unsafe(),
172 observer.mounts[0].file_system_info().mount_path().AsUTF8Unsafe()); 178 observer.mounts[0].file_system_info().mount_path().AsUTF8Unsafe());
173 EXPECT_EQ(kDisplayName, observer.mounts[0].file_system_info().display_name()); 179 EXPECT_EQ(kDisplayName, observer.mounts[0].file_system_info().display_name());
174 EXPECT_FALSE(observer.mounts[0].file_system_info().writable()); 180 EXPECT_FALSE(observer.mounts[0].file_system_info().writable());
181 EXPECT_FALSE(observer.mounts[0].file_system_info().supports_notify_tag());
175 EXPECT_EQ(base::File::FILE_OK, observer.mounts[0].error()); 182 EXPECT_EQ(base::File::FILE_OK, observer.mounts[0].error());
176 ASSERT_EQ(0u, observer.unmounts.size()); 183 ASSERT_EQ(0u, observer.unmounts.size());
177 184
178 std::vector<ProvidedFileSystemInfo> file_system_info_list = 185 std::vector<ProvidedFileSystemInfo> file_system_info_list =
179 service_->GetProvidedFileSystemInfoList(); 186 service_->GetProvidedFileSystemInfoList();
180 ASSERT_EQ(1u, file_system_info_list.size()); 187 ASSERT_EQ(1u, file_system_info_list.size());
181 188
182 service_->RemoveObserver(&observer); 189 service_->RemoveObserver(&observer);
183 } 190 }
184 191
185 TEST_F(FileSystemProviderServiceTest, MountFileSystem_Writable) { 192 TEST_F(FileSystemProviderServiceTest,
193 MountFileSystem_WritableAndSupportsNotifyTag) {
186 LoggingObserver observer; 194 LoggingObserver observer;
187 service_->AddObserver(&observer); 195 service_->AddObserver(&observer);
188 196
189 EXPECT_TRUE(service_->MountFileSystem( 197 EXPECT_TRUE(service_->MountFileSystem(kExtensionId,
190 kExtensionId, kFileSystemId, kDisplayName, true /* writable */)); 198 kFileSystemId,
199 kDisplayName,
200 true /* writable */,
201 true /* supports_notify_tag */));
191 202
192 ASSERT_EQ(1u, observer.mounts.size()); 203 ASSERT_EQ(1u, observer.mounts.size());
193 EXPECT_TRUE(observer.mounts[0].file_system_info().writable()); 204 EXPECT_TRUE(observer.mounts[0].file_system_info().writable());
205 EXPECT_TRUE(observer.mounts[0].file_system_info().supports_notify_tag());
194 ASSERT_EQ(0u, observer.unmounts.size()); 206 ASSERT_EQ(0u, observer.unmounts.size());
195 std::vector<ProvidedFileSystemInfo> file_system_info_list = 207 std::vector<ProvidedFileSystemInfo> file_system_info_list =
196 service_->GetProvidedFileSystemInfoList(); 208 service_->GetProvidedFileSystemInfoList();
197 ASSERT_EQ(1u, file_system_info_list.size()); 209 ASSERT_EQ(1u, file_system_info_list.size());
198 210
199 service_->RemoveObserver(&observer); 211 service_->RemoveObserver(&observer);
200 } 212 }
201 213
202 TEST_F(FileSystemProviderServiceTest, MountFileSystem_UniqueIds) { 214 TEST_F(FileSystemProviderServiceTest, MountFileSystem_UniqueIds) {
203 LoggingObserver observer; 215 LoggingObserver observer;
204 service_->AddObserver(&observer); 216 service_->AddObserver(&observer);
205 217
206 EXPECT_TRUE(service_->MountFileSystem( 218 EXPECT_TRUE(service_->MountFileSystem(kExtensionId,
207 kExtensionId, kFileSystemId, kDisplayName, false /* writable */)); 219 kFileSystemId,
208 EXPECT_FALSE(service_->MountFileSystem( 220 kDisplayName,
209 kExtensionId, kFileSystemId, kDisplayName, false /* writable */)); 221 false /* writable */,
222 false /* supports_notify_tag */));
223 EXPECT_FALSE(service_->MountFileSystem(kExtensionId,
224 kFileSystemId,
225 kDisplayName,
226 false /* writable */,
227 false /* supports_notify_tag */));
210 228
211 ASSERT_EQ(2u, observer.mounts.size()); 229 ASSERT_EQ(2u, observer.mounts.size());
212 EXPECT_EQ(base::File::FILE_OK, observer.mounts[0].error()); 230 EXPECT_EQ(base::File::FILE_OK, observer.mounts[0].error());
213 EXPECT_EQ(base::File::FILE_ERROR_EXISTS, observer.mounts[1].error()); 231 EXPECT_EQ(base::File::FILE_ERROR_EXISTS, observer.mounts[1].error());
214 232
215 std::vector<ProvidedFileSystemInfo> file_system_info_list = 233 std::vector<ProvidedFileSystemInfo> file_system_info_list =
216 service_->GetProvidedFileSystemInfoList(); 234 service_->GetProvidedFileSystemInfoList();
217 ASSERT_EQ(1u, file_system_info_list.size()); 235 ASSERT_EQ(1u, file_system_info_list.size());
218 236
219 service_->RemoveObserver(&observer); 237 service_->RemoveObserver(&observer);
220 } 238 }
221 239
222 TEST_F(FileSystemProviderServiceTest, MountFileSystem_StressTest) { 240 TEST_F(FileSystemProviderServiceTest, MountFileSystem_StressTest) {
223 LoggingObserver observer; 241 LoggingObserver observer;
224 service_->AddObserver(&observer); 242 service_->AddObserver(&observer);
225 243
226 const size_t kMaxFileSystems = 16; 244 const size_t kMaxFileSystems = 16;
227 for (size_t i = 0; i < kMaxFileSystems; ++i) { 245 for (size_t i = 0; i < kMaxFileSystems; ++i) {
228 const std::string file_system_id = 246 const std::string file_system_id =
229 std::string("test-") + base::IntToString(i); 247 std::string("test-") + base::IntToString(i);
230 EXPECT_TRUE(service_->MountFileSystem( 248 EXPECT_TRUE(service_->MountFileSystem(kExtensionId,
231 kExtensionId, file_system_id, kDisplayName, false /* writable */)); 249 file_system_id,
250 kDisplayName,
251 false /* writable */,
252 false /* supports_notify_tag */));
232 } 253 }
233 ASSERT_EQ(kMaxFileSystems, observer.mounts.size()); 254 ASSERT_EQ(kMaxFileSystems, observer.mounts.size());
234 255
235 // The next file system is out of limit, and registering it should fail. 256 // The next file system is out of limit, and registering it should fail.
236 EXPECT_FALSE(service_->MountFileSystem( 257 EXPECT_FALSE(service_->MountFileSystem(kExtensionId,
237 kExtensionId, kFileSystemId, kDisplayName, false /* writable */)); 258 kFileSystemId,
259 kDisplayName,
260 false /* writable */,
261 false /* supports_notify_tag */));
238 262
239 ASSERT_EQ(kMaxFileSystems + 1, observer.mounts.size()); 263 ASSERT_EQ(kMaxFileSystems + 1, observer.mounts.size());
240 EXPECT_EQ(base::File::FILE_ERROR_TOO_MANY_OPENED, 264 EXPECT_EQ(base::File::FILE_ERROR_TOO_MANY_OPENED,
241 observer.mounts[kMaxFileSystems].error()); 265 observer.mounts[kMaxFileSystems].error());
242 266
243 std::vector<ProvidedFileSystemInfo> file_system_info_list = 267 std::vector<ProvidedFileSystemInfo> file_system_info_list =
244 service_->GetProvidedFileSystemInfoList(); 268 service_->GetProvidedFileSystemInfoList();
245 ASSERT_EQ(kMaxFileSystems, file_system_info_list.size()); 269 ASSERT_EQ(kMaxFileSystems, file_system_info_list.size());
246 270
247 service_->RemoveObserver(&observer); 271 service_->RemoveObserver(&observer);
248 } 272 }
249 273
250 TEST_F(FileSystemProviderServiceTest, UnmountFileSystem) { 274 TEST_F(FileSystemProviderServiceTest, UnmountFileSystem) {
251 LoggingObserver observer; 275 LoggingObserver observer;
252 service_->AddObserver(&observer); 276 service_->AddObserver(&observer);
253 277
254 EXPECT_TRUE(service_->MountFileSystem( 278 EXPECT_TRUE(service_->MountFileSystem(kExtensionId,
255 kExtensionId, kFileSystemId, kDisplayName, false /* writable */)); 279 kFileSystemId,
280 kDisplayName,
281 false /* writable */,
282 false /* supports_notify_tag */));
256 ASSERT_EQ(1u, observer.mounts.size()); 283 ASSERT_EQ(1u, observer.mounts.size());
257 284
258 EXPECT_TRUE(service_->UnmountFileSystem( 285 EXPECT_TRUE(service_->UnmountFileSystem(
259 kExtensionId, kFileSystemId, Service::UNMOUNT_REASON_USER)); 286 kExtensionId, kFileSystemId, Service::UNMOUNT_REASON_USER));
260 ASSERT_EQ(1u, observer.unmounts.size()); 287 ASSERT_EQ(1u, observer.unmounts.size());
261 EXPECT_EQ(base::File::FILE_OK, observer.unmounts[0].error()); 288 EXPECT_EQ(base::File::FILE_OK, observer.unmounts[0].error());
262 289
263 EXPECT_EQ(kExtensionId, 290 EXPECT_EQ(kExtensionId,
264 observer.unmounts[0].file_system_info().extension_id()); 291 observer.unmounts[0].file_system_info().extension_id());
265 EXPECT_EQ(kFileSystemId, 292 EXPECT_EQ(kFileSystemId,
266 observer.unmounts[0].file_system_info().file_system_id()); 293 observer.unmounts[0].file_system_info().file_system_id());
267 294
268 std::vector<ProvidedFileSystemInfo> file_system_info_list = 295 std::vector<ProvidedFileSystemInfo> file_system_info_list =
269 service_->GetProvidedFileSystemInfoList(); 296 service_->GetProvidedFileSystemInfoList();
270 ASSERT_EQ(0u, file_system_info_list.size()); 297 ASSERT_EQ(0u, file_system_info_list.size());
271 298
272 service_->RemoveObserver(&observer); 299 service_->RemoveObserver(&observer);
273 } 300 }
274 301
275 TEST_F(FileSystemProviderServiceTest, UnmountFileSystem_OnExtensionUnload) { 302 TEST_F(FileSystemProviderServiceTest, UnmountFileSystem_OnExtensionUnload) {
276 LoggingObserver observer; 303 LoggingObserver observer;
277 service_->AddObserver(&observer); 304 service_->AddObserver(&observer);
278 305
279 EXPECT_TRUE(service_->MountFileSystem( 306 EXPECT_TRUE(service_->MountFileSystem(kExtensionId,
280 kExtensionId, kFileSystemId, kDisplayName, false /* writable */)); 307 kFileSystemId,
308 kDisplayName,
309 false /* writable */,
310 false /* supports_notify_tag */));
281 ASSERT_EQ(1u, observer.mounts.size()); 311 ASSERT_EQ(1u, observer.mounts.size());
282 312
283 // Directly call the observer's method. 313 // Directly call the observer's method.
284 service_->OnExtensionUnloaded( 314 service_->OnExtensionUnloaded(
285 profile_, 315 profile_,
286 extension_.get(), 316 extension_.get(),
287 extensions::UnloadedExtensionInfo::REASON_DISABLE); 317 extensions::UnloadedExtensionInfo::REASON_DISABLE);
288 318
289 ASSERT_EQ(1u, observer.unmounts.size()); 319 ASSERT_EQ(1u, observer.unmounts.size());
290 EXPECT_EQ(base::File::FILE_OK, observer.unmounts[0].error()); 320 EXPECT_EQ(base::File::FILE_OK, observer.unmounts[0].error());
291 321
292 EXPECT_EQ(kExtensionId, 322 EXPECT_EQ(kExtensionId,
293 observer.unmounts[0].file_system_info().extension_id()); 323 observer.unmounts[0].file_system_info().extension_id());
294 EXPECT_EQ(kFileSystemId, 324 EXPECT_EQ(kFileSystemId,
295 observer.unmounts[0].file_system_info().file_system_id()); 325 observer.unmounts[0].file_system_info().file_system_id());
296 326
297 std::vector<ProvidedFileSystemInfo> file_system_info_list = 327 std::vector<ProvidedFileSystemInfo> file_system_info_list =
298 service_->GetProvidedFileSystemInfoList(); 328 service_->GetProvidedFileSystemInfoList();
299 ASSERT_EQ(0u, file_system_info_list.size()); 329 ASSERT_EQ(0u, file_system_info_list.size());
300 330
301 service_->RemoveObserver(&observer); 331 service_->RemoveObserver(&observer);
302 } 332 }
303 333
304 TEST_F(FileSystemProviderServiceTest, UnmountFileSystem_WrongExtensionId) { 334 TEST_F(FileSystemProviderServiceTest, UnmountFileSystem_WrongExtensionId) {
305 LoggingObserver observer; 335 LoggingObserver observer;
306 service_->AddObserver(&observer); 336 service_->AddObserver(&observer);
307 337
308 const std::string kWrongExtensionId = "helloworldhelloworldhelloworldhe"; 338 const std::string kWrongExtensionId = "helloworldhelloworldhelloworldhe";
309 339
310 EXPECT_TRUE(service_->MountFileSystem( 340 EXPECT_TRUE(service_->MountFileSystem(kExtensionId,
311 kExtensionId, kFileSystemId, kDisplayName, false /* writable */)); 341 kFileSystemId,
342 kDisplayName,
343 false /* writable */,
344 false /* supports_notify_tag */));
312 ASSERT_EQ(1u, observer.mounts.size()); 345 ASSERT_EQ(1u, observer.mounts.size());
313 ASSERT_EQ(1u, service_->GetProvidedFileSystemInfoList().size()); 346 ASSERT_EQ(1u, service_->GetProvidedFileSystemInfoList().size());
314 347
315 EXPECT_FALSE(service_->UnmountFileSystem( 348 EXPECT_FALSE(service_->UnmountFileSystem(
316 kWrongExtensionId, kFileSystemId, Service::UNMOUNT_REASON_USER)); 349 kWrongExtensionId, kFileSystemId, Service::UNMOUNT_REASON_USER));
317 ASSERT_EQ(1u, observer.unmounts.size()); 350 ASSERT_EQ(1u, observer.unmounts.size());
318 EXPECT_EQ(base::File::FILE_ERROR_NOT_FOUND, observer.unmounts[0].error()); 351 EXPECT_EQ(base::File::FILE_ERROR_NOT_FOUND, observer.unmounts[0].error());
319 ASSERT_EQ(1u, service_->GetProvidedFileSystemInfoList().size()); 352 ASSERT_EQ(1u, service_->GetProvidedFileSystemInfoList().size());
320 353
321 std::vector<ProvidedFileSystemInfo> file_system_info_list = 354 std::vector<ProvidedFileSystemInfo> file_system_info_list =
322 service_->GetProvidedFileSystemInfoList(); 355 service_->GetProvidedFileSystemInfoList();
323 ASSERT_EQ(1u, file_system_info_list.size()); 356 ASSERT_EQ(1u, file_system_info_list.size());
324 357
325 service_->RemoveObserver(&observer); 358 service_->RemoveObserver(&observer);
326 } 359 }
327 360
328 TEST_F(FileSystemProviderServiceTest, RestoreFileSystem_OnExtensionLoad) { 361 TEST_F(FileSystemProviderServiceTest, RestoreFileSystem_OnExtensionLoad) {
329 // Create a fake entry in the preferences. 362 // Create a fake entry in the preferences.
330 RememberFakeFileSystem( 363 RememberFakeFileSystem(profile_,
331 profile_, kExtensionId, kFileSystemId, kDisplayName, true /* writable */); 364 kExtensionId,
365 kFileSystemId,
366 kDisplayName,
367 true /* writable */,
368 true /* supports_notify_tag */);
332 369
333 // Create a new service instance in order to load remembered file systems 370 // Create a new service instance in order to load remembered file systems
334 // from preferences. 371 // from preferences.
335 scoped_ptr<Service> new_service( 372 scoped_ptr<Service> new_service(
336 new Service(profile_, extension_registry_.get())); 373 new Service(profile_, extension_registry_.get()));
337 LoggingObserver observer; 374 LoggingObserver observer;
338 new_service->AddObserver(&observer); 375 new_service->AddObserver(&observer);
339 376
340 new_service->SetFileSystemFactoryForTesting( 377 new_service->SetFileSystemFactoryForTesting(
341 base::Bind(&FakeProvidedFileSystem::Create)); 378 base::Bind(&FakeProvidedFileSystem::Create));
342 379
343 EXPECT_EQ(0u, observer.mounts.size()); 380 EXPECT_EQ(0u, observer.mounts.size());
344 381
345 // Directly call the observer's method. 382 // Directly call the observer's method.
346 new_service->OnExtensionLoaded(profile_, extension_.get()); 383 new_service->OnExtensionLoaded(profile_, extension_.get());
347 384
348 ASSERT_EQ(1u, observer.mounts.size()); 385 ASSERT_EQ(1u, observer.mounts.size());
349 EXPECT_EQ(base::File::FILE_OK, observer.mounts[0].error()); 386 EXPECT_EQ(base::File::FILE_OK, observer.mounts[0].error());
350 387
351 EXPECT_EQ(kExtensionId, observer.mounts[0].file_system_info().extension_id()); 388 EXPECT_EQ(kExtensionId, observer.mounts[0].file_system_info().extension_id());
352 EXPECT_EQ(kFileSystemId, 389 EXPECT_EQ(kFileSystemId,
353 observer.mounts[0].file_system_info().file_system_id()); 390 observer.mounts[0].file_system_info().file_system_id());
354 EXPECT_TRUE(observer.mounts[0].file_system_info().writable()); 391 EXPECT_TRUE(observer.mounts[0].file_system_info().writable());
392 EXPECT_TRUE(observer.mounts[0].file_system_info().supports_notify_tag());
355 393
356 std::vector<ProvidedFileSystemInfo> file_system_info_list = 394 std::vector<ProvidedFileSystemInfo> file_system_info_list =
357 new_service->GetProvidedFileSystemInfoList(); 395 new_service->GetProvidedFileSystemInfoList();
358 ASSERT_EQ(1u, file_system_info_list.size()); 396 ASSERT_EQ(1u, file_system_info_list.size());
359 397
360 new_service->RemoveObserver(&observer); 398 new_service->RemoveObserver(&observer);
361 } 399 }
362 400
363 TEST_F(FileSystemProviderServiceTest, RememberFileSystem_OnMount) { 401 TEST_F(FileSystemProviderServiceTest, RememberFileSystem_OnMount) {
364 LoggingObserver observer; 402 LoggingObserver observer;
365 service_->AddObserver(&observer); 403 service_->AddObserver(&observer);
366 404
367 EXPECT_TRUE(service_->MountFileSystem( 405 EXPECT_TRUE(service_->MountFileSystem(kExtensionId,
368 kExtensionId, kFileSystemId, kDisplayName, true /* writable */)); 406 kFileSystemId,
407 kDisplayName,
408 true /* writable */,
409 true /* supports_notify_tag */));
369 ASSERT_EQ(1u, observer.mounts.size()); 410 ASSERT_EQ(1u, observer.mounts.size());
370 411
371 TestingPrefServiceSyncable* const pref_service = 412 TestingPrefServiceSyncable* const pref_service =
372 profile_->GetTestingPrefService(); 413 profile_->GetTestingPrefService();
373 ASSERT_TRUE(pref_service); 414 ASSERT_TRUE(pref_service);
374 415
375 const base::DictionaryValue* const extensions = 416 const base::DictionaryValue* const extensions =
376 pref_service->GetDictionary(prefs::kFileSystemProviderMounted); 417 pref_service->GetDictionary(prefs::kFileSystemProviderMounted);
377 ASSERT_TRUE(extensions); 418 ASSERT_TRUE(extensions);
378 419
(...skipping 16 matching lines...) Expand all
395 std::string display_name; 436 std::string display_name;
396 EXPECT_TRUE(file_system->GetStringWithoutPathExpansion(kPrefKeyDisplayName, 437 EXPECT_TRUE(file_system->GetStringWithoutPathExpansion(kPrefKeyDisplayName,
397 &display_name)); 438 &display_name));
398 EXPECT_EQ(kDisplayName, display_name); 439 EXPECT_EQ(kDisplayName, display_name);
399 440
400 bool writable = false; 441 bool writable = false;
401 EXPECT_TRUE( 442 EXPECT_TRUE(
402 file_system->GetBooleanWithoutPathExpansion(kPrefKeyWritable, &writable)); 443 file_system->GetBooleanWithoutPathExpansion(kPrefKeyWritable, &writable));
403 EXPECT_TRUE(writable); 444 EXPECT_TRUE(writable);
404 445
446 bool supports_notify_tag = false;
447 EXPECT_TRUE(file_system->GetBooleanWithoutPathExpansion(
448 kPrefKeySupportsNotifyTag, &supports_notify_tag));
449 EXPECT_TRUE(supports_notify_tag);
450
405 service_->RemoveObserver(&observer); 451 service_->RemoveObserver(&observer);
406 } 452 }
407 453
408 TEST_F(FileSystemProviderServiceTest, RememberFileSystem_OnUnmountOnShutdown) { 454 TEST_F(FileSystemProviderServiceTest, RememberFileSystem_OnUnmountOnShutdown) {
409 LoggingObserver observer; 455 LoggingObserver observer;
410 service_->AddObserver(&observer); 456 service_->AddObserver(&observer);
411 457
412 TestingPrefServiceSyncable* const pref_service = 458 TestingPrefServiceSyncable* const pref_service =
413 profile_->GetTestingPrefService(); 459 profile_->GetTestingPrefService();
414 ASSERT_TRUE(pref_service); 460 ASSERT_TRUE(pref_service);
415 461
416 { 462 {
417 EXPECT_TRUE(service_->MountFileSystem( 463 EXPECT_TRUE(service_->MountFileSystem(kExtensionId,
418 kExtensionId, kFileSystemId, kDisplayName, false /* writable */)); 464 kFileSystemId,
465 kDisplayName,
466 false /* writable */,
467 false /* supports_notify_tag */));
419 ASSERT_EQ(1u, observer.mounts.size()); 468 ASSERT_EQ(1u, observer.mounts.size());
420 469
421 const base::DictionaryValue* extensions = 470 const base::DictionaryValue* extensions =
422 pref_service->GetDictionary(prefs::kFileSystemProviderMounted); 471 pref_service->GetDictionary(prefs::kFileSystemProviderMounted);
423 ASSERT_TRUE(extensions); 472 ASSERT_TRUE(extensions);
424 473
425 const base::DictionaryValue* file_systems = NULL; 474 const base::DictionaryValue* file_systems = NULL;
426 ASSERT_TRUE(extensions->GetDictionaryWithoutPathExpansion(kExtensionId, 475 ASSERT_TRUE(extensions->GetDictionaryWithoutPathExpansion(kExtensionId,
427 &file_systems)); 476 &file_systems));
428 EXPECT_EQ(1u, file_systems->size()); 477 EXPECT_EQ(1u, file_systems->size());
(...skipping 18 matching lines...) Expand all
447 496
448 TEST_F(FileSystemProviderServiceTest, RememberFileSystem_OnUnmountByUser) { 497 TEST_F(FileSystemProviderServiceTest, RememberFileSystem_OnUnmountByUser) {
449 LoggingObserver observer; 498 LoggingObserver observer;
450 service_->AddObserver(&observer); 499 service_->AddObserver(&observer);
451 500
452 TestingPrefServiceSyncable* const pref_service = 501 TestingPrefServiceSyncable* const pref_service =
453 profile_->GetTestingPrefService(); 502 profile_->GetTestingPrefService();
454 ASSERT_TRUE(pref_service); 503 ASSERT_TRUE(pref_service);
455 504
456 { 505 {
457 EXPECT_TRUE(service_->MountFileSystem( 506 EXPECT_TRUE(service_->MountFileSystem(kExtensionId,
458 kExtensionId, kFileSystemId, kDisplayName, false /* writable */)); 507 kFileSystemId,
508 kDisplayName,
509 false /* writable */,
510 false /* supports_notify_tag */));
459 ASSERT_EQ(1u, observer.mounts.size()); 511 ASSERT_EQ(1u, observer.mounts.size());
460 512
461 const base::DictionaryValue* extensions = 513 const base::DictionaryValue* extensions =
462 pref_service->GetDictionary(prefs::kFileSystemProviderMounted); 514 pref_service->GetDictionary(prefs::kFileSystemProviderMounted);
463 ASSERT_TRUE(extensions); 515 ASSERT_TRUE(extensions);
464 516
465 const base::DictionaryValue* file_systems = NULL; 517 const base::DictionaryValue* file_systems = NULL;
466 ASSERT_TRUE(extensions->GetDictionaryWithoutPathExpansion(kExtensionId, 518 ASSERT_TRUE(extensions->GetDictionaryWithoutPathExpansion(kExtensionId,
467 &file_systems)); 519 &file_systems));
468 EXPECT_EQ(1u, file_systems->size()); 520 EXPECT_EQ(1u, file_systems->size());
(...skipping 10 matching lines...) Expand all
479 const base::DictionaryValue* file_systems = NULL; 531 const base::DictionaryValue* file_systems = NULL;
480 EXPECT_FALSE(extensions->GetDictionaryWithoutPathExpansion(kExtensionId, 532 EXPECT_FALSE(extensions->GetDictionaryWithoutPathExpansion(kExtensionId,
481 &file_systems)); 533 &file_systems));
482 } 534 }
483 535
484 service_->RemoveObserver(&observer); 536 service_->RemoveObserver(&observer);
485 } 537 }
486 538
487 } // namespace file_system_provider 539 } // namespace file_system_provider
488 } // namespace chromeos 540 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/file_system_provider/service.cc ('k') | chrome/chrome_browser_chromeos.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698