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

Side by Side 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/drive/drive_file_system_util.h" 5 #include "chrome/browser/chromeos/drive/drive_file_system_util.h"
6 6
7 #include "base/files/file_path.h" 7 #include "base/files/file_path.h"
8 #include "base/message_loop.h"
8 #include "base/utf_string_conversions.h" 9 #include "base/utf_string_conversions.h"
9 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
11 #include "webkit/fileapi/external_mount_points.h"
12 #include "webkit/fileapi/file_system_context.h"
13 #include "webkit/fileapi/file_system_task_runners.h"
14 #include "webkit/fileapi/file_system_url.h"
15 #include "webkit/fileapi/isolated_context.h"
16 #include "webkit/fileapi/mock_file_system_options.h"
10 17
11 namespace drive { 18 namespace drive {
12 namespace util { 19 namespace util {
13 20
14 TEST(DriveFileSystemUtilTest, FilePathToDriveURL) { 21 TEST(DriveFileSystemUtilTest, FilePathToDriveURL) {
15 base::FilePath path; 22 base::FilePath path;
16 23
17 // Path with alphabets and numbers. 24 // Path with alphabets and numbers.
18 path = GetDriveMyDriveRootPath().AppendASCII("foo/bar012.txt"); 25 path = GetDriveMyDriveRootPath().AppendASCII("foo/bar012.txt");
19 EXPECT_EQ(path, DriveURLToFilePath(FilePathToDriveURL(path))); 26 EXPECT_EQ(path, DriveURLToFilePath(FilePathToDriveURL(path)));
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 ExtractDrivePath( 76 ExtractDrivePath(
70 base::FilePath::FromUTF8Unsafe("/special/drive"))); 77 base::FilePath::FromUTF8Unsafe("/special/drive")));
71 EXPECT_EQ(base::FilePath::FromUTF8Unsafe("drive/foo.txt"), 78 EXPECT_EQ(base::FilePath::FromUTF8Unsafe("drive/foo.txt"),
72 ExtractDrivePath( 79 ExtractDrivePath(
73 base::FilePath::FromUTF8Unsafe("/special/drive/foo.txt"))); 80 base::FilePath::FromUTF8Unsafe("/special/drive/foo.txt")));
74 EXPECT_EQ(base::FilePath::FromUTF8Unsafe("drive/subdir/foo.txt"), 81 EXPECT_EQ(base::FilePath::FromUTF8Unsafe("drive/subdir/foo.txt"),
75 ExtractDrivePath(base::FilePath::FromUTF8Unsafe( 82 ExtractDrivePath(base::FilePath::FromUTF8Unsafe(
76 "/special/drive/subdir/foo.txt"))); 83 "/special/drive/subdir/foo.txt")));
77 } 84 }
78 85
86 TEST(DriveFileSystemUtilTest, ExtractDrivePathFromFileSystemUrl) {
87 // Set up file system context for testing.
88 MessageLoop message_loop;
89 scoped_refptr<fileapi::ExternalMountPoints> mount_points =
90 fileapi::ExternalMountPoints::CreateRefCounted();
91 scoped_refptr<fileapi::FileSystemContext> context(
92 new fileapi::FileSystemContext(
93 fileapi::FileSystemTaskRunners::CreateMockTaskRunners(),
94 mount_points,
95 NULL, // special_storage_policy
96 NULL, // quota_manager_proxy,
97 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.
98 fileapi::CreateAllowFileAccessOptions()));
99
100 // Type:"external" + virtual_path:"drive/foo/bar" resolves to "drive/foo/bar".
101 mount_points->RegisterRemoteFileSystem(
102 "drive",
103 fileapi::kFileSystemTypeDrive,
104 NULL, // RemoteFileSystemProxyInterface
105 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
106 EXPECT_EQ(
107 base::FilePath::FromUTF8Unsafe("drive/foo/bar"),
108 ExtractDrivePathFromFileSystemUrl(context->CrackURL(GURL(
109 "filesystem:chrome-extension://dummy-id/external/drive/foo/bar"))));
110
111 // Type:"external" + virtual_path:"Downloads/foo" is not a Drive path.
112 mount_points->RegisterFileSystem(
113 "Downloads",
114 fileapi::kFileSystemTypeNativeLocal,
115 base::FilePath::FromUTF8Unsafe("/tmp"));
116 EXPECT_EQ(
117 base::FilePath(),
118 ExtractDrivePathFromFileSystemUrl(context->CrackURL(GURL(
119 "filesystem:chrome-extension://dummy-id/external/Downloads/foo"))));
120
121 // Type:"isolated" + virtual_path:"isolated_id/name" mapped on a Drive path.
122 std::string isolated_name;
123 std::string isolated_id =
124 fileapi::IsolatedContext::GetInstance()->RegisterFileSystemForPath(
125 fileapi::kFileSystemTypeNativeForPlatformApp,
126 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.
127 &isolated_name);
128 EXPECT_EQ(
129 base::FilePath::FromUTF8Unsafe("drive/bar/buz"),
130 ExtractDrivePathFromFileSystemUrl(context->CrackURL(GURL(
131 "filesystem:chrome-extension://dummy-id/isolated/" +
132 isolated_id + "/" + isolated_name))));
133 }
134
79 TEST(DriveFileSystemUtilTest, EscapeUnescapeCacheFileName) { 135 TEST(DriveFileSystemUtilTest, EscapeUnescapeCacheFileName) {
80 const std::string kUnescapedFileName( 136 const std::string kUnescapedFileName(
81 "tmp:`~!@#$%^&*()-_=+[{|]}\\\\;\',<.>/?"); 137 "tmp:`~!@#$%^&*()-_=+[{|]}\\\\;\',<.>/?");
82 const std::string kEscapedFileName( 138 const std::string kEscapedFileName(
83 "tmp:`~!@#$%25^&*()-_=+[{|]}\\\\;\',<%2E>%2F?"); 139 "tmp:`~!@#$%25^&*()-_=+[{|]}\\\\;\',<%2E>%2F?");
84 EXPECT_EQ(kEscapedFileName, EscapeCacheFileName(kUnescapedFileName)); 140 EXPECT_EQ(kEscapedFileName, EscapeCacheFileName(kUnescapedFileName));
85 EXPECT_EQ(kUnescapedFileName, UnescapeCacheFileName(kEscapedFileName)); 141 EXPECT_EQ(kUnescapedFileName, UnescapeCacheFileName(kEscapedFileName));
86 } 142 }
87 143
88 TEST(DriveFileSystemUtilTest, EscapeUtf8FileName) { 144 TEST(DriveFileSystemUtilTest, EscapeUtf8FileName) {
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 EXPECT_FALSE(util::IsSpecialResourceId("file:123")); 242 EXPECT_FALSE(util::IsSpecialResourceId("file:123"));
187 EXPECT_FALSE(util::IsSpecialResourceId("folder:root")); 243 EXPECT_FALSE(util::IsSpecialResourceId("folder:root"));
188 EXPECT_FALSE(util::IsSpecialResourceId("folder:xyz")); 244 EXPECT_FALSE(util::IsSpecialResourceId("folder:xyz"));
189 245
190 EXPECT_TRUE(util::IsSpecialResourceId("<drive>")); 246 EXPECT_TRUE(util::IsSpecialResourceId("<drive>"));
191 EXPECT_TRUE(util::IsSpecialResourceId("<other>")); 247 EXPECT_TRUE(util::IsSpecialResourceId("<other>"));
192 } 248 }
193 249
194 } // namespace util 250 } // namespace util
195 } // namespace drive 251 } // namespace drive
OLDNEW
« 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