Chromium Code Reviews| Index: chrome/browser/chromeos/file_system_provider/service_unittest.cc |
| diff --git a/chrome/browser/chromeos/file_system_provider/service_unittest.cc b/chrome/browser/chromeos/file_system_provider/service_unittest.cc |
| index 91643d3d6adbbaca673b8a1d0d16731ab2d60d0a..085e2f39e2d8b7ae8b8200b63072e32d838a37a9 100644 |
| --- a/chrome/browser/chromeos/file_system_provider/service_unittest.cc |
| +++ b/chrome/browser/chromeos/file_system_provider/service_unittest.cc |
| @@ -83,7 +83,7 @@ class LoggingObserver : public Observer { |
| }; |
| // Creates a fake extension with the specified |extension_id|. |
| -scoped_refptr<extensions::Extension> createFakeExtension( |
| +scoped_refptr<extensions::Extension> CreateFakeExtension( |
| const std::string& extension_id) { |
| base::DictionaryValue manifest; |
| std::string error; |
| @@ -99,13 +99,15 @@ scoped_refptr<extensions::Extension> createFakeExtension( |
| &error); |
| } |
| -// Stores a provided file system information in preferences. |
| +// Stores a provided file system information in preferences together with a |
| +// fake observed entry. |
| void RememberFakeFileSystem(TestingProfile* profile, |
| const std::string& extension_id, |
| const std::string& file_system_id, |
| const std::string& display_name, |
| bool writable, |
| - bool supports_notify_tag) { |
| + bool supports_notify_tag, |
| + const ObservedEntry& observed_entry) { |
| TestingPrefServiceSyncable* const pref_service = |
| profile->GetTestingPrefService(); |
| ASSERT_TRUE(pref_service); |
| @@ -122,6 +124,20 @@ void RememberFakeFileSystem(TestingProfile* profile, |
| file_systems->SetWithoutPathExpansion(kFileSystemId, file_system); |
| extensions.SetWithoutPathExpansion(kExtensionId, file_systems); |
| + // Remember observed entries. |
| + base::DictionaryValue* observed_entries = new base::DictionaryValue(); |
|
hirono
2014/10/17 08:22:23
nit: base::DictionaryValue* const
mtomasz
2014/10/20 05:11:56
Done.
|
| + file_system->SetWithoutPathExpansion(kPrefKeyObservedEntries, |
| + observed_entries); |
| + base::DictionaryValue* observed_entry_value = new base::DictionaryValue(); |
|
hirono
2014/10/17 08:22:23
nit: base::DictionaryValue* const
mtomasz
2014/10/20 05:11:56
Done.
|
| + observed_entries->SetWithoutPathExpansion(observed_entry.entry_path.value(), |
| + observed_entry_value); |
| + observed_entry_value->SetStringWithoutPathExpansion( |
| + kPrefKeyObservedEntryEntryPath, observed_entry.entry_path.value()); |
| + observed_entry_value->SetBooleanWithoutPathExpansion( |
| + kPrefKeyObservedEntryRecursive, observed_entry.recursive); |
| + observed_entry_value->SetStringWithoutPathExpansion( |
| + kPrefKeyObservedEntryLastTag, observed_entry.last_tag); |
| + |
| pref_service->Set(prefs::kFileSystemProviderMounted, extensions); |
| } |
| @@ -145,7 +161,11 @@ class FileSystemProviderServiceTest : public testing::Test { |
| service_.reset(new Service(profile_, extension_registry_.get())); |
| service_->SetFileSystemFactoryForTesting( |
| base::Bind(&FakeProvidedFileSystem::Create)); |
| - extension_ = createFakeExtension(kExtensionId); |
| + extension_ = CreateFakeExtension(kExtensionId); |
| + fake_observed_entry_.entry_path = |
| + base::FilePath(FILE_PATH_LITERAL("/a/b/c")); |
| + fake_observed_entry_.recursive = true; |
| + fake_observed_entry_.last_tag = "hello-world"; |
| } |
| content::TestBrowserThreadBundle thread_bundle_; |
| @@ -156,6 +176,7 @@ class FileSystemProviderServiceTest : public testing::Test { |
| scoped_ptr<extensions::ExtensionRegistry> extension_registry_; |
| scoped_ptr<Service> service_; |
| scoped_refptr<extensions::Extension> extension_; |
| + ObservedEntry fake_observed_entry_; |
| }; |
| TEST_F(FileSystemProviderServiceTest, MountFileSystem) { |
| @@ -340,7 +361,8 @@ TEST_F(FileSystemProviderServiceTest, RestoreFileSystem_OnExtensionLoad) { |
| kFileSystemId, |
| kDisplayName, |
| true /* writable */, |
| - true /* supports_notify_tag */); |
| + true /* supports_notify_tag */, |
| + fake_observed_entry_); |
| // Create a new service instance in order to load remembered file systems |
| // from preferences. |
| @@ -370,18 +392,41 @@ TEST_F(FileSystemProviderServiceTest, RestoreFileSystem_OnExtensionLoad) { |
| new_service->GetProvidedFileSystemInfoList(); |
| ASSERT_EQ(1u, file_system_info_list.size()); |
| + ProvidedFileSystemInterface* file_system = |
|
hirono
2014/10/17 08:22:23
nit: const
mtomasz
2014/10/20 05:11:56
Done.
|
| + new_service->GetProvidedFileSystem(kExtensionId, kFileSystemId); |
| + ASSERT_TRUE(file_system); |
| + |
| + const ObservedEntries* const observed_entries = |
| + file_system->GetObservedEntries(); |
| + ASSERT_TRUE(observed_entries); |
| + ASSERT_EQ(1u, observed_entries->size()); |
| + |
| + const ObservedEntries::const_iterator restored_observed_entry_it = |
| + observed_entries->find(fake_observed_entry_.entry_path); |
| + ASSERT_NE(observed_entries->end(), restored_observed_entry_it); |
| + |
| + EXPECT_EQ(fake_observed_entry_.entry_path, |
| + restored_observed_entry_it->second.entry_path); |
| + EXPECT_EQ(fake_observed_entry_.recursive, |
| + restored_observed_entry_it->second.recursive); |
| + EXPECT_EQ(fake_observed_entry_.last_tag, |
| + restored_observed_entry_it->second.last_tag); |
| + |
| new_service->RemoveObserver(&observer); |
| } |
| -TEST_F(FileSystemProviderServiceTest, RememberFileSystem_OnMount) { |
| - LoggingObserver observer; |
| - service_->AddObserver(&observer); |
| - |
| +TEST_F(FileSystemProviderServiceTest, RememberFileSystem) { |
| MountOptions options(kFileSystemId, kDisplayName); |
| options.writable = true; |
| options.supports_notify_tag = true; |
| - EXPECT_TRUE(service_->MountFileSystem(kExtensionId, options)); |
| - ASSERT_EQ(1u, observer.mounts.size()); |
| + |
| + ProvidedFileSystemInfo file_system_info( |
| + kExtensionId, options, base::FilePath(FILE_PATH_LITERAL("/a/b/c"))); |
| + |
| + ObservedEntries observed_entries; |
| + observed_entries[fake_observed_entry_.entry_path] = fake_observed_entry_; |
| + |
| + service_->RememberFileSystem(file_system_info, observed_entries); |
| TestingPrefServiceSyncable* const pref_service = |
| profile_->GetTestingPrefService(); |
| @@ -422,6 +467,51 @@ TEST_F(FileSystemProviderServiceTest, RememberFileSystem_OnMount) { |
| kPrefKeySupportsNotifyTag, &supports_notify_tag)); |
| EXPECT_TRUE(supports_notify_tag); |
| + const base::DictionaryValue* observed_entries_value = NULL; |
| + ASSERT_TRUE(file_system->GetDictionaryWithoutPathExpansion( |
| + kPrefKeyObservedEntries, &observed_entries_value)); |
| + |
| + const base::DictionaryValue* observed_entry = NULL; |
| + ASSERT_TRUE(observed_entries_value->GetDictionaryWithoutPathExpansion( |
| + fake_observed_entry_.entry_path.value(), &observed_entry)); |
| + |
| + std::string entry_path; |
| + EXPECT_TRUE(observed_entry->GetStringWithoutPathExpansion( |
| + kPrefKeyObservedEntryEntryPath, &entry_path)); |
| + EXPECT_EQ(fake_observed_entry_.entry_path.value(), entry_path); |
| + |
| + bool recursive = false; |
| + EXPECT_TRUE(observed_entry->GetBooleanWithoutPathExpansion( |
| + kPrefKeyObservedEntryRecursive, &recursive)); |
| + EXPECT_EQ(fake_observed_entry_.recursive, recursive); |
| + |
| + std::string last_tag; |
| + EXPECT_TRUE(observed_entry->GetStringWithoutPathExpansion( |
| + kPrefKeyObservedEntryLastTag, &last_tag)); |
| + EXPECT_EQ(fake_observed_entry_.last_tag, last_tag); |
| +} |
| + |
| +TEST_F(FileSystemProviderServiceTest, RememberFileSystem_OnMount) { |
| + LoggingObserver observer; |
| + service_->AddObserver(&observer); |
| + |
| + TestingPrefServiceSyncable* const pref_service = |
| + profile_->GetTestingPrefService(); |
| + ASSERT_TRUE(pref_service); |
| + |
| + EXPECT_TRUE(service_->MountFileSystem( |
| + kExtensionId, MountOptions(kFileSystemId, kDisplayName))); |
| + ASSERT_EQ(1u, observer.mounts.size()); |
| + |
| + const base::DictionaryValue* extensions = |
| + pref_service->GetDictionary(prefs::kFileSystemProviderMounted); |
| + ASSERT_TRUE(extensions); |
| + |
| + const base::DictionaryValue* file_systems = NULL; |
| + ASSERT_TRUE(extensions->GetDictionaryWithoutPathExpansion(kExtensionId, |
| + &file_systems)); |
| + EXPECT_EQ(1u, file_systems->size()); |
| + |
| service_->RemoveObserver(&observer); |
| } |