Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(286)

Unified Diff: chrome/browser/chromeos/file_system_provider/service_unittest.cc

Issue 658313002: [fsp] Store observed entries in preferences. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git/+/master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
}

Powered by Google App Engine
This is Rietveld 408576698