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

Side by Side Diff: chrome/browser/chromeos/fileapi/external_file_url_util_unittest.cc

Issue 589473002: Files.app: Enable externalfile: protocol for MTP volumes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed test. 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/fileapi/external_file_url_util.h" 5 #include "chrome/browser/chromeos/fileapi/external_file_url_util.h"
6 6
7 #include "base/strings/utf_string_conversions.h" 7 #include "base/strings/utf_string_conversions.h"
8 #include "chrome/browser/chromeos/drive/file_system_util.h" 8 #include "chrome/browser/chromeos/drive/file_system_util.h"
9 #include "chrome/test/base/testing_browser_process.h" 9 #include "chrome/test/base/testing_browser_process.h"
10 #include "chrome/test/base/testing_profile_manager.h" 10 #include "chrome/test/base/testing_profile_manager.h"
(...skipping 14 matching lines...) Expand all
25 : testing_profile_manager_(TestingBrowserProcess::GetGlobal()) {} 25 : testing_profile_manager_(TestingBrowserProcess::GetGlobal()) {}
26 26
27 virtual void SetUp() OVERRIDE { 27 virtual void SetUp() OVERRIDE {
28 ASSERT_TRUE(testing_profile_manager_.SetUp()); 28 ASSERT_TRUE(testing_profile_manager_.SetUp());
29 } 29 }
30 30
31 TestingProfileManager& testing_profile_manager() { 31 TestingProfileManager& testing_profile_manager() {
32 return testing_profile_manager_; 32 return testing_profile_manager_;
33 } 33 }
34 34
35 storage::FileSystemURL CreateExpectedURL(const base::FilePath& path) {
36 return storage::FileSystemURL::CreateForTest(
37 GURL("chrome-extension://xxx"),
38 storage::kFileSystemTypeExternal,
39 base::FilePath("drive-test-user-hash").Append(path),
40 "",
41 storage::kFileSystemTypeDrive,
42 base::FilePath(),
43 "",
44 storage::FileSystemMountOption());
45 }
46
35 private: 47 private:
36 content::TestBrowserThreadBundle thread_bundle_; 48 content::TestBrowserThreadBundle thread_bundle_;
37 TestingProfileManager testing_profile_manager_; 49 TestingProfileManager testing_profile_manager_;
38 }; 50 };
39 51
40 } // namespace 52 } // namespace
41 53
42 TEST(ExternalFileURLUtilTest, FilePathToExternalFileURL) { 54 TEST_F(ExternalFileURLUtilTest, FilePathToExternalFileURL) {
43 base::FilePath path; 55 storage::FileSystemURL url;
44 56
45 // Path with alphabets and numbers. 57 // Path with alphabets and numbers.
46 path = drive::util::GetDriveMyDriveRootPath().AppendASCII("foo/bar012.txt"); 58 url = CreateExpectedURL(base::FilePath("foo/bar012.txt"));
47 EXPECT_EQ(path, ExternalFileURLToFilePath(FilePathToExternalFileURL(path))); 59 EXPECT_EQ(url.virtual_path(),
60 ExternalFileURLToVirtualPath(FileSystemURLToExternalFileURL(url)));
48 61
49 // Path with symbols. 62 // Path with symbols.
50 path = drive::util::GetDriveMyDriveRootPath().AppendASCII( 63 url = CreateExpectedURL(base::FilePath(" !\"#$%&'()*+,-.:;<=>?@[\\]^_`{|}~"));
51 " !\"#$%&'()*+,-.:;<=>?@[\\]^_`{|}~"); 64 EXPECT_EQ(url.virtual_path(),
52 EXPECT_EQ(path, ExternalFileURLToFilePath(FilePathToExternalFileURL(path))); 65 ExternalFileURLToVirtualPath(FileSystemURLToExternalFileURL(url)));
53 66
54 // Path with '%'. 67 // Path with '%'.
55 path = drive::util::GetDriveMyDriveRootPath().AppendASCII("%19%20%21.txt"); 68 url = CreateExpectedURL(base::FilePath("%19%20%21.txt"));
56 EXPECT_EQ(path, ExternalFileURLToFilePath(FilePathToExternalFileURL(path))); 69 EXPECT_EQ(url.virtual_path(),
70 ExternalFileURLToVirtualPath(FileSystemURLToExternalFileURL(url)));
57 71
58 // Path with multi byte characters. 72 // Path with multi byte characters.
59 base::string16 utf16_string; 73 base::string16 utf16_string;
60 utf16_string.push_back(0x307b); // HIRAGANA_LETTER_HO 74 utf16_string.push_back(0x307b); // HIRAGANA_LETTER_HO
61 utf16_string.push_back(0x3052); // HIRAGANA_LETTER_GE 75 utf16_string.push_back(0x3052); // HIRAGANA_LETTER_GE
62 path = drive::util::GetDriveMyDriveRootPath().Append( 76 url = CreateExpectedURL(
63 base::FilePath::FromUTF8Unsafe(base::UTF16ToUTF8(utf16_string) + ".txt")); 77 base::FilePath::FromUTF8Unsafe(base::UTF16ToUTF8(utf16_string) + ".txt"));
64 EXPECT_EQ(path, ExternalFileURLToFilePath(FilePathToExternalFileURL(path))); 78 EXPECT_EQ(url.virtual_path().AsUTF8Unsafe(),
79 ExternalFileURLToVirtualPath(FileSystemURLToExternalFileURL(url))
80 .AsUTF8Unsafe());
65 } 81 }
66 82
67 TEST(ExternalFileURLUtilTest, ParseFileURLWithExternalFileOrigin) { 83 TEST_F(ExternalFileURLUtilTest, ParseFileURLWithExternalFileOrigin) {
68 // filesystem:externalfile:/*** is used only internally. It should not parsed 84 // filesystem:externalfile:/xxx is used only internally. It should not parsed
69 // directly. 85 // directly.
70 ASSERT_FALSE(storage::FileSystemURL::CreateForTest( 86 ASSERT_FALSE(storage::FileSystemURL::CreateForTest(
71 GURL("filesystem:externalfile:/")).is_valid()); 87 GURL("filesystem:externalfile:/")).is_valid());
72 ASSERT_FALSE( 88 ASSERT_FALSE(storage::FileSystemURL::CreateForTest(
73 storage::FileSystemURL::CreateForTest( 89 GURL(
74 GURL("filesystem:externalfile:/external/drive/file.txt")).is_valid()); 90 "filesystem:externalfile:/external/drive-test-user-hash/"
91 "file.txt")).is_valid());
75 } 92 }
76 93
77 } // namespace chromeos 94 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/fileapi/external_file_url_util.cc ('k') | storage/browser/fileapi/file_system_url.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698