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

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: Add more comprehensive tests. 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..935579d0ae278502741a6de74b8cba01698813e8 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,15 @@
#include "chrome/browser/chromeos/drive/drive_file_system_util.h"
#include "base/files/file_path.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 +83,55 @@ TEST(DriveFileSystemUtilTest, ExtractDrivePath) {
"/special/drive/subdir/foo.txt")));
}
+TEST(DriveFileSystemUtilTest, ExtractDrivePathFromFileSystemUrl) {
+ // Set up file system context for testing.
+ 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,
+ base::FilePath::FromUTF8Unsafe("/tmp"), // partition_path
hashimoto 2013/04/08 06:03:49 Using "/tmp" seems not multi platform friendly. Ho
kinaba 2013/04/08 06:43:41 Done.
+ fileapi::CreateAllowFileAccessOptions()));
+
+ // Type:"external" + virtual_path:"drive/foo/bar" resolves to "drive/foo/bar".
+ mount_points->RegisterRemoteFileSystem(
+ "drive",
+ fileapi::kFileSystemTypeDrive,
+ NULL, // RemoteFileSystemProxyInterface
+ base::FilePath::FromUTF8Unsafe("/special/drive"));
hashimoto 2013/04/08 06:03:49 How about using drive::util::GetDriveMountPointPat
kinaba 2013/04/08 06:43:41 Done (and added a test for the case "drive" is not
+ EXPECT_EQ(
+ base::FilePath::FromUTF8Unsafe("drive/foo/bar"),
+ ExtractDrivePathFromFileSystemUrl(context->CrackURL(GURL(
+ "filesystem:chrome-extension://dummy-id/external/drive/foo/bar"))));
+
+ // Type:"external" + virtual_path:"Downloads/foo" is not a Drive path.
+ mount_points->RegisterFileSystem(
+ "Downloads",
+ fileapi::kFileSystemTypeNativeLocal,
+ base::FilePath::FromUTF8Unsafe("/tmp"));
+ 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,
+ base::FilePath::FromUTF8Unsafe("/special/drive/bar/buz"),
hashimoto 2013/04/08 06:03:49 How about using GetDriveMountPointPath()?
kinaba 2013/04/08 06:43:41 Done.
+ &isolated_name);
+ EXPECT_EQ(
+ base::FilePath::FromUTF8Unsafe("drive/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