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

Side by Side Diff: chrome/browser/file_system/file_system_host_context_unittest.cc

Issue 3244002: (2nd try) Add a helper class that keeps per-profile information for FileSystem API (Closed)
Patch Set: Created 10 years, 3 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
« no previous file with comments | « chrome/browser/file_system/file_system_host_context.cc ('k') | chrome/browser/profile.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "base/basictypes.h"
6 #include "base/file_path.h"
7 #include "base/scoped_ptr.h"
8 #include "chrome/browser/file_system/file_system_host_context.h"
9 #include "chrome/browser/file_system/file_system_host_context.h"
10 #include "googleurl/src/gurl.h"
11 #include "testing/gtest/include/gtest/gtest.h"
12 #include "third_party/WebKit/WebKit/chromium/public/WebFileSystem.h"
13
14 namespace {
15
16 // PS stands for path separator.
17 #if defined(FILE_PATH_USES_WIN_SEPARATORS)
18 #define PS "\\"
19 #else
20 #define PS "/"
21 #endif
22
23 const FilePath::CharType kTestDataPath[] = FILE_PATH_LITERAL(
24 "//tmp/TestingProfilePath");
25
26 const struct RootPathTest {
27 WebKit::WebFileSystem::Type type;
28 bool off_the_record;
29 const char* origin_url;
30 bool expect_root_path;
31 const char* expected_path;
32 } kRootPathTestCases[] = {
33 { WebKit::WebFileSystem::TypeTemporary, false, "http://host:1/",
34 true, "FileSystem" PS "http_host_1" PS "Temporary" },
35 { WebKit::WebFileSystem::TypePersistent, false, "http://host:2/",
36 true, "FileSystem" PS "http_host_2" PS "Persistent" },
37 { WebKit::WebFileSystem::TypeTemporary, true, "http://host:3/",
38 false, "" },
39 { WebKit::WebFileSystem::TypePersistent, true, "http://host:4/",
40 false, "" },
41 };
42
43 const struct CheckValidPathTest {
44 FilePath::StringType path;
45 bool expected_valid;
46 } kCheckValidPathTestCases[] = {
47 { FILE_PATH_LITERAL("//tmp/foo.txt"), false, },
48 { FILE_PATH_LITERAL("//etc/hosts"), false, },
49 { FILE_PATH_LITERAL("foo.txt"), true, },
50 { FILE_PATH_LITERAL("a/b/c"), true, },
51 // Any paths that includes parent references are considered invalid.
52 { FILE_PATH_LITERAL(".."), false, },
53 { FILE_PATH_LITERAL("tmp/.."), false, },
54 { FILE_PATH_LITERAL("a/b/../c/.."), false, },
55 };
56
57 } // namespace
58
59 TEST(FileSystemHostContextTest, GetRootPath) {
60 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kRootPathTestCases); ++i) {
61 SCOPED_TRACE(testing::Message() << "RootPath #" << i << " "
62 << kRootPathTestCases[i].expected_path);
63
64 scoped_refptr<FileSystemHostContext> context(
65 new FileSystemHostContext(FilePath(kTestDataPath),
66 kRootPathTestCases[i].off_the_record));
67
68 FilePath root_path;
69 bool result = context->GetFileSystemRootPath(
70 GURL(kRootPathTestCases[i].origin_url),
71 kRootPathTestCases[i].type,
72 &root_path, NULL);
73 EXPECT_EQ(kRootPathTestCases[i].expect_root_path, result);
74 if (result) {
75 FilePath expected = FilePath(kTestDataPath).AppendASCII(
76 kRootPathTestCases[i].expected_path);
77 EXPECT_EQ(expected.value(), root_path.value());
78 }
79 }
80 }
81
82 TEST(FileSystemHostContextTest, CheckValidPath) {
83 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kCheckValidPathTestCases); ++i) {
84 SCOPED_TRACE(testing::Message() << "CheckValidPath #" << i << " "
85 << kCheckValidPathTestCases[i].path);
86
87 scoped_refptr<FileSystemHostContext> context(
88 new FileSystemHostContext(FilePath(kTestDataPath), false));
89
90 FilePath root_path;
91 EXPECT_TRUE(context->GetFileSystemRootPath(
92 GURL("http://foo.com/"), WebKit::WebFileSystem::TypePersistent,
93 &root_path, NULL));
94 FilePath path(kCheckValidPathTestCases[i].path);
95 if (!path.IsAbsolute())
96 path = root_path.Append(path);
97
98 EXPECT_EQ(kCheckValidPathTestCases[i].expected_valid,
99 context->CheckValidFileSystemPath(path));
100 }
101 }
OLDNEW
« no previous file with comments | « chrome/browser/file_system/file_system_host_context.cc ('k') | chrome/browser/profile.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698