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.
4
5#include "chrome/browser/extensions/path_util.h"
6
7#include "base/files/file_path.h"
8#include "base/files/file_util.h"
9#include "testing/gtest/include/gtest/gtest.h"
10
11using base::FilePath;
12
13namespace extensions {
14
15// Basic unittest for path_util::PrettifyPath in
16// chrome/browser/extensions/path_util.cc.
17// For legacy reasons, it's tested more in
18// FileSystemApiTest.FileSystemApiGetDisplayPathPrettify.
19TEST(ExtensionPathUtilTest, BasicPrettifyPathTest) {
20  const FilePath::CharType kHomeShortcut[] = FILE_PATH_LITERAL("~");
21
22  // Test prettifying empty path.
23  FilePath unprettified;
24  FilePath prettified = path_util::PrettifyPath(unprettified);
25  EXPECT_EQ(unprettified, prettified);
26
27  // Test home directory ("~").
28  unprettified = base::GetHomeDir();
29  prettified = path_util::PrettifyPath(unprettified);
30  EXPECT_NE(unprettified, prettified);
31  EXPECT_EQ(FilePath(kHomeShortcut), prettified);
32
33  // Test with one layer ("~/foo").
34  unprettified = unprettified.AppendASCII("foo");
35  prettified = path_util::PrettifyPath(unprettified);
36  EXPECT_NE(unprettified, prettified);
37  EXPECT_EQ(FilePath(kHomeShortcut).AppendASCII("foo"), prettified);
38
39  // Test with two layers ("~/foo/bar").
40  unprettified = unprettified.AppendASCII("bar");
41  prettified = path_util::PrettifyPath(unprettified);
42  EXPECT_NE(unprettified, prettified);
43  EXPECT_EQ(
44      FilePath(kHomeShortcut).AppendASCII("foo").AppendASCII("bar"),
45      prettified);
46}
47
48}  // namespace extensions
49