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
3 // found in the LICENSE file.
5 #include "chrome/browser/safe_browsing/path_sanitizer.h"
9 #include "base/logging.h"
10 #include "base/path_service.h"
11 #include "testing/gtest/include/gtest/gtest.h"
15 // Returns the root directory with a trailing separator. Works on all platforms.
16 base::FilePath
GetRootDirectory() {
17 base::FilePath dir_temp
;
18 if (!PathService::Get(base::DIR_TEMP
, &dir_temp
))
21 std::vector
<base::FilePath::StringType
> components
;
22 dir_temp
.GetComponents(&components
);
24 return base::FilePath(components
[0]).AsEndingWithSeparator();
29 TEST(SafeBrowsingPathSanitizerTest
, HomeDirectoryIsNotEmpty
) {
30 safe_browsing::PathSanitizer path_sanitizer
;
32 ASSERT_FALSE(path_sanitizer
.GetHomeDirectory().empty());
35 TEST(SafeBrowsingPathSanitizerTest
, DontStripHomeDirectoryTest
) {
36 // Test with path not in home directory.
38 GetRootDirectory().Append(FILE_PATH_LITERAL("not_in_home_directory.ext"));
39 base::FilePath path_expected
= path
;
41 safe_browsing::PathSanitizer path_sanitizer
;
42 path_sanitizer
.StripHomeDirectory(&path
);
44 ASSERT_EQ(path
.value(), path_expected
.value());
47 TEST(SafeBrowsingPathSanitizerTest
, DoStripHomeDirectoryTest
) {
48 // Test with path in home directory.
49 safe_browsing::PathSanitizer path_sanitizer
;
51 base::FilePath path
= path_sanitizer
.GetHomeDirectory().Append(
52 FILE_PATH_LITERAL("in_home_directory.ext"));
53 base::FilePath path_expected
= base::FilePath(FILE_PATH_LITERAL("~")).Append(
54 FILE_PATH_LITERAL("in_home_directory.ext"));
56 path_sanitizer
.StripHomeDirectory(&path
);
58 ASSERT_EQ(path
.value(), path_expected
.value());