summaryrefslogtreecommitdiffstats
path: root/content/browser/fileapi/file_system_context_unittest.cc
diff options
context:
space:
mode:
authornhiroki@chromium.org <nhiroki@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-23 14:11:45 +0000
committernhiroki@chromium.org <nhiroki@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-23 14:11:45 +0000
commitffd90a932e659527d5c3dd298c5d82953aa0b1eb (patch)
tree29b4b4ab233ffc8ec019005a80312fd96622c1bb /content/browser/fileapi/file_system_context_unittest.cc
parent7595f1c885a0b6d4294e9b605c7b1af1017d42f6 (diff)
downloadchromium_src-ffd90a932e659527d5c3dd298c5d82953aa0b1eb.zip
chromium_src-ffd90a932e659527d5c3dd298c5d82953aa0b1eb.tar.gz
chromium_src-ffd90a932e659527d5c3dd298c5d82953aa0b1eb.tar.bz2
FileAPI: Wire up between PluginPrivateFileSystemBackend and FileSystemContext
- FileSystemContext retains PluginPrivateFileSystemBackend object. - The context refuses to serve an URL request for a file in isolated filesystems. BUG=286240 TEST=content_unittests --gtest_filter=PluginPrivateFileSystemBackendTest.* TEST=content_unittests --gtest_filter=FileSystemContextTest.CanServeURLRequest Review URL: https://codereview.chromium.org/34643002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@230412 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/fileapi/file_system_context_unittest.cc')
-rw-r--r--content/browser/fileapi/file_system_context_unittest.cc38
1 files changed, 38 insertions, 0 deletions
diff --git a/content/browser/fileapi/file_system_context_unittest.cc b/content/browser/fileapi/file_system_context_unittest.cc
index 18c6122..63365dc 100644
--- a/content/browser/fileapi/file_system_context_unittest.cc
+++ b/content/browser/fileapi/file_system_context_unittest.cc
@@ -324,6 +324,44 @@ TEST_F(FileSystemContextTest, CrackFileSystemURL) {
kIsolatedFileSystemID);
}
+TEST_F(FileSystemContextTest, CanServeURLRequest) {
+ scoped_refptr<ExternalMountPoints> external_mount_points(
+ ExternalMountPoints::CreateRefCounted());
+ scoped_refptr<FileSystemContext> context(
+ CreateFileSystemContextForTest(external_mount_points.get()));
+
+ // A request for a sandbox mount point should be served.
+ FileSystemURL cracked_url =
+ context->CrackURL(CreateRawFileSystemURL("persistent", "pers_mount"));
+ EXPECT_EQ(kFileSystemTypePersistent, cracked_url.mount_type());
+ EXPECT_TRUE(context->CanServeURLRequest(cracked_url));
+
+ // A request for an isolated mount point should NOT be served.
+ std::string isolated_fs_name = "root";
+ std::string isolated_fs_id =
+ IsolatedContext::GetInstance()->RegisterFileSystemForPath(
+ kFileSystemTypeNativeLocal,
+ base::FilePath(DRIVE FPL("/test/isolated/root")),
+ &isolated_fs_name);
+ cracked_url = context->CrackURL(
+ CreateRawFileSystemURL("isolated", isolated_fs_id));
+ EXPECT_EQ(kFileSystemTypeIsolated, cracked_url.mount_type());
+ EXPECT_FALSE(context->CanServeURLRequest(cracked_url));
+
+ // A request for an external mount point should be served.
+ const std::string kExternalMountName = "ext_mount";
+ ASSERT_TRUE(ExternalMountPoints::GetSystemInstance()->RegisterFileSystem(
+ kExternalMountName, kFileSystemTypeDrive, base::FilePath()));
+ cracked_url = context->CrackURL(
+ CreateRawFileSystemURL("external", kExternalMountName));
+ EXPECT_EQ(kFileSystemTypeExternal, cracked_url.mount_type());
+ EXPECT_TRUE(context->CanServeURLRequest(cracked_url));
+
+ ExternalMountPoints::GetSystemInstance()->RevokeFileSystem(
+ kExternalMountName);
+ IsolatedContext::GetInstance()->RevokeFileSystem(isolated_fs_id);
+}
+
} // namespace
} // namespace fileapi