| Index: trunk/src/chrome/browser/chromeos/file_system_provider/service_unittest.cc
|
| ===================================================================
|
| --- trunk/src/chrome/browser/chromeos/file_system_provider/service_unittest.cc (revision 282906)
|
| +++ trunk/src/chrome/browser/chromeos/file_system_provider/service_unittest.cc (working copy)
|
| @@ -100,7 +100,8 @@
|
| void RememberFakeFileSystem(TestingProfile* profile,
|
| const std::string& extension_id,
|
| const std::string& file_system_id,
|
| - const std::string& display_name) {
|
| + const std::string& display_name,
|
| + bool writable) {
|
| TestingPrefServiceSyncable* const pref_service =
|
| profile->GetTestingPrefService();
|
| ASSERT_TRUE(pref_service);
|
| @@ -111,6 +112,7 @@
|
| file_system->SetStringWithoutPathExpansion(kPrefKeyFileSystemId,
|
| kFileSystemId);
|
| file_system->SetStringWithoutPathExpansion(kPrefKeyDisplayName, kDisplayName);
|
| + file_system->SetBooleanWithoutPathExpansion(kPrefKeyWritable, writable);
|
| file_systems->SetWithoutPathExpansion(kFileSystemId, file_system);
|
| extensions.SetWithoutPathExpansion(kExtensionId, file_systems);
|
|
|
| @@ -150,8 +152,8 @@
|
| LoggingObserver observer;
|
| service_->AddObserver(&observer);
|
|
|
| - EXPECT_TRUE(
|
| - service_->MountFileSystem(kExtensionId, kFileSystemId, kDisplayName));
|
| + EXPECT_TRUE(service_->MountFileSystem(
|
| + kExtensionId, kFileSystemId, kDisplayName, false /* writable */));
|
|
|
| ASSERT_EQ(1u, observer.mounts.size());
|
| EXPECT_EQ(kExtensionId, observer.mounts[0].file_system_info().extension_id());
|
| @@ -162,6 +164,7 @@
|
| EXPECT_EQ(expected_mount_path.AsUTF8Unsafe(),
|
| observer.mounts[0].file_system_info().mount_path().AsUTF8Unsafe());
|
| EXPECT_EQ(kDisplayName, observer.mounts[0].file_system_info().display_name());
|
| + EXPECT_FALSE(observer.mounts[0].file_system_info().writable());
|
| EXPECT_EQ(base::File::FILE_OK, observer.mounts[0].error());
|
| ASSERT_EQ(0u, observer.unmounts.size());
|
|
|
| @@ -172,14 +175,31 @@
|
| service_->RemoveObserver(&observer);
|
| }
|
|
|
| +TEST_F(FileSystemProviderServiceTest, MountFileSystem_Writable) {
|
| + LoggingObserver observer;
|
| + service_->AddObserver(&observer);
|
| +
|
| + EXPECT_TRUE(service_->MountFileSystem(
|
| + kExtensionId, kFileSystemId, kDisplayName, true /* writable */));
|
| +
|
| + ASSERT_EQ(1u, observer.mounts.size());
|
| + EXPECT_TRUE(observer.mounts[0].file_system_info().writable());
|
| + ASSERT_EQ(0u, observer.unmounts.size());
|
| + std::vector<ProvidedFileSystemInfo> file_system_info_list =
|
| + service_->GetProvidedFileSystemInfoList();
|
| + ASSERT_EQ(1u, file_system_info_list.size());
|
| +
|
| + service_->RemoveObserver(&observer);
|
| +}
|
| +
|
| TEST_F(FileSystemProviderServiceTest, MountFileSystem_UniqueIds) {
|
| LoggingObserver observer;
|
| service_->AddObserver(&observer);
|
|
|
| - EXPECT_TRUE(
|
| - service_->MountFileSystem(kExtensionId, kFileSystemId, kDisplayName));
|
| - EXPECT_FALSE(
|
| - service_->MountFileSystem(kExtensionId, kFileSystemId, kDisplayName));
|
| + EXPECT_TRUE(service_->MountFileSystem(
|
| + kExtensionId, kFileSystemId, kDisplayName, false /* writable */));
|
| + EXPECT_FALSE(service_->MountFileSystem(
|
| + kExtensionId, kFileSystemId, kDisplayName, false /* writable */));
|
|
|
| ASSERT_EQ(2u, observer.mounts.size());
|
| EXPECT_EQ(base::File::FILE_OK, observer.mounts[0].error());
|
| @@ -200,14 +220,14 @@
|
| for (size_t i = 0; i < kMaxFileSystems; ++i) {
|
| const std::string file_system_id =
|
| std::string("test-") + base::IntToString(i);
|
| - EXPECT_TRUE(
|
| - service_->MountFileSystem(kExtensionId, file_system_id, kDisplayName));
|
| + EXPECT_TRUE(service_->MountFileSystem(
|
| + kExtensionId, file_system_id, kDisplayName, false /* writable */));
|
| }
|
| ASSERT_EQ(kMaxFileSystems, observer.mounts.size());
|
|
|
| // The next file system is out of limit, and registering it should fail.
|
| - EXPECT_FALSE(
|
| - service_->MountFileSystem(kExtensionId, kFileSystemId, kDisplayName));
|
| + EXPECT_FALSE(service_->MountFileSystem(
|
| + kExtensionId, kFileSystemId, kDisplayName, false /* writable */));
|
|
|
| ASSERT_EQ(kMaxFileSystems + 1, observer.mounts.size());
|
| EXPECT_EQ(base::File::FILE_ERROR_TOO_MANY_OPENED,
|
| @@ -224,8 +244,8 @@
|
| LoggingObserver observer;
|
| service_->AddObserver(&observer);
|
|
|
| - EXPECT_TRUE(
|
| - service_->MountFileSystem(kExtensionId, kFileSystemId, kDisplayName));
|
| + EXPECT_TRUE(service_->MountFileSystem(
|
| + kExtensionId, kFileSystemId, kDisplayName, false /* writable */));
|
| ASSERT_EQ(1u, observer.mounts.size());
|
|
|
| EXPECT_TRUE(service_->UnmountFileSystem(
|
| @@ -249,8 +269,8 @@
|
| LoggingObserver observer;
|
| service_->AddObserver(&observer);
|
|
|
| - EXPECT_TRUE(
|
| - service_->MountFileSystem(kExtensionId, kFileSystemId, kDisplayName));
|
| + EXPECT_TRUE(service_->MountFileSystem(
|
| + kExtensionId, kFileSystemId, kDisplayName, false /* writable */));
|
| ASSERT_EQ(1u, observer.mounts.size());
|
|
|
| // Directly call the observer's method.
|
| @@ -280,8 +300,8 @@
|
|
|
| const std::string kWrongExtensionId = "helloworldhelloworldhelloworldhe";
|
|
|
| - EXPECT_TRUE(
|
| - service_->MountFileSystem(kExtensionId, kFileSystemId, kDisplayName));
|
| + EXPECT_TRUE(service_->MountFileSystem(
|
| + kExtensionId, kFileSystemId, kDisplayName, false /* writable */));
|
| ASSERT_EQ(1u, observer.mounts.size());
|
| ASSERT_EQ(1u, service_->GetProvidedFileSystemInfoList().size());
|
|
|
| @@ -300,8 +320,11 @@
|
|
|
| TEST_F(FileSystemProviderServiceTest, RestoreFileSystem_OnExtensionLoad) {
|
| // Create a fake entry in the preferences.
|
| - RememberFakeFileSystem(
|
| - profile_.get(), kExtensionId, kFileSystemId, kDisplayName);
|
| + RememberFakeFileSystem(profile_.get(),
|
| + kExtensionId,
|
| + kFileSystemId,
|
| + kDisplayName,
|
| + true /* writable */);
|
|
|
| // Create a new service instance in order to load remembered file systems
|
| // from preferences.
|
| @@ -324,6 +347,7 @@
|
| EXPECT_EQ(kExtensionId, observer.mounts[0].file_system_info().extension_id());
|
| EXPECT_EQ(kFileSystemId,
|
| observer.mounts[0].file_system_info().file_system_id());
|
| + EXPECT_TRUE(observer.mounts[0].file_system_info().writable());
|
|
|
| std::vector<ProvidedFileSystemInfo> file_system_info_list =
|
| new_service->GetProvidedFileSystemInfoList();
|
| @@ -336,8 +360,8 @@
|
| LoggingObserver observer;
|
| service_->AddObserver(&observer);
|
|
|
| - EXPECT_TRUE(
|
| - service_->MountFileSystem(kExtensionId, kFileSystemId, kDisplayName));
|
| + EXPECT_TRUE(service_->MountFileSystem(
|
| + kExtensionId, kFileSystemId, kDisplayName, true /* writable */));
|
| ASSERT_EQ(1u, observer.mounts.size());
|
|
|
| TestingPrefServiceSyncable* const pref_service =
|
| @@ -369,6 +393,11 @@
|
| &display_name));
|
| EXPECT_EQ(kDisplayName, display_name);
|
|
|
| + bool writable = false;
|
| + EXPECT_TRUE(
|
| + file_system->GetBooleanWithoutPathExpansion(kPrefKeyWritable, &writable));
|
| + EXPECT_TRUE(writable);
|
| +
|
| service_->RemoveObserver(&observer);
|
| }
|
|
|
| @@ -381,8 +410,8 @@
|
| ASSERT_TRUE(pref_service);
|
|
|
| {
|
| - EXPECT_TRUE(
|
| - service_->MountFileSystem(kExtensionId, kFileSystemId, kDisplayName));
|
| + EXPECT_TRUE(service_->MountFileSystem(
|
| + kExtensionId, kFileSystemId, kDisplayName, false /* writable */));
|
| ASSERT_EQ(1u, observer.mounts.size());
|
|
|
| const base::DictionaryValue* extensions =
|
| @@ -421,8 +450,8 @@
|
| ASSERT_TRUE(pref_service);
|
|
|
| {
|
| - EXPECT_TRUE(
|
| - service_->MountFileSystem(kExtensionId, kFileSystemId, kDisplayName));
|
| + EXPECT_TRUE(service_->MountFileSystem(
|
| + kExtensionId, kFileSystemId, kDisplayName, false /* writable */));
|
| ASSERT_EQ(1u, observer.mounts.size());
|
|
|
| const base::DictionaryValue* extensions =
|
|
|