blob: 4514bc6f8f606abc123aceb4a92cb562fe7976f5 [file] [log] [blame]
// Copyright (c) 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 <stddef.h>
#include "base/macros.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/chromeos/drive/file_system_util.h"
#include "chrome/browser/chromeos/file_manager/file_manager_browsertest_base.h"
#include "chrome/browser/chromeos/profiles/profile_helper.h"
#include "chrome/browser/signin/signin_manager_factory.h"
#include "chromeos/chromeos_switches.h"
#include "components/signin/core/browser/signin_manager.h"
#include "components/user_manager/user_manager.h"
namespace file_manager {
// Parameter of FileManagerBrowserTest.
// The second value is the case name of JavaScript.
typedef std::tr1::tuple<GuestMode, const char*> TestParameter;
// Test fixture class for normal (not multi-profile related) tests.
class FileManagerBrowserTest :
public FileManagerBrowserTestBase,
public ::testing::WithParamInterface<TestParameter> {
GuestMode GetGuestModeParam() const override {
return std::tr1::get<0>(GetParam());
}
const char* GetTestManifestName() const override {
return "file_manager_test_manifest.json";
}
const char* GetTestCaseNameParam() const override {
return std::tr1::get<1>(GetParam());
}
};
IN_PROC_BROWSER_TEST_P(FileManagerBrowserTest, Test) {
StartTest();
}
// Test fixture class for tests that rely on deprecated event dispatch that send
// tests.
class FileManagerBrowserTestWithLegacyEventDispatch
: public FileManagerBrowserTest {
void SetUpCommandLine(base::CommandLine* command_line) override {
FileManagerBrowserTest::SetUpCommandLine(command_line);
command_line->AppendSwitchASCII("disable-blink-features",
"TrustedEventsDefaultAction");
}
};
IN_PROC_BROWSER_TEST_P(FileManagerBrowserTestWithLegacyEventDispatch, Test) {
StartTest();
}
// Test fixture class for details panel.
// TODO(ryoh): remove after we release details panel feature.
class FileManagerDetailsPanelBrowserTest : public FileManagerBrowserTest {
void SetUpCommandLine(base::CommandLine* command_line) override {
FileManagerBrowserTest::SetUpCommandLine(command_line);
command_line->AppendSwitch("--enable-files-details-panel");
}
};
IN_PROC_BROWSER_TEST_P(FileManagerDetailsPanelBrowserTest, Test) {
StartTest();
}
// Unlike TEST/TEST_F, which are macros that expand to further macros,
// INSTANTIATE_TEST_CASE_P is a macro that expands directly to code that
// stringizes the arguments. As a result, macros passed as parameters (such as
// prefix or test_case_name) will not be expanded by the preprocessor. To work
// around this, indirect the macro for INSTANTIATE_TEST_CASE_P, so that the
// pre-processor will expand macros such as MAYBE_test_name before
// instantiating the test.
#define WRAPPED_INSTANTIATE_TEST_CASE_P(prefix, test_case_name, generator) \
INSTANTIATE_TEST_CASE_P(prefix, test_case_name, generator)
// Fails on official build. http://crbug.com/429294
#if defined(DISABLE_SLOW_FILESAPP_TESTS) || defined(OFFICIAL_BUILD)
#define MAYBE_FileDisplay DISABLED_FileDisplay
#else
#define MAYBE_FileDisplay FileDisplay
#endif
WRAPPED_INSTANTIATE_TEST_CASE_P(
MAYBE_FileDisplay,
FileManagerBrowserTest,
::testing::Values(TestParameter(NOT_IN_GUEST_MODE, "fileDisplayDownloads"),
TestParameter(IN_GUEST_MODE, "fileDisplayDownloads"),
TestParameter(NOT_IN_GUEST_MODE, "fileDisplayDrive"),
TestParameter(NOT_IN_GUEST_MODE, "fileDisplayMtp"),
TestParameter(NOT_IN_GUEST_MODE, "searchNormal"),
TestParameter(NOT_IN_GUEST_MODE, "searchCaseInsensitive"),
TestParameter(NOT_IN_GUEST_MODE, "searchNotFound")));
// Fails on official build. http://crbug.com/429294
#if defined(DISABLE_SLOW_FILESAPP_TESTS) || defined(OFFICIAL_BUILD)
#define MAYBE_OpenVideoFiles DISABLED_OpenVideoFiles
#else
#define MAYBE_OpenVideoFiles OpenVideoFiles
#endif
WRAPPED_INSTANTIATE_TEST_CASE_P(
MAYBE_OpenVideoFiles,
FileManagerBrowserTest,
::testing::Values(TestParameter(IN_GUEST_MODE, "videoOpenDownloads"),
TestParameter(NOT_IN_GUEST_MODE, "videoOpenDownloads"),
TestParameter(NOT_IN_GUEST_MODE, "videoOpenDrive")));
// Fails on official build. http://crbug.com/429294
#if defined(DISABLE_SLOW_FILESAPP_TESTS) || defined(OFFICIAL_BUILD)
#define MAYBE_OpenAudioFiles DISABLED_OpenAudioFiles
#else
#define MAYBE_OpenAudioFiles OpenAudioFiles
#endif
WRAPPED_INSTANTIATE_TEST_CASE_P(
MAYBE_OpenAudioFiles,
FileManagerBrowserTest,
::testing::Values(
TestParameter(IN_GUEST_MODE, "audioOpenDownloads"),
TestParameter(NOT_IN_GUEST_MODE, "audioOpenDownloads"),
TestParameter(NOT_IN_GUEST_MODE, "audioOpenDrive"),
TestParameter(NOT_IN_GUEST_MODE, "audioAutoAdvanceDrive"),
TestParameter(NOT_IN_GUEST_MODE, "audioRepeatSingleFileDrive"),
TestParameter(NOT_IN_GUEST_MODE, "audioNoRepeatSingleFileDrive"),
TestParameter(NOT_IN_GUEST_MODE, "audioRepeatMultipleFileDrive"),
TestParameter(NOT_IN_GUEST_MODE, "audioNoRepeatMultipleFileDrive")));
// Fails on official build. http://crbug.com/429294
#if defined(DISABLE_SLOW_FILESAPP_TESTS) || defined(OFFICIAL_BUILD)
#define MAYBE_OpenImageFiles DISABLED_OpenImageFiles
#else
#define MAYBE_OpenImageFiles OpenImageFiles
#endif
WRAPPED_INSTANTIATE_TEST_CASE_P(
MAYBE_OpenImageFiles,
FileManagerBrowserTest,
::testing::Values(TestParameter(IN_GUEST_MODE, "imageOpenDownloads"),
TestParameter(NOT_IN_GUEST_MODE, "imageOpenDownloads"),
TestParameter(NOT_IN_GUEST_MODE, "imageOpenDrive")));
#if defined(DISABLE_SLOW_FILESAPP_TESTS) || defined(OFFICIAL_BUILD)
#define MAYBE_CreateNewFolder DISABLED_CreateNewFolder
#else
#define MAYBE_CreateNewFolder CreateNewFolder
#endif
WRAPPED_INSTANTIATE_TEST_CASE_P(
MAYBE_CreateNewFolder,
FileManagerBrowserTest,
::testing::Values(TestParameter(NOT_IN_GUEST_MODE,
"createNewFolderAfterSelectFile"),
TestParameter(IN_GUEST_MODE,
"createNewFolderDownloads"),
TestParameter(NOT_IN_GUEST_MODE,
"createNewFolderDownloads"),
TestParameter(NOT_IN_GUEST_MODE,
"createNewFolderDrive")));
// Fails on official build. http://crbug.com/429294
#if defined(DISABLE_SLOW_FILESAPP_TESTS) || defined(OFFICIAL_BUILD)
#define MAYBE_KeyboardOperations DISABLED_KeyboardOperations
#else
#define MAYBE_KeyboardOperations KeyboardOperations
#endif
WRAPPED_INSTANTIATE_TEST_CASE_P(
MAYBE_KeyboardOperations,
FileManagerBrowserTest,
::testing::Values(TestParameter(IN_GUEST_MODE, "keyboardDeleteDownloads"),
TestParameter(NOT_IN_GUEST_MODE,
"keyboardDeleteDownloads"),
TestParameter(NOT_IN_GUEST_MODE, "keyboardDeleteDrive"),
TestParameter(IN_GUEST_MODE, "keyboardCopyDownloads"),
TestParameter(NOT_IN_GUEST_MODE, "keyboardCopyDownloads"),
TestParameter(NOT_IN_GUEST_MODE, "keyboardCopyDrive"),
TestParameter(IN_GUEST_MODE, "renameFileDownloads"),
TestParameter(NOT_IN_GUEST_MODE, "renameFileDownloads"),
TestParameter(NOT_IN_GUEST_MODE, "renameFileDrive"),
TestParameter(IN_GUEST_MODE,
"renameNewDirectoryDownloads"),
TestParameter(NOT_IN_GUEST_MODE,
"renameNewDirectoryDownloads"),
TestParameter(NOT_IN_GUEST_MODE,
"renameNewDirectoryDrive")));
#if defined(DISABLE_SLOW_FILESAPP_TESTS)
#define MAYBE_Delete DISABLED_Delete
#else
#define MAYBE_Delete Delete
#endif
WRAPPED_INSTANTIATE_TEST_CASE_P(
MAYBE_Delete,
FileManagerBrowserTest,
::testing::Values(
TestParameter(NOT_IN_GUEST_MODE,
"deleteMenuItemIsDisabledWhenNoItemIsSelected"),
TestParameter(NOT_IN_GUEST_MODE, "deleteOneItemFromToolbar")));
WRAPPED_INSTANTIATE_TEST_CASE_P(
DetailsPanel,
FileManagerDetailsPanelBrowserTest,
::testing::Values(
TestParameter(NOT_IN_GUEST_MODE, "openDetailsPanel"),
TestParameter(NOT_IN_GUEST_MODE, "openDetailsPanelForSingleFile"),
TestParameter(NOT_IN_GUEST_MODE, "openSingleFileAndSeeDetailsPanel")));
#if defined(DISABLE_SLOW_FILESAPP_TESTS)
#define MAYBE_DirectoryTreeContextMenu DISABLED_DirectoryTreeContextMenu
#else
#define MAYBE_DirectoryTreeContextMenu DirectoryTreeContextMenu
#endif
WRAPPED_INSTANTIATE_TEST_CASE_P(
MAYBE_DirectoryTreeContextMenu,
FileManagerBrowserTest,
::testing::Values(
TestParameter(NOT_IN_GUEST_MODE,
"copyFromDirectoryTreeWithContextMenu"),
TestParameter(IN_GUEST_MODE, "copyFromDirectoryTreeWithContextMenu"),
TestParameter(NOT_IN_GUEST_MODE,
"copyFromDirectoryTreeWithKeyboardShortcut"),
TestParameter(IN_GUEST_MODE,
"copyFromDirectoryTreeWithKeyboardShortcut"),
TestParameter(NOT_IN_GUEST_MODE,
"copyFromDirectoryTreeWithoutChaningCurrentDirectory"),
TestParameter(NOT_IN_GUEST_MODE, "cutFromDirectoryTreeWithContextMenu"),
TestParameter(IN_GUEST_MODE, "cutFromDirectoryTreeWithContextMenu"),
TestParameter(NOT_IN_GUEST_MODE,
"cutFromDirectoryTreeWithKeyboardShortcut"),
TestParameter(IN_GUEST_MODE,
"cutFromDirectoryTreeWithKeyboardShortcut"),
TestParameter(NOT_IN_GUEST_MODE,
"cutFromDirectoryTreeWithoutChaningCurrentDirectory"),
TestParameter(NOT_IN_GUEST_MODE,
"pasteIntoFolderFromDirectoryTreeWithContextMenu"),
TestParameter(IN_GUEST_MODE,
"pasteIntoFolderFromDirectoryTreeWithContextMenu"),
TestParameter(
NOT_IN_GUEST_MODE,
"pasteIntoFolderFromDirectoryTreeWithoutChaningCurrentDirectory"),
TestParameter(NOT_IN_GUEST_MODE,
"renameDirectoryFromDirectoryTreeWithContextMenu"),
TestParameter(IN_GUEST_MODE,
"renameDirectoryFromDirectoryTreeWithContextMenu"),
TestParameter(NOT_IN_GUEST_MODE,
"renameDirectoryFromDirectoryTreeWithKeyboardShortcut"),
TestParameter(IN_GUEST_MODE,
"renameDirectoryFromDirectoryTreeWithKeyboardShortcut"),
TestParameter(
NOT_IN_GUEST_MODE,
"renameDirectoryFromDirectoryTreeWithoutChangingCurrentDirectory"),
TestParameter(NOT_IN_GUEST_MODE,
"renameDirectoryToEmptyStringFromDirectoryTree"),
TestParameter(IN_GUEST_MODE,
"renameDirectoryToEmptyStringFromDirectoryTree"),
TestParameter(NOT_IN_GUEST_MODE,
"renameDirectoryToExistingOneFromDirectoryTree"),
TestParameter(IN_GUEST_MODE,
"renameDirectoryToExistingOneFromDirectoryTree"),
TestParameter(NOT_IN_GUEST_MODE,
"createDirectoryFromDirectoryTreeWithContextMenu"),
TestParameter(NOT_IN_GUEST_MODE,
"createDirectoryFromDirectoryTreeWithKeyboardShortcut"),
TestParameter(NOT_IN_GUEST_MODE,
"createDirectoryFromDirectoryTreeWithoutChangingCurrentDi"
"rectory")));
// Fails on official build. http://crbug.com/429294
#if defined(DISABLE_SLOW_FILESAPP_TESTS) || defined(OFFICIAL_BUILD)
#define MAYBE_DriveSpecific DISABLED_DriveSpecific
#else
#define MAYBE_DriveSpecific DriveSpecific
#endif
WRAPPED_INSTANTIATE_TEST_CASE_P(
MAYBE_DriveSpecific,
FileManagerBrowserTest,
::testing::Values(
TestParameter(NOT_IN_GUEST_MODE, "openSidebarRecent"),
TestParameter(NOT_IN_GUEST_MODE, "openSidebarOffline"),
TestParameter(NOT_IN_GUEST_MODE, "openSidebarSharedWithMe"),
TestParameter(NOT_IN_GUEST_MODE, "autocomplete"),
TestParameter(NOT_IN_GUEST_MODE, "pinFileOnMobileNetwork"),
TestParameter(NOT_IN_GUEST_MODE, "clickFirstSearchResult"),
TestParameter(NOT_IN_GUEST_MODE, "pressEnterToSearch")));
// Fails on official build. http://crbug.com/429294
#if defined(DISABLE_SLOW_FILESAPP_TESTS) || defined(OFFICIAL_BUILD)
#define MAYBE_Transfer DISABLED_Transfer
#else
#define MAYBE_Transfer Transfer
#endif
WRAPPED_INSTANTIATE_TEST_CASE_P(
MAYBE_Transfer,
FileManagerBrowserTest,
::testing::Values(
TestParameter(NOT_IN_GUEST_MODE, "transferFromDriveToDownloads"),
TestParameter(NOT_IN_GUEST_MODE, "transferFromDownloadsToDrive"),
TestParameter(NOT_IN_GUEST_MODE, "transferFromSharedToDownloads"),
TestParameter(NOT_IN_GUEST_MODE, "transferFromSharedToDrive"),
TestParameter(NOT_IN_GUEST_MODE, "transferFromRecentToDownloads"),
TestParameter(NOT_IN_GUEST_MODE, "transferFromRecentToDrive"),
TestParameter(NOT_IN_GUEST_MODE, "transferFromOfflineToDownloads"),
TestParameter(NOT_IN_GUEST_MODE, "transferFromOfflineToDrive")));
// Fails on official build. http://crbug.com/429294
#if defined(DISABLE_SLOW_FILESAPP_TESTS) || defined(OFFICIAL_BUILD)
#define MAYBE_RestorePrefs DISABLED_RestorePrefs
#else
#define MAYBE_RestorePrefs RestorePrefs
#endif
WRAPPED_INSTANTIATE_TEST_CASE_P(
MAYBE_RestorePrefs,
FileManagerBrowserTest,
::testing::Values(TestParameter(IN_GUEST_MODE, "restoreSortColumn"),
TestParameter(NOT_IN_GUEST_MODE, "restoreSortColumn"),
TestParameter(IN_GUEST_MODE, "restoreCurrentView"),
TestParameter(NOT_IN_GUEST_MODE, "restoreCurrentView")));
#if defined(DISABLE_SLOW_FILESAPP_TESTS)
#define MAYBE_ShareDialog DISABLED_ShareDialog
#else
#define MAYBE_ShareDialog ShareDialog
#endif
WRAPPED_INSTANTIATE_TEST_CASE_P(
MAYBE_ShareDialog,
FileManagerBrowserTest,
::testing::Values(TestParameter(NOT_IN_GUEST_MODE, "shareFile"),
TestParameter(NOT_IN_GUEST_MODE, "shareDirectory")));
#if defined(DISABLE_SLOW_FILESAPP_TESTS)
#define MAYBE_RestoreGeometry DISABLED_RestoreGeometry
#else
#define MAYBE_RestoreGeometry RestoreGeometry
#endif
WRAPPED_INSTANTIATE_TEST_CASE_P(
MAYBE_RestoreGeometry,
FileManagerBrowserTest,
::testing::Values(TestParameter(NOT_IN_GUEST_MODE, "restoreGeometry"),
TestParameter(IN_GUEST_MODE, "restoreGeometry"),
TestParameter(NOT_IN_GUEST_MODE,
"restoreGeometryMaximizedState")));
#if defined(DISABLE_SLOW_FILESAPP_TESTS)
#define MAYBE_Traverse DISABLED_Traverse
#else
#define MAYBE_Traverse Traverse
#endif
WRAPPED_INSTANTIATE_TEST_CASE_P(
MAYBE_Traverse,
FileManagerBrowserTest,
::testing::Values(TestParameter(IN_GUEST_MODE, "traverseDownloads"),
TestParameter(NOT_IN_GUEST_MODE, "traverseDownloads"),
TestParameter(NOT_IN_GUEST_MODE, "traverseDrive")));
#if defined(DISABLE_SLOW_FILESAPP_TESTS)
#define MAYBE_SuggestAppDialog DISABLED_SuggestAppDialog
#else
#define MAYBE_SuggestAppDialog SuggestAppDialog
#endif
WRAPPED_INSTANTIATE_TEST_CASE_P(
MAYBE_SuggestAppDialog,
FileManagerBrowserTest,
::testing::Values(TestParameter(NOT_IN_GUEST_MODE, "suggestAppDialog")));
#if defined(DISABLE_SLOW_FILESAPP_TESTS)
#define MAYBE_ExecuteDefaultTaskOnDownloads \
DISABLED_ExecuteDefaultTaskOnDownloads
#else
#define MAYBE_ExecuteDefaultTaskOnDownloads ExecuteDefaultTaskOnDownloads
#endif
WRAPPED_INSTANTIATE_TEST_CASE_P(
MAYBE_ExecuteDefaultTaskOnDownloads,
FileManagerBrowserTest,
::testing::Values(
TestParameter(NOT_IN_GUEST_MODE, "executeDefaultTaskOnDownloads"),
TestParameter(IN_GUEST_MODE, "executeDefaultTaskOnDownloads")));
#if defined(DISABLE_SLOW_FILESAPP_TESTS)
#define MAYBE_ExecuteDefaultTaskOnDrive DISABLED_ExecuteDefaultTaskOnDrive
#else
#define MAYBE_ExecuteDefaultTaskOnDrive ExecuteDefaultTaskOnDrive
#endif
WRAPPED_INSTANTIATE_TEST_CASE_P(
MAYBE_ExecuteDefaultTaskOnDrive,
FileManagerBrowserTest,
::testing::Values(TestParameter(NOT_IN_GUEST_MODE,
"executeDefaultTaskOnDrive")));
#if defined(DISABLE_SLOW_FILESAPP_TESTS)
#define MAYBE_DefaultTaskDialog DISABLED_DefaultTaskDialog
#else
#define MAYBE_DefaultTaskDialog DefaultTaskDialog
#endif
WRAPPED_INSTANTIATE_TEST_CASE_P(
MAYBE_DefaultTaskDialog,
FileManagerBrowserTest,
::testing::Values(
TestParameter(NOT_IN_GUEST_MODE, "defaultTaskDialogOnDownloads"),
TestParameter(IN_GUEST_MODE, "defaultTaskDialogOnDownloads"),
TestParameter(NOT_IN_GUEST_MODE, "defaultTaskDialogOnDrive")));
#if defined(DISABLE_SLOW_FILESAPP_TESTS)
#define MAYBE_GenericTask DISABLED_GenericTask
#else
#define MAYBE_GenericTask GenericTask
#endif
WRAPPED_INSTANTIATE_TEST_CASE_P(
MAYBE_GenericTask,
FileManagerBrowserTest,
::testing::Values(
TestParameter(NOT_IN_GUEST_MODE, "genericTaskIsNotExecuted"),
TestParameter(NOT_IN_GUEST_MODE, "genericAndNonGenericTasksAreMixed")));
#if defined(DISABLE_SLOW_FILESAPP_TESTS)
#define MAYBE_FolderShortcuts DISABLED_FolderShortcuts
#else
#define MAYBE_FolderShortcuts FolderShortcuts
#endif
WRAPPED_INSTANTIATE_TEST_CASE_P(
MAYBE_FolderShortcuts,
FileManagerBrowserTest,
::testing::Values(
TestParameter(NOT_IN_GUEST_MODE, "traverseFolderShortcuts"),
TestParameter(NOT_IN_GUEST_MODE, "addRemoveFolderShortcuts")));
// Fails on official build. http://crbug.com/429294
#if defined(DISABLE_SLOW_FILESAPP_TESTS) || defined(OFFICIAL_BUILD)
#define MAYBE_SortColumns DISABLED_SortColumns
#else
#define MAYBE_SortColumns SortColumns
#endif
WRAPPED_INSTANTIATE_TEST_CASE_P(
MAYBE_SortColumns,
FileManagerBrowserTest,
::testing::Values(TestParameter(NOT_IN_GUEST_MODE, "sortColumns"),
TestParameter(IN_GUEST_MODE, "sortColumns")));
#if defined(DISABLE_SLOW_FILESAPP_TESTS)
#define MAYBE_TabIndex DISABLED_TabIndex
#else
#define MAYBE_TabIndex TabIndex
#endif
WRAPPED_INSTANTIATE_TEST_CASE_P(
MAYBE_TabIndex,
FileManagerBrowserTestWithLegacyEventDispatch,
::testing::Values(TestParameter(NOT_IN_GUEST_MODE, "searchBoxFocus")));
#if defined(DISABLE_SLOW_FILESAPP_TESTS)
#define MAYBE_TabindexFocus DISABLED_TabindexFocus
#else
#define MAYBE_TabindexFocus TabindexFocus
#endif
WRAPPED_INSTANTIATE_TEST_CASE_P(
MAYBE_TabindexFocus,
FileManagerBrowserTestWithLegacyEventDispatch,
::testing::Values(TestParameter(NOT_IN_GUEST_MODE, "tabindexFocus")));
#if defined(DISABLE_SLOW_FILESAPP_TESTS)
#define MAYBE_TabindexFocusDownloads DISABLED_TabindexFocusDownloads
#else
#define MAYBE_TabindexFocusDownloads TabindexFocusDownloads
#endif
WRAPPED_INSTANTIATE_TEST_CASE_P(
MAYBE_TabindexFocusDownloads,
FileManagerBrowserTestWithLegacyEventDispatch,
::testing::Values(TestParameter(NOT_IN_GUEST_MODE,
"tabindexFocusDownloads"),
TestParameter(IN_GUEST_MODE, "tabindexFocusDownloads")));
#if defined(DISABLE_SLOW_FILESAPP_TESTS)
#define MAYBE_TabindexFocusDirectorySelected \
DISABLED_TabindexFocusDirectorySelected
#else
#define MAYBE_TabindexFocusDirectorySelected TabindexFocusDirectorySelected
#endif
WRAPPED_INSTANTIATE_TEST_CASE_P(
MAYBE_TabindexFocusDirectorySelected,
FileManagerBrowserTestWithLegacyEventDispatch,
::testing::Values(TestParameter(NOT_IN_GUEST_MODE,
"tabindexFocusDirectorySelected")));
// Fails on official cros trunk build. http://crbug.com/480491
#if defined(DISABLE_SLOW_FILESAPP_TESTS) || defined(OFFICIAL_BUILD)
#define MAYBE_TabindexOpenDialog DISABLED_TabindexOpenDialog
#else
#define MAYBE_TabindexOpenDialog TabindexOpenDialog
#endif
// Flaky: crbug.com/615259
WRAPPED_INSTANTIATE_TEST_CASE_P(
DISABLED_TabindexOpenDialog,
FileManagerBrowserTest,
::testing::Values(
TestParameter(NOT_IN_GUEST_MODE, "tabindexOpenDialogDrive"),
TestParameter(NOT_IN_GUEST_MODE, "tabindexOpenDialogDownloads"),
TestParameter(IN_GUEST_MODE, "tabindexOpenDialogDownloads")));
// Fails on official build. http://crbug.com/482121.
#if defined(DISABLE_SLOW_FILESAPP_TESTS) || defined(OFFICIAL_BUILD)
#define MAYBE_TabindexSaveFileDialog DISABLED_TabindexSaveFileDialog
#else
#define MAYBE_TabindexSaveFileDialog TabindexSaveFileDialog
#endif
// Flaky: crbug.com/615259
WRAPPED_INSTANTIATE_TEST_CASE_P(
DISABLED_TabindexSaveFileDialog,
FileManagerBrowserTest,
::testing::Values(
TestParameter(NOT_IN_GUEST_MODE, "tabindexSaveFileDialogDrive"),
TestParameter(NOT_IN_GUEST_MODE, "tabindexSaveFileDialogDownloads"),
TestParameter(IN_GUEST_MODE, "tabindexSaveFileDialogDownloads")));
#if defined(DISABLE_SLOW_FILESAPP_TESTS) || defined(OFFICIAL_BUILD)
#define MAYBE_OpenFileDialog DISABLED_OpenFileDialog
#else
#define MAYBE_OpenFileDialog OpenFileDialog
#endif
WRAPPED_INSTANTIATE_TEST_CASE_P(
MAYBE_OpenFileDialog,
FileManagerBrowserTest,
::testing::Values(TestParameter(NOT_IN_GUEST_MODE,
"openFileDialogOnDownloads"),
TestParameter(IN_GUEST_MODE,
"openFileDialogOnDownloads"),
TestParameter(NOT_IN_GUEST_MODE,
"openFileDialogOnDrive"),
TestParameter(IN_INCOGNITO,
"openFileDialogOnDownloads"),
TestParameter(IN_INCOGNITO,
"openFileDialogOnDrive"),
TestParameter(NOT_IN_GUEST_MODE,
"unloadFileDialog")));
#if defined(DISABLE_SLOW_FILESAPP_TESTS)
#define MAYBE_CopyBetweenWindows DISABLED_CopyBetweenWindows
#else
// flaky: http://crbug.com/500966
#define MAYBE_CopyBetweenWindows DISABLED_CopyBetweenWindows
#endif
WRAPPED_INSTANTIATE_TEST_CASE_P(
MAYBE_CopyBetweenWindows,
FileManagerBrowserTest,
::testing::Values(
TestParameter(NOT_IN_GUEST_MODE, "copyBetweenWindowsLocalToDrive"),
TestParameter(NOT_IN_GUEST_MODE, "copyBetweenWindowsLocalToUsb"),
TestParameter(NOT_IN_GUEST_MODE, "copyBetweenWindowsUsbToDrive"),
TestParameter(NOT_IN_GUEST_MODE, "copyBetweenWindowsDriveToLocal"),
TestParameter(NOT_IN_GUEST_MODE, "copyBetweenWindowsDriveToUsb"),
TestParameter(NOT_IN_GUEST_MODE, "copyBetweenWindowsUsbToLocal")));
#if defined(DISABLE_SLOW_FILESAPP_TESTS)
#define MAYBE_ShowGridView DISABLED_ShowGridView
#else
#define MAYBE_ShowGridView ShowGridView
#endif
WRAPPED_INSTANTIATE_TEST_CASE_P(
MAYBE_ShowGridView,
FileManagerBrowserTest,
::testing::Values(TestParameter(NOT_IN_GUEST_MODE, "showGridViewDownloads"),
TestParameter(IN_GUEST_MODE, "showGridViewDownloads"),
TestParameter(NOT_IN_GUEST_MODE, "showGridViewDrive")));
#if defined(DISABLE_SLOW_FILESAPP_TESTS)
#define MAYBE_Providers DISABLED_Providers
#else
#define MAYBE_Providers Providers
#endif
WRAPPED_INSTANTIATE_TEST_CASE_P(
MAYBE_Providers,
FileManagerBrowserTest,
::testing::Values(
TestParameter(NOT_IN_GUEST_MODE, "requestMount"),
TestParameter(NOT_IN_GUEST_MODE, "requestMountMultipleMounts"),
TestParameter(NOT_IN_GUEST_MODE, "requestMountSourceDevice"),
TestParameter(NOT_IN_GUEST_MODE, "requestMountSourceFile")));
#if defined(DISABLE_SLOW_FILESAPP_TESTS)
#define MAYBE_GearMenu DISABLED_GearMenu
#else
#define MAYBE_GearMenu GearMenu
#endif
WRAPPED_INSTANTIATE_TEST_CASE_P(
MAYBE_GearMenu,
FileManagerBrowserTest,
::testing::Values(
TestParameter(NOT_IN_GUEST_MODE, "showHiddenFilesOnDownloads"),
TestParameter(NOT_IN_GUEST_MODE, "showHiddenFilesOnDrive"),
TestParameter(NOT_IN_GUEST_MODE, "hideGoogleDocs")));
// Structure to describe an account info.
struct TestAccountInfo {
const char* const gaia_id;
const char* const email;
const char* const hash;
const char* const display_name;
};
enum {
DUMMY_ACCOUNT_INDEX = 0,
PRIMARY_ACCOUNT_INDEX = 1,
SECONDARY_ACCOUNT_INDEX_START = 2,
};
static const TestAccountInfo kTestAccounts[] = {
{"gaia-id-d", "__dummy__@invalid.domain", "hashdummy", "Dummy Account"},
{"gaia-id-a", "alice@invalid.domain", "hashalice", "Alice"},
{"gaia-id-b", "bob@invalid.domain", "hashbob", "Bob"},
{"gaia-id-c", "charlie@invalid.domain", "hashcharlie", "Charlie"},
};
// Test fixture class for testing multi-profile features.
class MultiProfileFileManagerBrowserTest : public FileManagerBrowserTestBase {
protected:
// Enables multi-profiles.
void SetUpCommandLine(base::CommandLine* command_line) override {
FileManagerBrowserTestBase::SetUpCommandLine(command_line);
// Logs in to a dummy profile (For making MultiProfileWindowManager happy;
// browser test creates a default window and the manager tries to assign a
// user for it, and we need a profile connected to a user.)
command_line->AppendSwitchASCII(chromeos::switches::kLoginUser,
kTestAccounts[DUMMY_ACCOUNT_INDEX].email);
command_line->AppendSwitchASCII(chromeos::switches::kLoginProfile,
kTestAccounts[DUMMY_ACCOUNT_INDEX].hash);
}
// Logs in to the primary profile of this test.
void SetUpOnMainThread() override {
const TestAccountInfo& info = kTestAccounts[PRIMARY_ACCOUNT_INDEX];
AddUser(info, true);
FileManagerBrowserTestBase::SetUpOnMainThread();
}
// Loads all users to the current session and sets up necessary fields.
// This is used for preparing all accounts in PRE_ test setup, and for testing
// actual login behavior.
void AddAllUsers() {
for (size_t i = 0; i < arraysize(kTestAccounts); ++i)
AddUser(kTestAccounts[i], i >= SECONDARY_ACCOUNT_INDEX_START);
}
// Returns primary profile (if it is already created.)
Profile* profile() override {
Profile* const profile = chromeos::ProfileHelper::GetProfileByUserIdHash(
kTestAccounts[PRIMARY_ACCOUNT_INDEX].hash);
return profile ? profile : FileManagerBrowserTestBase::profile();
}
// Sets the test case name (used as a function name in test_cases.js to call.)
void set_test_case_name(const std::string& name) { test_case_name_ = name; }
// Adds a new user for testing to the current session.
void AddUser(const TestAccountInfo& info, bool log_in) {
user_manager::UserManager* const user_manager =
user_manager::UserManager::Get();
const AccountId account_id(AccountId::FromUserEmail(info.email));
if (log_in)
user_manager->UserLoggedIn(account_id, info.hash, false);
user_manager->SaveUserDisplayName(account_id,
base::UTF8ToUTF16(info.display_name));
SigninManagerFactory::GetForProfile(
chromeos::ProfileHelper::GetProfileByUserIdHash(info.hash))
->SetAuthenticatedAccountInfo(info.gaia_id, info.email);
}
private:
GuestMode GetGuestModeParam() const override { return NOT_IN_GUEST_MODE; }
const char* GetTestManifestName() const override {
return "file_manager_test_manifest.json";
}
const char* GetTestCaseNameParam() const override {
return test_case_name_.c_str();
}
std::string test_case_name_;
};
// Fails on official build. http://crbug.com/429294
#if defined(DISABLE_SLOW_FILESAPP_TESTS) || defined(OFFICIAL_BUILD)
#define MAYBE_PRE_BasicDownloads DISABLED_PRE_BasicDownloads
#define MAYBE_BasicDownloads DISABLED_BasicDownloads
#else
#define MAYBE_PRE_BasicDownloads PRE_BasicDownloads
#define MAYBE_BasicDownloads BasicDownloads
#endif
IN_PROC_BROWSER_TEST_F(MultiProfileFileManagerBrowserTest,
MAYBE_PRE_BasicDownloads) {
AddAllUsers();
}
IN_PROC_BROWSER_TEST_F(MultiProfileFileManagerBrowserTest,
MAYBE_BasicDownloads) {
AddAllUsers();
// Sanity check that normal operations work in multi-profile setting as well.
set_test_case_name("keyboardCopyDownloads");
StartTest();
}
// Fails on official build. http://crbug.com/429294
#if defined(DISABLE_SLOW_FILESAPP_TESTS) || defined(OFFICIAL_BUILD)
#define MAYBE_PRE_BasicDrive DISABLED_PRE_BasicDrive
#define MAYBE_BasicDrive DISABLED_BasicDrive
#else
#define MAYBE_PRE_BasicDrive PRE_BasicDrive
#define MAYBE_BasicDrive BasicDrive
#endif
IN_PROC_BROWSER_TEST_F(MultiProfileFileManagerBrowserTest,
MAYBE_PRE_BasicDrive) {
AddAllUsers();
}
IN_PROC_BROWSER_TEST_F(MultiProfileFileManagerBrowserTest, MAYBE_BasicDrive) {
AddAllUsers();
// Sanity check that normal operations work in multi-profile setting as well.
set_test_case_name("keyboardCopyDrive");
StartTest();
}
} // namespace file_manager