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

Unified Diff: chrome/browser/chromeos/drive/drive_file_system_util_unittest.cc

Issue 13767002: Use ExtractDrivePath(path()) instead of virtual_path() for getting Drive path. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Use GetDriveMountPointPath() Created 7 years, 8 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/drive/drive_file_system_util_unittest.cc
diff --git a/chrome/browser/chromeos/drive/drive_file_system_util_unittest.cc b/chrome/browser/chromeos/drive/drive_file_system_util_unittest.cc
index 70ba8e5fd874f8d2fcd55a908de0ac2d5e0b3911..c55c1bae0a35c71dbccb79c3b44bd6275fb81b9e 100644
--- a/chrome/browser/chromeos/drive/drive_file_system_util_unittest.cc
+++ b/chrome/browser/chromeos/drive/drive_file_system_util_unittest.cc
@@ -5,8 +5,16 @@
#include "chrome/browser/chromeos/drive/drive_file_system_util.h"
#include "base/files/file_path.h"
+#include "base/files/scoped_temp_dir.h"
+#include "base/message_loop.h"
#include "base/utf_string_conversions.h"
#include "testing/gtest/include/gtest/gtest.h"
+#include "webkit/fileapi/external_mount_points.h"
+#include "webkit/fileapi/file_system_context.h"
+#include "webkit/fileapi/file_system_task_runners.h"
+#include "webkit/fileapi/file_system_url.h"
+#include "webkit/fileapi/isolated_context.h"
+#include "webkit/fileapi/mock_file_system_options.h"
namespace drive {
namespace util {
@@ -76,6 +84,73 @@ TEST(DriveFileSystemUtilTest, ExtractDrivePath) {
"/special/drive/subdir/foo.txt")));
}
+TEST(DriveFileSystemUtilTest, ExtractDrivePathFromFileSystemUrl) {
+ // Set up file system context for testing.
+ base::ScopedTempDir temp_dir_;
+ ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
+
+ MessageLoop message_loop;
+ scoped_refptr<fileapi::ExternalMountPoints> mount_points =
+ fileapi::ExternalMountPoints::CreateRefCounted();
+ scoped_refptr<fileapi::FileSystemContext> context(
+ new fileapi::FileSystemContext(
+ fileapi::FileSystemTaskRunners::CreateMockTaskRunners(),
+ mount_points,
+ NULL, // special_storage_policy
+ NULL, // quota_manager_proxy,
+ temp_dir_.path(), // partition_path
+ fileapi::CreateAllowFileAccessOptions()));
+
+ // Type:"external" + virtual_path:"drive/foo/bar" resolves to "drive/foo/bar".
+ const std::string& drive_mount_name =
+ GetDriveMountPointPath().BaseName().AsUTF8Unsafe();
+ mount_points->RegisterRemoteFileSystem(
+ drive_mount_name,
+ fileapi::kFileSystemTypeDrive,
+ NULL, // RemoteFileSystemProxyInterface
+ GetDriveMountPointPath());
+ EXPECT_EQ(
+ base::FilePath::FromUTF8Unsafe(drive_mount_name + "/foo/bar"),
+ ExtractDrivePathFromFileSystemUrl(context->CrackURL(GURL(
+ "filesystem:chrome-extension://dummy-id/external/" +
+ drive_mount_name + "/foo/bar"))));
+
+ // Virtual mount name should not affect the extracted path.
+ mount_points->RevokeFileSystem(drive_mount_name);
+ mount_points->RegisterRemoteFileSystem(
+ "drive2",
+ fileapi::kFileSystemTypeDrive,
+ NULL, // RemoteFileSystemProxyInterface
+ GetDriveMountPointPath());
+ EXPECT_EQ(
+ base::FilePath::FromUTF8Unsafe(drive_mount_name + "/foo/bar"),
+ ExtractDrivePathFromFileSystemUrl(context->CrackURL(GURL(
+ "filesystem:chrome-extension://dummy-id/external/drive2/foo/bar"))));
+
+ // Type:"external" + virtual_path:"Downloads/foo" is not a Drive path.
+ mount_points->RegisterFileSystem(
+ "Downloads",
+ fileapi::kFileSystemTypeNativeLocal,
+ temp_dir_.path());
+ EXPECT_EQ(
+ base::FilePath(),
+ ExtractDrivePathFromFileSystemUrl(context->CrackURL(GURL(
+ "filesystem:chrome-extension://dummy-id/external/Downloads/foo"))));
+
+ // Type:"isolated" + virtual_path:"isolated_id/name" mapped on a Drive path.
+ std::string isolated_name;
+ std::string isolated_id =
+ fileapi::IsolatedContext::GetInstance()->RegisterFileSystemForPath(
+ fileapi::kFileSystemTypeNativeForPlatformApp,
+ GetDriveMountPointPath().AppendASCII("bar/buz"),
+ &isolated_name);
+ EXPECT_EQ(
+ base::FilePath::FromUTF8Unsafe(drive_mount_name + "/bar/buz"),
+ ExtractDrivePathFromFileSystemUrl(context->CrackURL(GURL(
+ "filesystem:chrome-extension://dummy-id/isolated/" +
+ isolated_id + "/" + isolated_name))));
+}
+
TEST(DriveFileSystemUtilTest, EscapeUnescapeCacheFileName) {
const std::string kUnescapedFileName(
"tmp:`~!@#$%^&*()-_=+[{|]}\\\\;\',<.>/?");
« no previous file with comments | « chrome/browser/chromeos/drive/drive_file_system_util.cc ('k') | chrome/browser/chromeos/drive/drive_task_executor.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698