| 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 15 matching lines...) Expand all Loading... |
| 26 #include "extensions/common/manifest_constants.h" | 26 #include "extensions/common/manifest_constants.h" |
| 27 #include "testing/gtest/include/gtest/gtest.h" | 27 #include "testing/gtest/include/gtest/gtest.h" |
| 28 #include "webkit/browser/fileapi/external_mount_points.h" | 28 #include "webkit/browser/fileapi/external_mount_points.h" |
| 29 | 29 |
| 30 namespace chromeos { | 30 namespace chromeos { |
| 31 namespace file_system_provider { | 31 namespace file_system_provider { |
| 32 namespace { | 32 namespace { |
| 33 | 33 |
| 34 const char kExtensionId[] = "mbflcebpggnecokmikipoihdbecnjfoj"; | 34 const char kExtensionId[] = "mbflcebpggnecokmikipoihdbecnjfoj"; |
| 35 const char kFileSystemId[] = "camera/pictures/id !@#$%^&*()_+"; | 35 const char kFileSystemId[] = "camera/pictures/id !@#$%^&*()_+"; |
| 36 const char kFileSystemName[] = "Camera Pictures"; | 36 const char kDisplayName[] = "Camera Pictures"; |
| 37 | 37 |
| 38 // Utility observer, logging events from file_system_provider::Service. | 38 // Utility observer, logging events from file_system_provider::Service. |
| 39 class LoggingObserver : public Observer { | 39 class LoggingObserver : public Observer { |
| 40 public: | 40 public: |
| 41 class Event { | 41 class Event { |
| 42 public: | 42 public: |
| 43 Event(const ProvidedFileSystemInfo& file_system_info, | 43 Event(const ProvidedFileSystemInfo& file_system_info, |
| 44 base::File::Error error) | 44 base::File::Error error) |
| 45 : file_system_info_(file_system_info), error_(error) {} | 45 : file_system_info_(file_system_info), error_(error) {} |
| 46 ~Event() {} | 46 ~Event() {} |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 87 manifest, | 87 manifest, |
| 88 extensions::Extension::NO_FLAGS, | 88 extensions::Extension::NO_FLAGS, |
| 89 extension_id, | 89 extension_id, |
| 90 &error); | 90 &error); |
| 91 } | 91 } |
| 92 | 92 |
| 93 // Stores a provided file system information in preferences. | 93 // Stores a provided file system information in preferences. |
| 94 void RememberFakeFileSystem(TestingProfile* profile, | 94 void RememberFakeFileSystem(TestingProfile* profile, |
| 95 const std::string& extension_id, | 95 const std::string& extension_id, |
| 96 const std::string& file_system_id, | 96 const std::string& file_system_id, |
| 97 const std::string& file_system_name) { | 97 const std::string& display_name) { |
| 98 TestingPrefServiceSyncable* pref_service = profile->GetTestingPrefService(); | 98 TestingPrefServiceSyncable* pref_service = profile->GetTestingPrefService(); |
| 99 ASSERT_TRUE(pref_service); | 99 ASSERT_TRUE(pref_service); |
| 100 | 100 |
| 101 base::DictionaryValue extensions; | 101 base::DictionaryValue extensions; |
| 102 base::ListValue* file_systems = new base::ListValue(); | 102 base::ListValue* file_systems = new base::ListValue(); |
| 103 base::DictionaryValue* file_system = new base::DictionaryValue(); | 103 base::DictionaryValue* file_system = new base::DictionaryValue(); |
| 104 file_system->SetString(kPrefKeyFileSystemId, kFileSystemId); | 104 file_system->SetString(kPrefKeyFileSystemId, kFileSystemId); |
| 105 file_system->SetString(kPrefKeyFileSystemName, kFileSystemName); | 105 file_system->SetString(kPrefKeyDisplayName, kDisplayName); |
| 106 file_systems->Append(file_system); | 106 file_systems->Append(file_system); |
| 107 extensions.Set(kExtensionId, file_systems); | 107 extensions.Set(kExtensionId, file_systems); |
| 108 | 108 |
| 109 pref_service->Set(prefs::kFileSystemProviderMounted, extensions); | 109 pref_service->Set(prefs::kFileSystemProviderMounted, extensions); |
| 110 } | 110 } |
| 111 | 111 |
| 112 } // namespace | 112 } // namespace |
| 113 | 113 |
| 114 class FileSystemProviderServiceTest : public testing::Test { | 114 class FileSystemProviderServiceTest : public testing::Test { |
| 115 protected: | 115 protected: |
| (...skipping 21 matching lines...) Expand all Loading... |
| 137 scoped_ptr<extensions::ExtensionRegistry> extension_registry_; | 137 scoped_ptr<extensions::ExtensionRegistry> extension_registry_; |
| 138 scoped_ptr<Service> file_system_provider_service_; | 138 scoped_ptr<Service> file_system_provider_service_; |
| 139 scoped_refptr<extensions::Extension> extension_; | 139 scoped_refptr<extensions::Extension> extension_; |
| 140 }; | 140 }; |
| 141 | 141 |
| 142 TEST_F(FileSystemProviderServiceTest, MountFileSystem) { | 142 TEST_F(FileSystemProviderServiceTest, MountFileSystem) { |
| 143 LoggingObserver observer; | 143 LoggingObserver observer; |
| 144 file_system_provider_service_->AddObserver(&observer); | 144 file_system_provider_service_->AddObserver(&observer); |
| 145 | 145 |
| 146 const bool result = file_system_provider_service_->MountFileSystem( | 146 const bool result = file_system_provider_service_->MountFileSystem( |
| 147 kExtensionId, kFileSystemId, kFileSystemName); | 147 kExtensionId, kFileSystemId, kDisplayName); |
| 148 EXPECT_TRUE(result); | 148 EXPECT_TRUE(result); |
| 149 | 149 |
| 150 ASSERT_EQ(1u, observer.mounts.size()); | 150 ASSERT_EQ(1u, observer.mounts.size()); |
| 151 EXPECT_EQ(kExtensionId, observer.mounts[0].file_system_info().extension_id()); | 151 EXPECT_EQ(kExtensionId, observer.mounts[0].file_system_info().extension_id()); |
| 152 EXPECT_EQ(kFileSystemId, | 152 EXPECT_EQ(kFileSystemId, |
| 153 observer.mounts[0].file_system_info().file_system_id()); | 153 observer.mounts[0].file_system_info().file_system_id()); |
| 154 base::FilePath expected_mount_path = | 154 base::FilePath expected_mount_path = |
| 155 util::GetMountPath(profile_.get(), kExtensionId, kFileSystemId); | 155 util::GetMountPath(profile_.get(), kExtensionId, kFileSystemId); |
| 156 EXPECT_EQ(expected_mount_path.AsUTF8Unsafe(), | 156 EXPECT_EQ(expected_mount_path.AsUTF8Unsafe(), |
| 157 observer.mounts[0].file_system_info().mount_path().AsUTF8Unsafe()); | 157 observer.mounts[0].file_system_info().mount_path().AsUTF8Unsafe()); |
| 158 EXPECT_EQ(kFileSystemName, | 158 EXPECT_EQ(kDisplayName, observer.mounts[0].file_system_info().display_name()); |
| 159 observer.mounts[0].file_system_info().file_system_name()); | |
| 160 EXPECT_EQ(base::File::FILE_OK, observer.mounts[0].error()); | 159 EXPECT_EQ(base::File::FILE_OK, observer.mounts[0].error()); |
| 161 ASSERT_EQ(0u, observer.unmounts.size()); | 160 ASSERT_EQ(0u, observer.unmounts.size()); |
| 162 | 161 |
| 163 std::vector<ProvidedFileSystemInfo> file_system_info_list = | 162 std::vector<ProvidedFileSystemInfo> file_system_info_list = |
| 164 file_system_provider_service_->GetProvidedFileSystemInfoList(); | 163 file_system_provider_service_->GetProvidedFileSystemInfoList(); |
| 165 ASSERT_EQ(1u, file_system_info_list.size()); | 164 ASSERT_EQ(1u, file_system_info_list.size()); |
| 166 | 165 |
| 167 file_system_provider_service_->RemoveObserver(&observer); | 166 file_system_provider_service_->RemoveObserver(&observer); |
| 168 } | 167 } |
| 169 | 168 |
| 170 TEST_F(FileSystemProviderServiceTest, MountFileSystem_UniqueIds) { | 169 TEST_F(FileSystemProviderServiceTest, MountFileSystem_UniqueIds) { |
| 171 LoggingObserver observer; | 170 LoggingObserver observer; |
| 172 file_system_provider_service_->AddObserver(&observer); | 171 file_system_provider_service_->AddObserver(&observer); |
| 173 | 172 |
| 174 const bool result = file_system_provider_service_->MountFileSystem( | 173 const bool result = file_system_provider_service_->MountFileSystem( |
| 175 kExtensionId, kFileSystemId, kFileSystemName); | 174 kExtensionId, kFileSystemId, kDisplayName); |
| 176 EXPECT_TRUE(result); | 175 EXPECT_TRUE(result); |
| 177 | 176 |
| 178 const bool second_result = file_system_provider_service_->MountFileSystem( | 177 const bool second_result = file_system_provider_service_->MountFileSystem( |
| 179 kExtensionId, kFileSystemId, kFileSystemName); | 178 kExtensionId, kFileSystemId, kDisplayName); |
| 180 EXPECT_FALSE(second_result); | 179 EXPECT_FALSE(second_result); |
| 181 | 180 |
| 182 ASSERT_EQ(2u, observer.mounts.size()); | 181 ASSERT_EQ(2u, observer.mounts.size()); |
| 183 EXPECT_EQ(base::File::FILE_OK, observer.mounts[0].error()); | 182 EXPECT_EQ(base::File::FILE_OK, observer.mounts[0].error()); |
| 184 EXPECT_EQ(base::File::FILE_ERROR_EXISTS, observer.mounts[1].error()); | 183 EXPECT_EQ(base::File::FILE_ERROR_EXISTS, observer.mounts[1].error()); |
| 185 | 184 |
| 186 std::vector<ProvidedFileSystemInfo> file_system_info_list = | 185 std::vector<ProvidedFileSystemInfo> file_system_info_list = |
| 187 file_system_provider_service_->GetProvidedFileSystemInfoList(); | 186 file_system_provider_service_->GetProvidedFileSystemInfoList(); |
| 188 ASSERT_EQ(1u, file_system_info_list.size()); | 187 ASSERT_EQ(1u, file_system_info_list.size()); |
| 189 | 188 |
| 190 file_system_provider_service_->RemoveObserver(&observer); | 189 file_system_provider_service_->RemoveObserver(&observer); |
| 191 } | 190 } |
| 192 | 191 |
| 193 TEST_F(FileSystemProviderServiceTest, MountFileSystem_StressTest) { | 192 TEST_F(FileSystemProviderServiceTest, MountFileSystem_StressTest) { |
| 194 LoggingObserver observer; | 193 LoggingObserver observer; |
| 195 file_system_provider_service_->AddObserver(&observer); | 194 file_system_provider_service_->AddObserver(&observer); |
| 196 | 195 |
| 197 const size_t kMaxFileSystems = 16; | 196 const size_t kMaxFileSystems = 16; |
| 198 for (size_t i = 0; i < kMaxFileSystems; ++i) { | 197 for (size_t i = 0; i < kMaxFileSystems; ++i) { |
| 199 const std::string file_system_id = | 198 const std::string file_system_id = |
| 200 std::string("test-") + base::IntToString(i); | 199 std::string("test-") + base::IntToString(i); |
| 201 const bool result = file_system_provider_service_->MountFileSystem( | 200 const bool result = file_system_provider_service_->MountFileSystem( |
| 202 kExtensionId, file_system_id, kFileSystemName); | 201 kExtensionId, file_system_id, kDisplayName); |
| 203 EXPECT_TRUE(result); | 202 EXPECT_TRUE(result); |
| 204 } | 203 } |
| 205 ASSERT_EQ(kMaxFileSystems, observer.mounts.size()); | 204 ASSERT_EQ(kMaxFileSystems, observer.mounts.size()); |
| 206 | 205 |
| 207 // The next file system is out of limit, and registering it should fail. | 206 // The next file system is out of limit, and registering it should fail. |
| 208 const bool result = file_system_provider_service_->MountFileSystem( | 207 const bool result = file_system_provider_service_->MountFileSystem( |
| 209 kExtensionId, kFileSystemId, kFileSystemName); | 208 kExtensionId, kFileSystemId, kDisplayName); |
| 210 EXPECT_FALSE(result); | 209 EXPECT_FALSE(result); |
| 211 | 210 |
| 212 ASSERT_EQ(kMaxFileSystems + 1, observer.mounts.size()); | 211 ASSERT_EQ(kMaxFileSystems + 1, observer.mounts.size()); |
| 213 EXPECT_EQ(base::File::FILE_ERROR_TOO_MANY_OPENED, | 212 EXPECT_EQ(base::File::FILE_ERROR_TOO_MANY_OPENED, |
| 214 observer.mounts[kMaxFileSystems].error()); | 213 observer.mounts[kMaxFileSystems].error()); |
| 215 | 214 |
| 216 std::vector<ProvidedFileSystemInfo> file_system_info_list = | 215 std::vector<ProvidedFileSystemInfo> file_system_info_list = |
| 217 file_system_provider_service_->GetProvidedFileSystemInfoList(); | 216 file_system_provider_service_->GetProvidedFileSystemInfoList(); |
| 218 ASSERT_EQ(kMaxFileSystems, file_system_info_list.size()); | 217 ASSERT_EQ(kMaxFileSystems, file_system_info_list.size()); |
| 219 | 218 |
| 220 file_system_provider_service_->RemoveObserver(&observer); | 219 file_system_provider_service_->RemoveObserver(&observer); |
| 221 } | 220 } |
| 222 | 221 |
| 223 TEST_F(FileSystemProviderServiceTest, UnmountFileSystem) { | 222 TEST_F(FileSystemProviderServiceTest, UnmountFileSystem) { |
| 224 LoggingObserver observer; | 223 LoggingObserver observer; |
| 225 file_system_provider_service_->AddObserver(&observer); | 224 file_system_provider_service_->AddObserver(&observer); |
| 226 | 225 |
| 227 const bool result = file_system_provider_service_->MountFileSystem( | 226 const bool result = file_system_provider_service_->MountFileSystem( |
| 228 kExtensionId, kFileSystemId, kFileSystemName); | 227 kExtensionId, kFileSystemId, kDisplayName); |
| 229 EXPECT_TRUE(result); | 228 EXPECT_TRUE(result); |
| 230 ASSERT_EQ(1u, observer.mounts.size()); | 229 ASSERT_EQ(1u, observer.mounts.size()); |
| 231 | 230 |
| 232 const bool unmount_result = file_system_provider_service_->UnmountFileSystem( | 231 const bool unmount_result = file_system_provider_service_->UnmountFileSystem( |
| 233 kExtensionId, kFileSystemId); | 232 kExtensionId, kFileSystemId); |
| 234 EXPECT_TRUE(unmount_result); | 233 EXPECT_TRUE(unmount_result); |
| 235 ASSERT_EQ(1u, observer.unmounts.size()); | 234 ASSERT_EQ(1u, observer.unmounts.size()); |
| 236 EXPECT_EQ(base::File::FILE_OK, observer.unmounts[0].error()); | 235 EXPECT_EQ(base::File::FILE_OK, observer.unmounts[0].error()); |
| 237 | 236 |
| 238 EXPECT_EQ(kExtensionId, | 237 EXPECT_EQ(kExtensionId, |
| 239 observer.unmounts[0].file_system_info().extension_id()); | 238 observer.unmounts[0].file_system_info().extension_id()); |
| 240 EXPECT_EQ(kFileSystemId, | 239 EXPECT_EQ(kFileSystemId, |
| 241 observer.unmounts[0].file_system_info().file_system_id()); | 240 observer.unmounts[0].file_system_info().file_system_id()); |
| 242 | 241 |
| 243 std::vector<ProvidedFileSystemInfo> file_system_info_list = | 242 std::vector<ProvidedFileSystemInfo> file_system_info_list = |
| 244 file_system_provider_service_->GetProvidedFileSystemInfoList(); | 243 file_system_provider_service_->GetProvidedFileSystemInfoList(); |
| 245 ASSERT_EQ(0u, file_system_info_list.size()); | 244 ASSERT_EQ(0u, file_system_info_list.size()); |
| 246 | 245 |
| 247 file_system_provider_service_->RemoveObserver(&observer); | 246 file_system_provider_service_->RemoveObserver(&observer); |
| 248 } | 247 } |
| 249 | 248 |
| 250 TEST_F(FileSystemProviderServiceTest, UnmountFileSystem_OnExtensionUnload) { | 249 TEST_F(FileSystemProviderServiceTest, UnmountFileSystem_OnExtensionUnload) { |
| 251 LoggingObserver observer; | 250 LoggingObserver observer; |
| 252 file_system_provider_service_->AddObserver(&observer); | 251 file_system_provider_service_->AddObserver(&observer); |
| 253 | 252 |
| 254 const bool result = file_system_provider_service_->MountFileSystem( | 253 const bool result = file_system_provider_service_->MountFileSystem( |
| 255 kExtensionId, kFileSystemId, kFileSystemName); | 254 kExtensionId, kFileSystemId, kDisplayName); |
| 256 EXPECT_TRUE(result); | 255 EXPECT_TRUE(result); |
| 257 ASSERT_EQ(1u, observer.mounts.size()); | 256 ASSERT_EQ(1u, observer.mounts.size()); |
| 258 | 257 |
| 259 // Directly call the observer's method. | 258 // Directly call the observer's method. |
| 260 file_system_provider_service_->OnExtensionUnloaded( | 259 file_system_provider_service_->OnExtensionUnloaded( |
| 261 profile_.get(), | 260 profile_.get(), |
| 262 extension_.get(), | 261 extension_.get(), |
| 263 extensions::UnloadedExtensionInfo::REASON_DISABLE); | 262 extensions::UnloadedExtensionInfo::REASON_DISABLE); |
| 264 | 263 |
| 265 ASSERT_EQ(1u, observer.unmounts.size()); | 264 ASSERT_EQ(1u, observer.unmounts.size()); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 277 file_system_provider_service_->RemoveObserver(&observer); | 276 file_system_provider_service_->RemoveObserver(&observer); |
| 278 } | 277 } |
| 279 | 278 |
| 280 TEST_F(FileSystemProviderServiceTest, UnmountFileSystem_WrongExtensionId) { | 279 TEST_F(FileSystemProviderServiceTest, UnmountFileSystem_WrongExtensionId) { |
| 281 LoggingObserver observer; | 280 LoggingObserver observer; |
| 282 file_system_provider_service_->AddObserver(&observer); | 281 file_system_provider_service_->AddObserver(&observer); |
| 283 | 282 |
| 284 const std::string kWrongExtensionId = "helloworldhelloworldhelloworldhe"; | 283 const std::string kWrongExtensionId = "helloworldhelloworldhelloworldhe"; |
| 285 | 284 |
| 286 const bool result = file_system_provider_service_->MountFileSystem( | 285 const bool result = file_system_provider_service_->MountFileSystem( |
| 287 kExtensionId, kFileSystemId, kFileSystemName); | 286 kExtensionId, kFileSystemId, kDisplayName); |
| 288 EXPECT_TRUE(result); | 287 EXPECT_TRUE(result); |
| 289 ASSERT_EQ(1u, observer.mounts.size()); | 288 ASSERT_EQ(1u, observer.mounts.size()); |
| 290 ASSERT_EQ( | 289 ASSERT_EQ( |
| 291 1u, | 290 1u, |
| 292 file_system_provider_service_->GetProvidedFileSystemInfoList().size()); | 291 file_system_provider_service_->GetProvidedFileSystemInfoList().size()); |
| 293 | 292 |
| 294 const bool unmount_result = file_system_provider_service_->UnmountFileSystem( | 293 const bool unmount_result = file_system_provider_service_->UnmountFileSystem( |
| 295 kWrongExtensionId, kFileSystemId); | 294 kWrongExtensionId, kFileSystemId); |
| 296 EXPECT_FALSE(unmount_result); | 295 EXPECT_FALSE(unmount_result); |
| 297 ASSERT_EQ(1u, observer.unmounts.size()); | 296 ASSERT_EQ(1u, observer.unmounts.size()); |
| 298 EXPECT_EQ(base::File::FILE_ERROR_NOT_FOUND, observer.unmounts[0].error()); | 297 EXPECT_EQ(base::File::FILE_ERROR_NOT_FOUND, observer.unmounts[0].error()); |
| 299 ASSERT_EQ( | 298 ASSERT_EQ( |
| 300 1u, | 299 1u, |
| 301 file_system_provider_service_->GetProvidedFileSystemInfoList().size()); | 300 file_system_provider_service_->GetProvidedFileSystemInfoList().size()); |
| 302 | 301 |
| 303 std::vector<ProvidedFileSystemInfo> file_system_info_list = | 302 std::vector<ProvidedFileSystemInfo> file_system_info_list = |
| 304 file_system_provider_service_->GetProvidedFileSystemInfoList(); | 303 file_system_provider_service_->GetProvidedFileSystemInfoList(); |
| 305 ASSERT_EQ(1u, file_system_info_list.size()); | 304 ASSERT_EQ(1u, file_system_info_list.size()); |
| 306 | 305 |
| 307 file_system_provider_service_->RemoveObserver(&observer); | 306 file_system_provider_service_->RemoveObserver(&observer); |
| 308 } | 307 } |
| 309 | 308 |
| 310 TEST_F(FileSystemProviderServiceTest, RestoreFileSystem_OnExtensionLoad) { | 309 TEST_F(FileSystemProviderServiceTest, RestoreFileSystem_OnExtensionLoad) { |
| 311 LoggingObserver observer; | 310 LoggingObserver observer; |
| 312 file_system_provider_service_->AddObserver(&observer); | 311 file_system_provider_service_->AddObserver(&observer); |
| 313 | 312 |
| 314 // Create a fake entry in the preferences. | 313 // Create a fake entry in the preferences. |
| 315 RememberFakeFileSystem( | 314 RememberFakeFileSystem( |
| 316 profile_.get(), kExtensionId, kFileSystemId, kFileSystemName); | 315 profile_.get(), kExtensionId, kFileSystemId, kDisplayName); |
| 317 | 316 |
| 318 EXPECT_EQ(0u, observer.mounts.size()); | 317 EXPECT_EQ(0u, observer.mounts.size()); |
| 319 | 318 |
| 320 // Directly call the observer's method. | 319 // Directly call the observer's method. |
| 321 file_system_provider_service_->OnExtensionLoaded(profile_.get(), | 320 file_system_provider_service_->OnExtensionLoaded(profile_.get(), |
| 322 extension_.get()); | 321 extension_.get()); |
| 323 | 322 |
| 324 ASSERT_EQ(1u, observer.mounts.size()); | 323 ASSERT_EQ(1u, observer.mounts.size()); |
| 325 EXPECT_EQ(base::File::FILE_OK, observer.mounts[0].error()); | 324 EXPECT_EQ(base::File::FILE_OK, observer.mounts[0].error()); |
| 326 | 325 |
| 327 EXPECT_EQ(kExtensionId, observer.mounts[0].file_system_info().extension_id()); | 326 EXPECT_EQ(kExtensionId, observer.mounts[0].file_system_info().extension_id()); |
| 328 EXPECT_EQ(kFileSystemId, | 327 EXPECT_EQ(kFileSystemId, |
| 329 observer.mounts[0].file_system_info().file_system_id()); | 328 observer.mounts[0].file_system_info().file_system_id()); |
| 330 | 329 |
| 331 std::vector<ProvidedFileSystemInfo> file_system_info_list = | 330 std::vector<ProvidedFileSystemInfo> file_system_info_list = |
| 332 file_system_provider_service_->GetProvidedFileSystemInfoList(); | 331 file_system_provider_service_->GetProvidedFileSystemInfoList(); |
| 333 ASSERT_EQ(1u, file_system_info_list.size()); | 332 ASSERT_EQ(1u, file_system_info_list.size()); |
| 334 | 333 |
| 335 file_system_provider_service_->RemoveObserver(&observer); | 334 file_system_provider_service_->RemoveObserver(&observer); |
| 336 } | 335 } |
| 337 | 336 |
| 338 TEST_F(FileSystemProviderServiceTest, ForgetFileSystem_OnExtensionUnload) { | 337 TEST_F(FileSystemProviderServiceTest, ForgetFileSystem_OnExtensionUnload) { |
| 339 LoggingObserver observer; | 338 LoggingObserver observer; |
| 340 file_system_provider_service_->AddObserver(&observer); | 339 file_system_provider_service_->AddObserver(&observer); |
| 341 | 340 |
| 342 // Create a fake entry in the preferences. | 341 // Create a fake entry in the preferences. |
| 343 RememberFakeFileSystem( | 342 RememberFakeFileSystem( |
| 344 profile_.get(), kExtensionId, kFileSystemId, kFileSystemName); | 343 profile_.get(), kExtensionId, kFileSystemId, kDisplayName); |
| 345 | 344 |
| 346 // Directly call the observer's methods. | 345 // Directly call the observer's methods. |
| 347 file_system_provider_service_->OnExtensionLoaded(profile_.get(), | 346 file_system_provider_service_->OnExtensionLoaded(profile_.get(), |
| 348 extension_.get()); | 347 extension_.get()); |
| 349 | 348 |
| 350 file_system_provider_service_->OnExtensionUnloaded( | 349 file_system_provider_service_->OnExtensionUnloaded( |
| 351 profile_.get(), | 350 profile_.get(), |
| 352 extension_.get(), | 351 extension_.get(), |
| 353 extensions::UnloadedExtensionInfo::REASON_DISABLE); | 352 extensions::UnloadedExtensionInfo::REASON_DISABLE); |
| 354 | 353 |
| (...skipping 19 matching lines...) Expand all Loading... |
| 374 { | 373 { |
| 375 scoped_ptr<Service> service( | 374 scoped_ptr<Service> service( |
| 376 new Service(profile_.get(), extension_registry_.get())); | 375 new Service(profile_.get(), extension_registry_.get())); |
| 377 service->SetFileSystemFactoryForTesting( | 376 service->SetFileSystemFactoryForTesting( |
| 378 base::Bind(&FakeProvidedFileSystem::Create)); | 377 base::Bind(&FakeProvidedFileSystem::Create)); |
| 379 | 378 |
| 380 LoggingObserver observer; | 379 LoggingObserver observer; |
| 381 service->AddObserver(&observer); | 380 service->AddObserver(&observer); |
| 382 | 381 |
| 383 const bool result = | 382 const bool result = |
| 384 service->MountFileSystem(kExtensionId, kFileSystemId, kFileSystemName); | 383 service->MountFileSystem(kExtensionId, kFileSystemId, kDisplayName); |
| 385 EXPECT_TRUE(result); | 384 EXPECT_TRUE(result); |
| 386 ASSERT_EQ(1u, observer.mounts.size()); | 385 ASSERT_EQ(1u, observer.mounts.size()); |
| 387 | 386 |
| 388 service->RemoveObserver(&observer); | 387 service->RemoveObserver(&observer); |
| 389 } | 388 } |
| 390 | 389 |
| 391 TestingPrefServiceSyncable* pref_service = profile_->GetTestingPrefService(); | 390 TestingPrefServiceSyncable* pref_service = profile_->GetTestingPrefService(); |
| 392 ASSERT_TRUE(pref_service); | 391 ASSERT_TRUE(pref_service); |
| 393 | 392 |
| 394 const base::DictionaryValue* extensions = | 393 const base::DictionaryValue* extensions = |
| 395 pref_service->GetDictionary(prefs::kFileSystemProviderMounted); | 394 pref_service->GetDictionary(prefs::kFileSystemProviderMounted); |
| 396 ASSERT_TRUE(extensions); | 395 ASSERT_TRUE(extensions); |
| 397 | 396 |
| 398 const base::ListValue* file_systems; | 397 const base::ListValue* file_systems; |
| 399 ASSERT_TRUE(extensions->GetList(kExtensionId, &file_systems)); | 398 ASSERT_TRUE(extensions->GetList(kExtensionId, &file_systems)); |
| 400 ASSERT_EQ(1u, file_systems->GetSize()); | 399 ASSERT_EQ(1u, file_systems->GetSize()); |
| 401 | 400 |
| 402 const base::DictionaryValue* file_system = NULL; | 401 const base::DictionaryValue* file_system = NULL; |
| 403 ASSERT_TRUE(file_systems->GetDictionary(0, &file_system)); | 402 ASSERT_TRUE(file_systems->GetDictionary(0, &file_system)); |
| 404 | 403 |
| 405 std::string file_system_id; | 404 std::string file_system_id; |
| 406 file_system->GetString(kPrefKeyFileSystemId, &file_system_id); | 405 file_system->GetString(kPrefKeyFileSystemId, &file_system_id); |
| 407 EXPECT_EQ(kFileSystemId, file_system_id); | 406 EXPECT_EQ(kFileSystemId, file_system_id); |
| 408 | 407 |
| 409 std::string file_system_name; | 408 std::string display_name; |
| 410 file_system->GetString(kPrefKeyFileSystemName, &file_system_name); | 409 file_system->GetString(kPrefKeyDisplayName, &display_name); |
| 411 EXPECT_EQ(kFileSystemName, file_system_name); | 410 EXPECT_EQ(kDisplayName, display_name); |
| 412 } | 411 } |
| 413 | 412 |
| 414 } // namespace file_system_provider | 413 } // namespace file_system_provider |
| 415 } // namespace chromeos | 414 } // namespace chromeos |
| OLD | NEW |