OLD | NEW |
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 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
93 manifest, | 93 manifest, |
94 extensions::Extension::NO_FLAGS, | 94 extensions::Extension::NO_FLAGS, |
95 extension_id, | 95 extension_id, |
96 &error); | 96 &error); |
97 } | 97 } |
98 | 98 |
99 // Stores a provided file system information in preferences. | 99 // Stores a provided file system information in preferences. |
100 void RememberFakeFileSystem(TestingProfile* profile, | 100 void RememberFakeFileSystem(TestingProfile* profile, |
101 const std::string& extension_id, | 101 const std::string& extension_id, |
102 const std::string& file_system_id, | 102 const std::string& file_system_id, |
103 const std::string& display_name, | 103 const std::string& display_name) { |
104 bool writable) { | |
105 TestingPrefServiceSyncable* const pref_service = | 104 TestingPrefServiceSyncable* const pref_service = |
106 profile->GetTestingPrefService(); | 105 profile->GetTestingPrefService(); |
107 ASSERT_TRUE(pref_service); | 106 ASSERT_TRUE(pref_service); |
108 | 107 |
109 base::DictionaryValue extensions; | 108 base::DictionaryValue extensions; |
110 base::DictionaryValue* file_systems = new base::DictionaryValue(); | 109 base::DictionaryValue* file_systems = new base::DictionaryValue(); |
111 base::DictionaryValue* file_system = new base::DictionaryValue(); | 110 base::DictionaryValue* file_system = new base::DictionaryValue(); |
112 file_system->SetStringWithoutPathExpansion(kPrefKeyFileSystemId, | 111 file_system->SetStringWithoutPathExpansion(kPrefKeyFileSystemId, |
113 kFileSystemId); | 112 kFileSystemId); |
114 file_system->SetStringWithoutPathExpansion(kPrefKeyDisplayName, kDisplayName); | 113 file_system->SetStringWithoutPathExpansion(kPrefKeyDisplayName, kDisplayName); |
115 file_system->SetBooleanWithoutPathExpansion(kPrefKeyWritable, writable); | |
116 file_systems->SetWithoutPathExpansion(kFileSystemId, file_system); | 114 file_systems->SetWithoutPathExpansion(kFileSystemId, file_system); |
117 extensions.SetWithoutPathExpansion(kExtensionId, file_systems); | 115 extensions.SetWithoutPathExpansion(kExtensionId, file_systems); |
118 | 116 |
119 pref_service->Set(prefs::kFileSystemProviderMounted, extensions); | 117 pref_service->Set(prefs::kFileSystemProviderMounted, extensions); |
120 } | 118 } |
121 | 119 |
122 } // namespace | 120 } // namespace |
123 | 121 |
124 class FileSystemProviderServiceTest : public testing::Test { | 122 class FileSystemProviderServiceTest : public testing::Test { |
125 protected: | 123 protected: |
(...skipping 19 matching lines...) Expand all Loading... |
145 scoped_ptr<ScopedUserManagerEnabler> user_manager_enabler_; | 143 scoped_ptr<ScopedUserManagerEnabler> user_manager_enabler_; |
146 scoped_ptr<extensions::ExtensionRegistry> extension_registry_; | 144 scoped_ptr<extensions::ExtensionRegistry> extension_registry_; |
147 scoped_ptr<Service> service_; | 145 scoped_ptr<Service> service_; |
148 scoped_refptr<extensions::Extension> extension_; | 146 scoped_refptr<extensions::Extension> extension_; |
149 }; | 147 }; |
150 | 148 |
151 TEST_F(FileSystemProviderServiceTest, MountFileSystem) { | 149 TEST_F(FileSystemProviderServiceTest, MountFileSystem) { |
152 LoggingObserver observer; | 150 LoggingObserver observer; |
153 service_->AddObserver(&observer); | 151 service_->AddObserver(&observer); |
154 | 152 |
155 EXPECT_TRUE(service_->MountFileSystem( | 153 EXPECT_TRUE( |
156 kExtensionId, kFileSystemId, kDisplayName, false /* writable */)); | 154 service_->MountFileSystem(kExtensionId, kFileSystemId, kDisplayName)); |
157 | 155 |
158 ASSERT_EQ(1u, observer.mounts.size()); | 156 ASSERT_EQ(1u, observer.mounts.size()); |
159 EXPECT_EQ(kExtensionId, observer.mounts[0].file_system_info().extension_id()); | 157 EXPECT_EQ(kExtensionId, observer.mounts[0].file_system_info().extension_id()); |
160 EXPECT_EQ(kFileSystemId, | 158 EXPECT_EQ(kFileSystemId, |
161 observer.mounts[0].file_system_info().file_system_id()); | 159 observer.mounts[0].file_system_info().file_system_id()); |
162 base::FilePath expected_mount_path = | 160 base::FilePath expected_mount_path = |
163 util::GetMountPath(profile_.get(), kExtensionId, kFileSystemId); | 161 util::GetMountPath(profile_.get(), kExtensionId, kFileSystemId); |
164 EXPECT_EQ(expected_mount_path.AsUTF8Unsafe(), | 162 EXPECT_EQ(expected_mount_path.AsUTF8Unsafe(), |
165 observer.mounts[0].file_system_info().mount_path().AsUTF8Unsafe()); | 163 observer.mounts[0].file_system_info().mount_path().AsUTF8Unsafe()); |
166 EXPECT_EQ(kDisplayName, observer.mounts[0].file_system_info().display_name()); | 164 EXPECT_EQ(kDisplayName, observer.mounts[0].file_system_info().display_name()); |
167 EXPECT_FALSE(observer.mounts[0].file_system_info().writable()); | |
168 EXPECT_EQ(base::File::FILE_OK, observer.mounts[0].error()); | 165 EXPECT_EQ(base::File::FILE_OK, observer.mounts[0].error()); |
169 ASSERT_EQ(0u, observer.unmounts.size()); | 166 ASSERT_EQ(0u, observer.unmounts.size()); |
170 | 167 |
171 std::vector<ProvidedFileSystemInfo> file_system_info_list = | 168 std::vector<ProvidedFileSystemInfo> file_system_info_list = |
172 service_->GetProvidedFileSystemInfoList(); | 169 service_->GetProvidedFileSystemInfoList(); |
173 ASSERT_EQ(1u, file_system_info_list.size()); | 170 ASSERT_EQ(1u, file_system_info_list.size()); |
174 | 171 |
175 service_->RemoveObserver(&observer); | 172 service_->RemoveObserver(&observer); |
176 } | 173 } |
177 | 174 |
178 TEST_F(FileSystemProviderServiceTest, MountFileSystem_Writable) { | |
179 LoggingObserver observer; | |
180 service_->AddObserver(&observer); | |
181 | |
182 EXPECT_TRUE(service_->MountFileSystem( | |
183 kExtensionId, kFileSystemId, kDisplayName, true /* writable */)); | |
184 | |
185 ASSERT_EQ(1u, observer.mounts.size()); | |
186 EXPECT_TRUE(observer.mounts[0].file_system_info().writable()); | |
187 ASSERT_EQ(0u, observer.unmounts.size()); | |
188 std::vector<ProvidedFileSystemInfo> file_system_info_list = | |
189 service_->GetProvidedFileSystemInfoList(); | |
190 ASSERT_EQ(1u, file_system_info_list.size()); | |
191 | |
192 service_->RemoveObserver(&observer); | |
193 } | |
194 | |
195 TEST_F(FileSystemProviderServiceTest, MountFileSystem_UniqueIds) { | 175 TEST_F(FileSystemProviderServiceTest, MountFileSystem_UniqueIds) { |
196 LoggingObserver observer; | 176 LoggingObserver observer; |
197 service_->AddObserver(&observer); | 177 service_->AddObserver(&observer); |
198 | 178 |
199 EXPECT_TRUE(service_->MountFileSystem( | 179 EXPECT_TRUE( |
200 kExtensionId, kFileSystemId, kDisplayName, false /* writable */)); | 180 service_->MountFileSystem(kExtensionId, kFileSystemId, kDisplayName)); |
201 EXPECT_FALSE(service_->MountFileSystem( | 181 EXPECT_FALSE( |
202 kExtensionId, kFileSystemId, kDisplayName, false /* writable */)); | 182 service_->MountFileSystem(kExtensionId, kFileSystemId, kDisplayName)); |
203 | 183 |
204 ASSERT_EQ(2u, observer.mounts.size()); | 184 ASSERT_EQ(2u, observer.mounts.size()); |
205 EXPECT_EQ(base::File::FILE_OK, observer.mounts[0].error()); | 185 EXPECT_EQ(base::File::FILE_OK, observer.mounts[0].error()); |
206 EXPECT_EQ(base::File::FILE_ERROR_EXISTS, observer.mounts[1].error()); | 186 EXPECT_EQ(base::File::FILE_ERROR_EXISTS, observer.mounts[1].error()); |
207 | 187 |
208 std::vector<ProvidedFileSystemInfo> file_system_info_list = | 188 std::vector<ProvidedFileSystemInfo> file_system_info_list = |
209 service_->GetProvidedFileSystemInfoList(); | 189 service_->GetProvidedFileSystemInfoList(); |
210 ASSERT_EQ(1u, file_system_info_list.size()); | 190 ASSERT_EQ(1u, file_system_info_list.size()); |
211 | 191 |
212 service_->RemoveObserver(&observer); | 192 service_->RemoveObserver(&observer); |
213 } | 193 } |
214 | 194 |
215 TEST_F(FileSystemProviderServiceTest, MountFileSystem_StressTest) { | 195 TEST_F(FileSystemProviderServiceTest, MountFileSystem_StressTest) { |
216 LoggingObserver observer; | 196 LoggingObserver observer; |
217 service_->AddObserver(&observer); | 197 service_->AddObserver(&observer); |
218 | 198 |
219 const size_t kMaxFileSystems = 16; | 199 const size_t kMaxFileSystems = 16; |
220 for (size_t i = 0; i < kMaxFileSystems; ++i) { | 200 for (size_t i = 0; i < kMaxFileSystems; ++i) { |
221 const std::string file_system_id = | 201 const std::string file_system_id = |
222 std::string("test-") + base::IntToString(i); | 202 std::string("test-") + base::IntToString(i); |
223 EXPECT_TRUE(service_->MountFileSystem( | 203 EXPECT_TRUE( |
224 kExtensionId, file_system_id, kDisplayName, false /* writable */)); | 204 service_->MountFileSystem(kExtensionId, file_system_id, kDisplayName)); |
225 } | 205 } |
226 ASSERT_EQ(kMaxFileSystems, observer.mounts.size()); | 206 ASSERT_EQ(kMaxFileSystems, observer.mounts.size()); |
227 | 207 |
228 // The next file system is out of limit, and registering it should fail. | 208 // The next file system is out of limit, and registering it should fail. |
229 EXPECT_FALSE(service_->MountFileSystem( | 209 EXPECT_FALSE( |
230 kExtensionId, kFileSystemId, kDisplayName, false /* writable */)); | 210 service_->MountFileSystem(kExtensionId, kFileSystemId, kDisplayName)); |
231 | 211 |
232 ASSERT_EQ(kMaxFileSystems + 1, observer.mounts.size()); | 212 ASSERT_EQ(kMaxFileSystems + 1, observer.mounts.size()); |
233 EXPECT_EQ(base::File::FILE_ERROR_TOO_MANY_OPENED, | 213 EXPECT_EQ(base::File::FILE_ERROR_TOO_MANY_OPENED, |
234 observer.mounts[kMaxFileSystems].error()); | 214 observer.mounts[kMaxFileSystems].error()); |
235 | 215 |
236 std::vector<ProvidedFileSystemInfo> file_system_info_list = | 216 std::vector<ProvidedFileSystemInfo> file_system_info_list = |
237 service_->GetProvidedFileSystemInfoList(); | 217 service_->GetProvidedFileSystemInfoList(); |
238 ASSERT_EQ(kMaxFileSystems, file_system_info_list.size()); | 218 ASSERT_EQ(kMaxFileSystems, file_system_info_list.size()); |
239 | 219 |
240 service_->RemoveObserver(&observer); | 220 service_->RemoveObserver(&observer); |
241 } | 221 } |
242 | 222 |
243 TEST_F(FileSystemProviderServiceTest, UnmountFileSystem) { | 223 TEST_F(FileSystemProviderServiceTest, UnmountFileSystem) { |
244 LoggingObserver observer; | 224 LoggingObserver observer; |
245 service_->AddObserver(&observer); | 225 service_->AddObserver(&observer); |
246 | 226 |
247 EXPECT_TRUE(service_->MountFileSystem( | 227 EXPECT_TRUE( |
248 kExtensionId, kFileSystemId, kDisplayName, false /* writable */)); | 228 service_->MountFileSystem(kExtensionId, kFileSystemId, kDisplayName)); |
249 ASSERT_EQ(1u, observer.mounts.size()); | 229 ASSERT_EQ(1u, observer.mounts.size()); |
250 | 230 |
251 EXPECT_TRUE(service_->UnmountFileSystem( | 231 EXPECT_TRUE(service_->UnmountFileSystem( |
252 kExtensionId, kFileSystemId, Service::UNMOUNT_REASON_USER)); | 232 kExtensionId, kFileSystemId, Service::UNMOUNT_REASON_USER)); |
253 ASSERT_EQ(1u, observer.unmounts.size()); | 233 ASSERT_EQ(1u, observer.unmounts.size()); |
254 EXPECT_EQ(base::File::FILE_OK, observer.unmounts[0].error()); | 234 EXPECT_EQ(base::File::FILE_OK, observer.unmounts[0].error()); |
255 | 235 |
256 EXPECT_EQ(kExtensionId, | 236 EXPECT_EQ(kExtensionId, |
257 observer.unmounts[0].file_system_info().extension_id()); | 237 observer.unmounts[0].file_system_info().extension_id()); |
258 EXPECT_EQ(kFileSystemId, | 238 EXPECT_EQ(kFileSystemId, |
259 observer.unmounts[0].file_system_info().file_system_id()); | 239 observer.unmounts[0].file_system_info().file_system_id()); |
260 | 240 |
261 std::vector<ProvidedFileSystemInfo> file_system_info_list = | 241 std::vector<ProvidedFileSystemInfo> file_system_info_list = |
262 service_->GetProvidedFileSystemInfoList(); | 242 service_->GetProvidedFileSystemInfoList(); |
263 ASSERT_EQ(0u, file_system_info_list.size()); | 243 ASSERT_EQ(0u, file_system_info_list.size()); |
264 | 244 |
265 service_->RemoveObserver(&observer); | 245 service_->RemoveObserver(&observer); |
266 } | 246 } |
267 | 247 |
268 TEST_F(FileSystemProviderServiceTest, UnmountFileSystem_OnExtensionUnload) { | 248 TEST_F(FileSystemProviderServiceTest, UnmountFileSystem_OnExtensionUnload) { |
269 LoggingObserver observer; | 249 LoggingObserver observer; |
270 service_->AddObserver(&observer); | 250 service_->AddObserver(&observer); |
271 | 251 |
272 EXPECT_TRUE(service_->MountFileSystem( | 252 EXPECT_TRUE( |
273 kExtensionId, kFileSystemId, kDisplayName, false /* writable */)); | 253 service_->MountFileSystem(kExtensionId, kFileSystemId, kDisplayName)); |
274 ASSERT_EQ(1u, observer.mounts.size()); | 254 ASSERT_EQ(1u, observer.mounts.size()); |
275 | 255 |
276 // Directly call the observer's method. | 256 // Directly call the observer's method. |
277 service_->OnExtensionUnloaded( | 257 service_->OnExtensionUnloaded( |
278 profile_.get(), | 258 profile_.get(), |
279 extension_.get(), | 259 extension_.get(), |
280 extensions::UnloadedExtensionInfo::REASON_DISABLE); | 260 extensions::UnloadedExtensionInfo::REASON_DISABLE); |
281 | 261 |
282 ASSERT_EQ(1u, observer.unmounts.size()); | 262 ASSERT_EQ(1u, observer.unmounts.size()); |
283 EXPECT_EQ(base::File::FILE_OK, observer.unmounts[0].error()); | 263 EXPECT_EQ(base::File::FILE_OK, observer.unmounts[0].error()); |
284 | 264 |
285 EXPECT_EQ(kExtensionId, | 265 EXPECT_EQ(kExtensionId, |
286 observer.unmounts[0].file_system_info().extension_id()); | 266 observer.unmounts[0].file_system_info().extension_id()); |
287 EXPECT_EQ(kFileSystemId, | 267 EXPECT_EQ(kFileSystemId, |
288 observer.unmounts[0].file_system_info().file_system_id()); | 268 observer.unmounts[0].file_system_info().file_system_id()); |
289 | 269 |
290 std::vector<ProvidedFileSystemInfo> file_system_info_list = | 270 std::vector<ProvidedFileSystemInfo> file_system_info_list = |
291 service_->GetProvidedFileSystemInfoList(); | 271 service_->GetProvidedFileSystemInfoList(); |
292 ASSERT_EQ(0u, file_system_info_list.size()); | 272 ASSERT_EQ(0u, file_system_info_list.size()); |
293 | 273 |
294 service_->RemoveObserver(&observer); | 274 service_->RemoveObserver(&observer); |
295 } | 275 } |
296 | 276 |
297 TEST_F(FileSystemProviderServiceTest, UnmountFileSystem_WrongExtensionId) { | 277 TEST_F(FileSystemProviderServiceTest, UnmountFileSystem_WrongExtensionId) { |
298 LoggingObserver observer; | 278 LoggingObserver observer; |
299 service_->AddObserver(&observer); | 279 service_->AddObserver(&observer); |
300 | 280 |
301 const std::string kWrongExtensionId = "helloworldhelloworldhelloworldhe"; | 281 const std::string kWrongExtensionId = "helloworldhelloworldhelloworldhe"; |
302 | 282 |
303 EXPECT_TRUE(service_->MountFileSystem( | 283 EXPECT_TRUE( |
304 kExtensionId, kFileSystemId, kDisplayName, false /* writable */)); | 284 service_->MountFileSystem(kExtensionId, kFileSystemId, kDisplayName)); |
305 ASSERT_EQ(1u, observer.mounts.size()); | 285 ASSERT_EQ(1u, observer.mounts.size()); |
306 ASSERT_EQ(1u, service_->GetProvidedFileSystemInfoList().size()); | 286 ASSERT_EQ(1u, service_->GetProvidedFileSystemInfoList().size()); |
307 | 287 |
308 EXPECT_FALSE(service_->UnmountFileSystem( | 288 EXPECT_FALSE(service_->UnmountFileSystem( |
309 kWrongExtensionId, kFileSystemId, Service::UNMOUNT_REASON_USER)); | 289 kWrongExtensionId, kFileSystemId, Service::UNMOUNT_REASON_USER)); |
310 ASSERT_EQ(1u, observer.unmounts.size()); | 290 ASSERT_EQ(1u, observer.unmounts.size()); |
311 EXPECT_EQ(base::File::FILE_ERROR_NOT_FOUND, observer.unmounts[0].error()); | 291 EXPECT_EQ(base::File::FILE_ERROR_NOT_FOUND, observer.unmounts[0].error()); |
312 ASSERT_EQ(1u, service_->GetProvidedFileSystemInfoList().size()); | 292 ASSERT_EQ(1u, service_->GetProvidedFileSystemInfoList().size()); |
313 | 293 |
314 std::vector<ProvidedFileSystemInfo> file_system_info_list = | 294 std::vector<ProvidedFileSystemInfo> file_system_info_list = |
315 service_->GetProvidedFileSystemInfoList(); | 295 service_->GetProvidedFileSystemInfoList(); |
316 ASSERT_EQ(1u, file_system_info_list.size()); | 296 ASSERT_EQ(1u, file_system_info_list.size()); |
317 | 297 |
318 service_->RemoveObserver(&observer); | 298 service_->RemoveObserver(&observer); |
319 } | 299 } |
320 | 300 |
321 TEST_F(FileSystemProviderServiceTest, RestoreFileSystem_OnExtensionLoad) { | 301 TEST_F(FileSystemProviderServiceTest, RestoreFileSystem_OnExtensionLoad) { |
322 // Create a fake entry in the preferences. | 302 // Create a fake entry in the preferences. |
323 RememberFakeFileSystem(profile_.get(), | 303 RememberFakeFileSystem( |
324 kExtensionId, | 304 profile_.get(), kExtensionId, kFileSystemId, kDisplayName); |
325 kFileSystemId, | |
326 kDisplayName, | |
327 true /* writable */); | |
328 | 305 |
329 // Create a new service instance in order to load remembered file systems | 306 // Create a new service instance in order to load remembered file systems |
330 // from preferences. | 307 // from preferences. |
331 scoped_ptr<Service> new_service( | 308 scoped_ptr<Service> new_service( |
332 new Service(profile_.get(), extension_registry_.get())); | 309 new Service(profile_.get(), extension_registry_.get())); |
333 LoggingObserver observer; | 310 LoggingObserver observer; |
334 new_service->AddObserver(&observer); | 311 new_service->AddObserver(&observer); |
335 | 312 |
336 new_service->SetFileSystemFactoryForTesting( | 313 new_service->SetFileSystemFactoryForTesting( |
337 base::Bind(&FakeProvidedFileSystem::Create)); | 314 base::Bind(&FakeProvidedFileSystem::Create)); |
338 | 315 |
339 EXPECT_EQ(0u, observer.mounts.size()); | 316 EXPECT_EQ(0u, observer.mounts.size()); |
340 | 317 |
341 // Directly call the observer's method. | 318 // Directly call the observer's method. |
342 new_service->OnExtensionLoaded(profile_.get(), extension_.get()); | 319 new_service->OnExtensionLoaded(profile_.get(), extension_.get()); |
343 | 320 |
344 ASSERT_EQ(1u, observer.mounts.size()); | 321 ASSERT_EQ(1u, observer.mounts.size()); |
345 EXPECT_EQ(base::File::FILE_OK, observer.mounts[0].error()); | 322 EXPECT_EQ(base::File::FILE_OK, observer.mounts[0].error()); |
346 | 323 |
347 EXPECT_EQ(kExtensionId, observer.mounts[0].file_system_info().extension_id()); | 324 EXPECT_EQ(kExtensionId, observer.mounts[0].file_system_info().extension_id()); |
348 EXPECT_EQ(kFileSystemId, | 325 EXPECT_EQ(kFileSystemId, |
349 observer.mounts[0].file_system_info().file_system_id()); | 326 observer.mounts[0].file_system_info().file_system_id()); |
350 EXPECT_TRUE(observer.mounts[0].file_system_info().writable()); | |
351 | 327 |
352 std::vector<ProvidedFileSystemInfo> file_system_info_list = | 328 std::vector<ProvidedFileSystemInfo> file_system_info_list = |
353 new_service->GetProvidedFileSystemInfoList(); | 329 new_service->GetProvidedFileSystemInfoList(); |
354 ASSERT_EQ(1u, file_system_info_list.size()); | 330 ASSERT_EQ(1u, file_system_info_list.size()); |
355 | 331 |
356 new_service->RemoveObserver(&observer); | 332 new_service->RemoveObserver(&observer); |
357 } | 333 } |
358 | 334 |
359 TEST_F(FileSystemProviderServiceTest, RememberFileSystem_OnMount) { | 335 TEST_F(FileSystemProviderServiceTest, RememberFileSystem_OnMount) { |
360 LoggingObserver observer; | 336 LoggingObserver observer; |
361 service_->AddObserver(&observer); | 337 service_->AddObserver(&observer); |
362 | 338 |
363 EXPECT_TRUE(service_->MountFileSystem( | 339 EXPECT_TRUE( |
364 kExtensionId, kFileSystemId, kDisplayName, true /* writable */)); | 340 service_->MountFileSystem(kExtensionId, kFileSystemId, kDisplayName)); |
365 ASSERT_EQ(1u, observer.mounts.size()); | 341 ASSERT_EQ(1u, observer.mounts.size()); |
366 | 342 |
367 TestingPrefServiceSyncable* const pref_service = | 343 TestingPrefServiceSyncable* const pref_service = |
368 profile_->GetTestingPrefService(); | 344 profile_->GetTestingPrefService(); |
369 ASSERT_TRUE(pref_service); | 345 ASSERT_TRUE(pref_service); |
370 | 346 |
371 const base::DictionaryValue* const extensions = | 347 const base::DictionaryValue* const extensions = |
372 pref_service->GetDictionary(prefs::kFileSystemProviderMounted); | 348 pref_service->GetDictionary(prefs::kFileSystemProviderMounted); |
373 ASSERT_TRUE(extensions); | 349 ASSERT_TRUE(extensions); |
374 | 350 |
(...skipping 11 matching lines...) Expand all Loading... |
386 std::string file_system_id; | 362 std::string file_system_id; |
387 EXPECT_TRUE(file_system->GetStringWithoutPathExpansion(kPrefKeyFileSystemId, | 363 EXPECT_TRUE(file_system->GetStringWithoutPathExpansion(kPrefKeyFileSystemId, |
388 &file_system_id)); | 364 &file_system_id)); |
389 EXPECT_EQ(kFileSystemId, file_system_id); | 365 EXPECT_EQ(kFileSystemId, file_system_id); |
390 | 366 |
391 std::string display_name; | 367 std::string display_name; |
392 EXPECT_TRUE(file_system->GetStringWithoutPathExpansion(kPrefKeyDisplayName, | 368 EXPECT_TRUE(file_system->GetStringWithoutPathExpansion(kPrefKeyDisplayName, |
393 &display_name)); | 369 &display_name)); |
394 EXPECT_EQ(kDisplayName, display_name); | 370 EXPECT_EQ(kDisplayName, display_name); |
395 | 371 |
396 bool writable = false; | |
397 EXPECT_TRUE( | |
398 file_system->GetBooleanWithoutPathExpansion(kPrefKeyWritable, &writable)); | |
399 EXPECT_TRUE(writable); | |
400 | |
401 service_->RemoveObserver(&observer); | 372 service_->RemoveObserver(&observer); |
402 } | 373 } |
403 | 374 |
404 TEST_F(FileSystemProviderServiceTest, RememberFileSystem_OnUnmountOnShutdown) { | 375 TEST_F(FileSystemProviderServiceTest, RememberFileSystem_OnUnmountOnShutdown) { |
405 LoggingObserver observer; | 376 LoggingObserver observer; |
406 service_->AddObserver(&observer); | 377 service_->AddObserver(&observer); |
407 | 378 |
408 TestingPrefServiceSyncable* const pref_service = | 379 TestingPrefServiceSyncable* const pref_service = |
409 profile_->GetTestingPrefService(); | 380 profile_->GetTestingPrefService(); |
410 ASSERT_TRUE(pref_service); | 381 ASSERT_TRUE(pref_service); |
411 | 382 |
412 { | 383 { |
413 EXPECT_TRUE(service_->MountFileSystem( | 384 EXPECT_TRUE( |
414 kExtensionId, kFileSystemId, kDisplayName, false /* writable */)); | 385 service_->MountFileSystem(kExtensionId, kFileSystemId, kDisplayName)); |
415 ASSERT_EQ(1u, observer.mounts.size()); | 386 ASSERT_EQ(1u, observer.mounts.size()); |
416 | 387 |
417 const base::DictionaryValue* extensions = | 388 const base::DictionaryValue* extensions = |
418 pref_service->GetDictionary(prefs::kFileSystemProviderMounted); | 389 pref_service->GetDictionary(prefs::kFileSystemProviderMounted); |
419 ASSERT_TRUE(extensions); | 390 ASSERT_TRUE(extensions); |
420 | 391 |
421 const base::DictionaryValue* file_systems = NULL; | 392 const base::DictionaryValue* file_systems = NULL; |
422 ASSERT_TRUE(extensions->GetDictionaryWithoutPathExpansion(kExtensionId, | 393 ASSERT_TRUE(extensions->GetDictionaryWithoutPathExpansion(kExtensionId, |
423 &file_systems)); | 394 &file_systems)); |
424 EXPECT_EQ(1u, file_systems->size()); | 395 EXPECT_EQ(1u, file_systems->size()); |
(...skipping 18 matching lines...) Expand all Loading... |
443 | 414 |
444 TEST_F(FileSystemProviderServiceTest, RememberFileSystem_OnUnmountByUser) { | 415 TEST_F(FileSystemProviderServiceTest, RememberFileSystem_OnUnmountByUser) { |
445 LoggingObserver observer; | 416 LoggingObserver observer; |
446 service_->AddObserver(&observer); | 417 service_->AddObserver(&observer); |
447 | 418 |
448 TestingPrefServiceSyncable* const pref_service = | 419 TestingPrefServiceSyncable* const pref_service = |
449 profile_->GetTestingPrefService(); | 420 profile_->GetTestingPrefService(); |
450 ASSERT_TRUE(pref_service); | 421 ASSERT_TRUE(pref_service); |
451 | 422 |
452 { | 423 { |
453 EXPECT_TRUE(service_->MountFileSystem( | 424 EXPECT_TRUE( |
454 kExtensionId, kFileSystemId, kDisplayName, false /* writable */)); | 425 service_->MountFileSystem(kExtensionId, kFileSystemId, kDisplayName)); |
455 ASSERT_EQ(1u, observer.mounts.size()); | 426 ASSERT_EQ(1u, observer.mounts.size()); |
456 | 427 |
457 const base::DictionaryValue* extensions = | 428 const base::DictionaryValue* extensions = |
458 pref_service->GetDictionary(prefs::kFileSystemProviderMounted); | 429 pref_service->GetDictionary(prefs::kFileSystemProviderMounted); |
459 ASSERT_TRUE(extensions); | 430 ASSERT_TRUE(extensions); |
460 | 431 |
461 const base::DictionaryValue* file_systems = NULL; | 432 const base::DictionaryValue* file_systems = NULL; |
462 ASSERT_TRUE(extensions->GetDictionaryWithoutPathExpansion(kExtensionId, | 433 ASSERT_TRUE(extensions->GetDictionaryWithoutPathExpansion(kExtensionId, |
463 &file_systems)); | 434 &file_systems)); |
464 EXPECT_EQ(1u, file_systems->size()); | 435 EXPECT_EQ(1u, file_systems->size()); |
(...skipping 10 matching lines...) Expand all Loading... |
475 const base::DictionaryValue* file_systems = NULL; | 446 const base::DictionaryValue* file_systems = NULL; |
476 EXPECT_FALSE(extensions->GetDictionaryWithoutPathExpansion(kExtensionId, | 447 EXPECT_FALSE(extensions->GetDictionaryWithoutPathExpansion(kExtensionId, |
477 &file_systems)); | 448 &file_systems)); |
478 } | 449 } |
479 | 450 |
480 service_->RemoveObserver(&observer); | 451 service_->RemoveObserver(&observer); |
481 } | 452 } |
482 | 453 |
483 } // namespace file_system_provider | 454 } // namespace file_system_provider |
484 } // namespace chromeos | 455 } // namespace chromeos |
OLD | NEW |