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 = |