#include "chrome/browser/ash/drive/drive_integration_service.h"
#include "base/files/file_path.h"
#include "base/files/file_util.h"
#include "base/files/scoped_temp_dir.h"
#include "chrome/browser/ash/drive/drive_integration_service_factory.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 "content/public/test/browser_task_environment.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace drive {
class DriveIntegrationServiceTest : public testing::Test {
public:
DriveIntegrationServiceTest()
: profile_manager_(TestingBrowserProcess::GetGlobal()) {}
void SetUp() override { ASSERT_TRUE(profile_manager_.SetUp()); }
protected:
content::BrowserTaskEnvironment task_environment_;
TestingProfileManager profile_manager_;
};
TEST_F(DriveIntegrationServiceTest, DISABLED_ServiceInstanceIdentity) {
TestingProfile* user1 = profile_manager_.CreateTestingProfile("user1");
EXPECT_TRUE(DriveIntegrationServiceFactory::GetForProfile(user1));
Profile* user1_incognito =
user1->GetPrimaryOTRProfile(true);
EXPECT_EQ(DriveIntegrationServiceFactory::GetForProfile(user1),
DriveIntegrationServiceFactory::GetForProfile(user1_incognito));
TestingProfile* user2 = profile_manager_.CreateTestingProfile("user2");
EXPECT_NE(DriveIntegrationServiceFactory::GetForProfile(user1),
DriveIntegrationServiceFactory::GetForProfile(user2));
}
TEST_F(DriveIntegrationServiceTest, EnsureDirectoryExists) {
base::ScopedTempDir tmp_dir;
ASSERT_TRUE(tmp_dir.CreateUniqueTempDir());
const base::FilePath data_dir = tmp_dir.GetPath().Append("a/b/c");
EXPECT_FALSE(base::DirectoryExists(data_dir));
EXPECT_EQ(DriveIntegrationService::EnsureDirectoryExists(data_dir),
DriveIntegrationService::DirResult::kCreated);
EXPECT_TRUE(base::DirectoryExists(data_dir));
EXPECT_EQ(DriveIntegrationService::EnsureDirectoryExists(data_dir),
DriveIntegrationService::DirResult::kExisting);
EXPECT_TRUE(base::DirectoryExists(data_dir));
EXPECT_TRUE(base::DeleteFile(data_dir));
EXPECT_FALSE(base::DirectoryExists(data_dir));
EXPECT_TRUE(base::WriteFile(data_dir, "Whatever"));
EXPECT_FALSE(base::DirectoryExists(data_dir));
EXPECT_EQ(DriveIntegrationService::EnsureDirectoryExists(data_dir),
DriveIntegrationService::DirResult::kError);
EXPECT_FALSE(base::DirectoryExists(data_dir));
}
}