// Copyright 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "chrome/browser/chromeos/file_manager/path_util.h" #include "base/files/file_path.h" #include "chrome/browser/download/download_prefs.h" #include "chrome/test/base/testing_profile.h" #include "content/public/test/test_browser_thread_bundle.h" #include "testing/gtest/include/gtest/gtest.h" namespace file_manager { namespace util { namespace { TEST(FileManagerPathUtilTest, MultiProfileDownloadsFolderMigration) { content::TestBrowserThreadBundle thread_bundle; TestingProfile profile; // This looks like "/home/chronos/u-hash/Downloads" in the production // environment. const base::FilePath kDownloads = GetDownloadsFolderForProfile(&profile); const base::FilePath kOldDownloads = DownloadPrefs::GetDefaultDownloadDirectory(); base::FilePath path; EXPECT_TRUE(MigratePathFromOldFormat(&profile, kOldDownloads, &path)); EXPECT_EQ(kDownloads, path); EXPECT_TRUE(MigratePathFromOldFormat( &profile, kOldDownloads.AppendASCII("a/b"), &path)); EXPECT_EQ(kDownloads.AppendASCII("a/b"), path); // Path already in the new format is not converted. EXPECT_FALSE(MigratePathFromOldFormat( &profile, kDownloads.AppendASCII("a/b"), &path)); // Only the "Downloads" path is converted. EXPECT_FALSE(MigratePathFromOldFormat( &profile, base::FilePath::FromUTF8Unsafe("/home/chronos/user/dl"), &path)); } } // namespace } // namespace util } // namespace file_manager