#include "chrome/browser/chromeos/file_manager/path_util.h"
#include "base/files/file_path.h"
+#include "chrome/browser/chromeos/drive/file_system_util.h"
+#include "chrome/common/chrome_constants.h"
+#include "chrome/test/base/testing_browser_process.h"
#include "chrome/test/base/testing_profile.h"
+#include "chrome/test/base/testing_profile_manager.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace file_manager {
namespace util {
namespace {
+class ProfileRelatedTest : public testing::Test {
+ protected:
+ ProfileRelatedTest()
+ : testing_profile_manager_(TestingBrowserProcess::GetGlobal()) {
+ }
+
+ virtual void SetUp() OVERRIDE {
+ ASSERT_TRUE(testing_profile_manager_.SetUp());
+ }
+
+ Profile* CreateProfileWithName(const std::string& name) {
+ return testing_profile_manager_.CreateTestingProfile(
+ chrome::kProfileDirPrefix + name);
+ }
+
+ private:
+ TestingProfileManager testing_profile_manager_;
+};
+
TEST(FileManagerPathUtilTest, MultiProfileDownloadsFolderMigration) {
TestingProfile profile;
&path));
}
+TEST_F(ProfileRelatedTest, MultiProfileDriveFolderMigration) {
+ Profile* profile = CreateProfileWithName("hash");
+
+ const base::FilePath kDrive = drive::util::GetDriveMountPointPath(profile);
+ ASSERT_EQ(base::FilePath::FromUTF8Unsafe("/special/drive-hash"), kDrive);
+
+ base::FilePath path;
+
+ EXPECT_TRUE(MigratePathFromOldFormat(
+ profile,
+ base::FilePath::FromUTF8Unsafe("/special/drive"),
+ &path));
+ EXPECT_EQ(kDrive, path);
+
+ EXPECT_TRUE(MigratePathFromOldFormat(
+ profile,
+ base::FilePath::FromUTF8Unsafe("/special/drive/a/b"),
+ &path));
+ EXPECT_EQ(kDrive.AppendASCII("a/b"), path);
+
+ // Path already in the new format is not converted.
+ EXPECT_FALSE(MigratePathFromOldFormat(
+ profile,
+ kDrive.AppendASCII("a/b"),
+ &path));
+
+ // Only the "/special/drive" path is converted.
+ EXPECT_FALSE(MigratePathFromOldFormat(
+ profile,
+ base::FilePath::FromUTF8Unsafe("/special/notdrive"),
+ &path));
+}
+
} // namespace
} // namespace util
} // namespace file_manager