| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "base/files/file_path.h" | 5 #include "base/files/file_path.h" |
| 6 #include "chrome/browser/chromeos/arc/fileapi/arc_documents_provider_util.h" | 6 #include "chrome/browser/chromeos/arc/fileapi/arc_documents_provider_util.h" |
| 7 #include "storage/browser/fileapi/file_system_url.h" | 7 #include "storage/browser/fileapi/file_system_url.h" |
| 8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
| 9 #include "url/gurl.h" | 9 #include "url/gurl.h" |
| 10 | 10 |
| 11 namespace arc { | 11 namespace arc { |
| 12 | 12 |
| 13 namespace { | 13 namespace { |
| 14 | 14 |
| 15 TEST(ArcDocumentsProviderUtilTest, EscapePathComponent) { |
| 16 EXPECT_EQ("", EscapePathComponent("")); |
| 17 EXPECT_EQ("%2E", EscapePathComponent(".")); |
| 18 EXPECT_EQ("%2E%2E", EscapePathComponent("..")); |
| 19 EXPECT_EQ("...", EscapePathComponent("...")); |
| 20 EXPECT_EQ("example.com", EscapePathComponent("example.com")); |
| 21 EXPECT_EQ("%2F%2F%2F", EscapePathComponent("///")); |
| 22 EXPECT_EQ("100%25", EscapePathComponent("100%")); |
| 23 EXPECT_EQ("a b", EscapePathComponent("a b")); |
| 24 EXPECT_EQ("ねこ", EscapePathComponent("ねこ")); |
| 25 } |
| 26 |
| 27 TEST(ArcDocumentsProviderUtilTest, UnescapePathComponent) { |
| 28 EXPECT_EQ("", UnescapePathComponent("")); |
| 29 EXPECT_EQ(".", UnescapePathComponent("%2E")); |
| 30 EXPECT_EQ("..", UnescapePathComponent("%2E%2E")); |
| 31 EXPECT_EQ("...", UnescapePathComponent("...")); |
| 32 EXPECT_EQ("example.com", UnescapePathComponent("example.com")); |
| 33 EXPECT_EQ("///", UnescapePathComponent("%2F%2F%2F")); |
| 34 EXPECT_EQ("100%", UnescapePathComponent("100%25")); |
| 35 EXPECT_EQ("a b", UnescapePathComponent("a b")); |
| 36 EXPECT_EQ("ねこ", UnescapePathComponent("ねこ")); |
| 37 } |
| 38 |
| 39 TEST(ArcDocumentsProviderUtilTest, GetDocumentsProviderMountPath) { |
| 40 EXPECT_EQ("/special/arc-documents-provider/authority/document_id", |
| 41 GetDocumentsProviderMountPath("authority", "document_id").value()); |
| 42 EXPECT_EQ("/special/arc-documents-provider/a b/a b", |
| 43 GetDocumentsProviderMountPath("a b", "a b").value()); |
| 44 EXPECT_EQ("/special/arc-documents-provider/a%2Fb/a%2Fb", |
| 45 GetDocumentsProviderMountPath("a/b", "a/b").value()); |
| 46 EXPECT_EQ("/special/arc-documents-provider/%2E/%2E", |
| 47 GetDocumentsProviderMountPath(".", ".").value()); |
| 48 EXPECT_EQ("/special/arc-documents-provider/%2E%2E/%2E%2E", |
| 49 GetDocumentsProviderMountPath("..", "..").value()); |
| 50 EXPECT_EQ("/special/arc-documents-provider/.../...", |
| 51 GetDocumentsProviderMountPath("...", "...").value()); |
| 52 } |
| 53 |
| 15 TEST(ArcDocumentsProviderUtilTest, ParseDocumentsProviderUrl) { | 54 TEST(ArcDocumentsProviderUtilTest, ParseDocumentsProviderUrl) { |
| 16 std::string authority; | 55 std::string authority; |
| 17 std::string root_document_id; | 56 std::string root_document_id; |
| 18 base::FilePath path; | 57 base::FilePath path; |
| 19 | 58 |
| 20 EXPECT_TRUE(ParseDocumentsProviderUrl( | 59 EXPECT_TRUE(ParseDocumentsProviderUrl( |
| 21 storage::FileSystemURL::CreateForTest( | 60 storage::FileSystemURL::CreateForTest( |
| 22 GURL(), storage::kFileSystemTypeArcDocumentsProvider, | 61 GURL(), storage::kFileSystemTypeArcDocumentsProvider, |
| 23 base::FilePath(kDocumentsProviderMountPointPath) | 62 base::FilePath(kDocumentsProviderMountPointPath) |
| 24 .Append(FILE_PATH_LITERAL("cats/root/home/calico.jpg"))), | 63 .Append(FILE_PATH_LITERAL("cats/root/home/calico.jpg"))), |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 111 | 150 |
| 112 // Not under /special/arc-documents-provider. | 151 // Not under /special/arc-documents-provider. |
| 113 EXPECT_FALSE(ParseDocumentsProviderUrl( | 152 EXPECT_FALSE(ParseDocumentsProviderUrl( |
| 114 storage::FileSystemURL::CreateForTest( | 153 storage::FileSystemURL::CreateForTest( |
| 115 GURL(), storage::kFileSystemTypeArcDocumentsProvider, | 154 GURL(), storage::kFileSystemTypeArcDocumentsProvider, |
| 116 base::FilePath(FILE_PATH_LITERAL( | 155 base::FilePath(FILE_PATH_LITERAL( |
| 117 "/special/something-else/cats/root/home/calico.jpg"))), | 156 "/special/something-else/cats/root/home/calico.jpg"))), |
| 118 &authority, &root_document_id, &path)); | 157 &authority, &root_document_id, &path)); |
| 119 } | 158 } |
| 120 | 159 |
| 160 TEST(ArcDocumentsProviderUtilTest, ParseDocumentsProviderUrlUnescape) { |
| 161 std::string authority; |
| 162 std::string root_document_id; |
| 163 base::FilePath path; |
| 164 |
| 165 EXPECT_TRUE(ParseDocumentsProviderUrl( |
| 166 storage::FileSystemURL::CreateForTest( |
| 167 GURL(), storage::kFileSystemTypeArcDocumentsProvider, |
| 168 base::FilePath( |
| 169 "/special/arc-documents-provider/cats/ro%2Fot/home/calico.jpg")), |
| 170 &authority, &root_document_id, &path)); |
| 171 EXPECT_EQ("cats", authority); |
| 172 EXPECT_EQ("ro/ot", root_document_id); |
| 173 EXPECT_EQ(FILE_PATH_LITERAL("home/calico.jpg"), path.value()); |
| 174 } |
| 175 |
| 121 TEST(ArcDocumentsProviderUtilTest, ParseDocumentsProviderUrlUtf8) { | 176 TEST(ArcDocumentsProviderUtilTest, ParseDocumentsProviderUrlUtf8) { |
| 122 std::string authority; | 177 std::string authority; |
| 123 std::string root_document_id; | 178 std::string root_document_id; |
| 124 base::FilePath path; | 179 base::FilePath path; |
| 125 | 180 |
| 126 EXPECT_TRUE(ParseDocumentsProviderUrl( | 181 EXPECT_TRUE(ParseDocumentsProviderUrl( |
| 127 storage::FileSystemURL::CreateForTest( | 182 storage::FileSystemURL::CreateForTest( |
| 128 GURL(), storage::kFileSystemTypeArcDocumentsProvider, | 183 GURL(), storage::kFileSystemTypeArcDocumentsProvider, |
| 129 base::FilePath( | 184 base::FilePath( |
| 130 "/special/arc-documents-provider/cats/root/home/みけねこ.jpg")), | 185 "/special/arc-documents-provider/cats/root/home/みけねこ.jpg")), |
| 131 &authority, &root_document_id, &path)); | 186 &authority, &root_document_id, &path)); |
| 132 EXPECT_EQ("cats", authority); | 187 EXPECT_EQ("cats", authority); |
| 133 EXPECT_EQ("root", root_document_id); | 188 EXPECT_EQ("root", root_document_id); |
| 134 EXPECT_EQ(FILE_PATH_LITERAL("home/みけねこ.jpg"), path.value()); | 189 EXPECT_EQ(FILE_PATH_LITERAL("home/みけねこ.jpg"), path.value()); |
| 135 } | 190 } |
| 136 | 191 |
| 137 TEST(ArcDocumentsProviderUtilTest, BuildDocumentUrl) { | 192 TEST(ArcDocumentsProviderUtilTest, BuildDocumentUrl) { |
| 138 EXPECT_EQ("content://Cat%20Provider/document/C%2B%2B", | 193 EXPECT_EQ("content://authority/document/document_id", |
| 139 BuildDocumentUrl("Cat Provider", "C++").spec()); | 194 BuildDocumentUrl("authority", "document_id").spec()); |
| 195 EXPECT_EQ("content://a%20b/document/a%20b", |
| 196 BuildDocumentUrl("a b", "a b").spec()); |
| 197 EXPECT_EQ("content://a%2Fb/document/a%2Fb", |
| 198 BuildDocumentUrl("a/b", "a/b").spec()); |
| 199 EXPECT_EQ("content://../document/..", BuildDocumentUrl("..", "..").spec()); |
| 140 } | 200 } |
| 141 | 201 |
| 142 } // namespace | 202 } // namespace |
| 143 | 203 |
| 144 } // namespace arc | 204 } // namespace arc |
| OLD | NEW |