| Index: chrome/browser/chromeos/arc/fileapi/arc_documents_provider_util_unittest.cc
|
| diff --git a/chrome/browser/chromeos/arc/fileapi/arc_documents_provider_util_unittest.cc b/chrome/browser/chromeos/arc/fileapi/arc_documents_provider_util_unittest.cc
|
| index 3374aafdaffbe917652d397a72ec2e2f21089716..496bdd4e91a961cd998c195bf2f7637e4941dd7c 100644
|
| --- a/chrome/browser/chromeos/arc/fileapi/arc_documents_provider_util_unittest.cc
|
| +++ b/chrome/browser/chromeos/arc/fileapi/arc_documents_provider_util_unittest.cc
|
| @@ -12,6 +12,45 @@ namespace arc {
|
|
|
| namespace {
|
|
|
| +TEST(ArcDocumentsProviderUtilTest, EscapePathComponent) {
|
| + EXPECT_EQ("", EscapePathComponent(""));
|
| + EXPECT_EQ("%2E", EscapePathComponent("."));
|
| + EXPECT_EQ("%2E%2E", EscapePathComponent(".."));
|
| + EXPECT_EQ("...", EscapePathComponent("..."));
|
| + EXPECT_EQ("example.com", EscapePathComponent("example.com"));
|
| + EXPECT_EQ("%2F%2F%2F", EscapePathComponent("///"));
|
| + EXPECT_EQ("100%25", EscapePathComponent("100%"));
|
| + EXPECT_EQ("a b", EscapePathComponent("a b"));
|
| + EXPECT_EQ("ねこ", EscapePathComponent("ねこ"));
|
| +}
|
| +
|
| +TEST(ArcDocumentsProviderUtilTest, UnescapePathComponent) {
|
| + EXPECT_EQ("", UnescapePathComponent(""));
|
| + EXPECT_EQ(".", UnescapePathComponent("%2E"));
|
| + EXPECT_EQ("..", UnescapePathComponent("%2E%2E"));
|
| + EXPECT_EQ("...", UnescapePathComponent("..."));
|
| + EXPECT_EQ("example.com", UnescapePathComponent("example.com"));
|
| + EXPECT_EQ("///", UnescapePathComponent("%2F%2F%2F"));
|
| + EXPECT_EQ("100%", UnescapePathComponent("100%25"));
|
| + EXPECT_EQ("a b", UnescapePathComponent("a b"));
|
| + EXPECT_EQ("ねこ", UnescapePathComponent("ねこ"));
|
| +}
|
| +
|
| +TEST(ArcDocumentsProviderUtilTest, GetDocumentsProviderMountPath) {
|
| + EXPECT_EQ("/special/arc-documents-provider/authority/document_id",
|
| + GetDocumentsProviderMountPath("authority", "document_id").value());
|
| + EXPECT_EQ("/special/arc-documents-provider/a b/a b",
|
| + GetDocumentsProviderMountPath("a b", "a b").value());
|
| + EXPECT_EQ("/special/arc-documents-provider/a%2Fb/a%2Fb",
|
| + GetDocumentsProviderMountPath("a/b", "a/b").value());
|
| + EXPECT_EQ("/special/arc-documents-provider/%2E/%2E",
|
| + GetDocumentsProviderMountPath(".", ".").value());
|
| + EXPECT_EQ("/special/arc-documents-provider/%2E%2E/%2E%2E",
|
| + GetDocumentsProviderMountPath("..", "..").value());
|
| + EXPECT_EQ("/special/arc-documents-provider/.../...",
|
| + GetDocumentsProviderMountPath("...", "...").value());
|
| +}
|
| +
|
| TEST(ArcDocumentsProviderUtilTest, ParseDocumentsProviderUrl) {
|
| std::string authority;
|
| std::string root_document_id;
|
| @@ -118,6 +157,22 @@ TEST(ArcDocumentsProviderUtilTest, ParseDocumentsProviderUrlInvalidPath) {
|
| &authority, &root_document_id, &path));
|
| }
|
|
|
| +TEST(ArcDocumentsProviderUtilTest, ParseDocumentsProviderUrlUnescape) {
|
| + std::string authority;
|
| + std::string root_document_id;
|
| + base::FilePath path;
|
| +
|
| + EXPECT_TRUE(ParseDocumentsProviderUrl(
|
| + storage::FileSystemURL::CreateForTest(
|
| + GURL(), storage::kFileSystemTypeArcDocumentsProvider,
|
| + base::FilePath(
|
| + "/special/arc-documents-provider/cats/ro%2Fot/home/calico.jpg")),
|
| + &authority, &root_document_id, &path));
|
| + EXPECT_EQ("cats", authority);
|
| + EXPECT_EQ("ro/ot", root_document_id);
|
| + EXPECT_EQ(FILE_PATH_LITERAL("home/calico.jpg"), path.value());
|
| +}
|
| +
|
| TEST(ArcDocumentsProviderUtilTest, ParseDocumentsProviderUrlUtf8) {
|
| std::string authority;
|
| std::string root_document_id;
|
| @@ -135,8 +190,13 @@ TEST(ArcDocumentsProviderUtilTest, ParseDocumentsProviderUrlUtf8) {
|
| }
|
|
|
| TEST(ArcDocumentsProviderUtilTest, BuildDocumentUrl) {
|
| - EXPECT_EQ("content://Cat%20Provider/document/C%2B%2B",
|
| - BuildDocumentUrl("Cat Provider", "C++").spec());
|
| + EXPECT_EQ("content://authority/document/document_id",
|
| + BuildDocumentUrl("authority", "document_id").spec());
|
| + EXPECT_EQ("content://a%20b/document/a%20b",
|
| + BuildDocumentUrl("a b", "a b").spec());
|
| + EXPECT_EQ("content://a%2Fb/document/a%2Fb",
|
| + BuildDocumentUrl("a/b", "a/b").spec());
|
| + EXPECT_EQ("content://../document/..", BuildDocumentUrl("..", "..").spec());
|
| }
|
|
|
| } // namespace
|
|
|