Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / chromeos / file_manager / path_util_unittest.cc
index 6d94c95..c3bfbed 100644 (file)
@@ -5,13 +5,36 @@
 #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;
 
@@ -46,6 +69,39 @@ TEST(FileManagerPathUtilTest, MultiProfileDownloadsFolderMigration) {
       &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