Index: chrome/browser/chromeos/extensions/file_manager/file_manager_browsertest.cc |
diff --git a/chrome/browser/chromeos/extensions/file_manager/file_manager_browsertest.cc b/chrome/browser/chromeos/extensions/file_manager/file_manager_browsertest.cc |
index 6ec9d31d303e3049097870202917ff1d5da562fe..975630a52c2d6d25dd558ca83f61e627bebe5073 100644 |
--- a/chrome/browser/chromeos/extensions/file_manager/file_manager_browsertest.cc |
+++ b/chrome/browser/chromeos/extensions/file_manager/file_manager_browsertest.cc |
@@ -47,6 +47,16 @@ enum SharedOption { |
SHARED, |
}; |
+enum GestModeOption { |
hashimoto
2013/05/31 09:16:21
s/Gest/Guest/?
hirono
2013/06/03 01:45:53
Done.
|
+ NOT_IN_GEST_MODE, |
+ IN_GEST_MODE |
+}; |
+ |
+std::ostream& operator<<(std::ostream& os, const GestModeOption& option) { |
hashimoto
2013/05/31 09:16:21
Please add a comment to describe why we need this.
hirono
2013/06/03 01:45:53
Done.
|
+ return os << (option == NOT_IN_GEST_MODE ? |
+ "Not in guest mode" : "In gest mode"); |
+} |
+ |
struct TestEntryInfo { |
EntryType type; |
const char* source_file_name; // Source file name to be used as a prototype. |
@@ -314,11 +324,13 @@ class DriveTestVolume : public TestVolume { |
// The base test class. Used by FileManagerBrowserLocalTest, |
// FileManagerBrowserDriveTest, and FileManagerBrowserTransferTest. |
-// The boolean parameter, retrieved by GetParam(), is true if testing in the |
-// guest mode. See SetUpCommandLine() below for details. |
-class FileManagerBrowserTestBase : public ExtensionApiTest, |
- public ::testing::WithParamInterface<bool> { |
+class FileManagerBrowserTestBase : public ExtensionApiTest { |
protected: |
+ // gest_mode is true if testing in the guest mode. See SetUpCommandLine() |
hashimoto
2013/05/31 09:16:21
nit: I think this comment is useless or at least w
hirono
2013/06/03 01:45:53
Done.
|
+ // below for details. |
+ explicit FileManagerBrowserTestBase(GestModeOption gest_mode) : |
+ gest_mode_(gest_mode_) {} |
+ |
// Adds an incognito and guest-mode flags for tests in the guest mode. |
virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE; |
@@ -332,11 +344,13 @@ class FileManagerBrowserTestBase : public ExtensionApiTest, |
// Runs the file display test on the passed |volume|, shared by subclasses. |
void DoTestFileDisplay(TestVolume* volume); |
+ |
+ private: |
+ GestModeOption gest_mode_; |
}; |
void FileManagerBrowserTestBase::SetUpCommandLine(CommandLine* command_line) { |
- bool in_guest_mode = GetParam(); |
- if (in_guest_mode) { |
+ if (gest_mode_ == IN_GEST_MODE) { |
command_line->AppendSwitch(chromeos::switches::kGuestSession); |
command_line->AppendSwitchNative(chromeos::switches::kLoginUser, ""); |
command_line->AppendSwitch(switches::kIncognito); |
@@ -349,7 +363,7 @@ void FileManagerBrowserTestBase::StartTest(const std::string& test_name) { |
const extensions::Extension* extension = LoadExtensionAsComponent(path); |
ASSERT_TRUE(extension); |
- bool in_guest_mode = GetParam(); |
+ bool in_guest_mode = gest_mode_ == IN_GEST_MODE; |
ExtensionTestMessageListener listener( |
in_guest_mode ? "which test guest" : "which test non-guest", true); |
ASSERT_TRUE(listener.WaitUntilSatisfied()); |
@@ -384,9 +398,12 @@ void FileManagerBrowserTestBase::DoTestFileDisplay(TestVolume* volume) { |
} |
// A class to test local volumes. |
-class FileManagerBrowserLocalTest : public FileManagerBrowserTestBase { |
+class FileManagerBrowserLocalTest : |
+ public FileManagerBrowserTestBase, |
+ public ::testing::WithParamInterface<GestModeOption> { |
public: |
- FileManagerBrowserLocalTest() : volume_("Downloads") {} |
+ FileManagerBrowserLocalTest() : FileManagerBrowserTestBase(GetParam()), |
+ volume_("Downloads") {} |
protected: |
virtual void SetUpInProcessBrowserTestFixture() OVERRIDE { |
@@ -404,16 +421,17 @@ class FileManagerBrowserLocalTest : public FileManagerBrowserTestBase { |
LocalTestVolume volume_; |
}; |
-INSTANTIATE_TEST_CASE_P(InGuestMode, |
+INSTANTIATE_TEST_CASE_P(BothGuestMode, |
FileManagerBrowserLocalTest, |
- ::testing::Values(true)); |
- |
-INSTANTIATE_TEST_CASE_P(InNonGuestMode, |
- FileManagerBrowserLocalTest, |
- ::testing::Values(false)); |
+ ::testing::Values(IN_GEST_MODE, NOT_IN_GEST_MODE)); |
// A class to test Drive's volumes |
-class FileManagerBrowserDriveTest : public FileManagerBrowserTestBase { |
+class FileManagerBrowserDriveTest : |
+ public FileManagerBrowserTestBase, |
+ public ::testing::WithParamInterface<GestModeOption> { |
hashimoto
2013/05/31 09:16:21
Can't we just pass NOT_IN_GUEST_MODE to the ctor o
hirono
2013/06/03 01:45:53
Done.
|
+ public: |
+ FileManagerBrowserDriveTest() : FileManagerBrowserTestBase(GetParam()) {} |
+ |
protected: |
virtual void SetUpInProcessBrowserTestFixture() OVERRIDE { |
FileManagerBrowserTestBase::SetUpInProcessBrowserTestFixture(); |
@@ -438,12 +456,20 @@ class FileManagerBrowserDriveTest : public FileManagerBrowserTestBase { |
// Don't test Drive in the guest mode as it's not supported. |
INSTANTIATE_TEST_CASE_P(InNonGuestMode, |
FileManagerBrowserDriveTest, |
- ::testing::Values(false)); |
+ ::testing::Values(NOT_IN_GEST_MODE)); |
+ |
+typedef std::tr1::tuple<GestModeOption, const char*> TransferTestParam; |
// A class to test both local and Drive's volumes. |
-class FileManagerBrowserTransferTest : public FileManagerBrowserTestBase { |
+class FileManagerBrowserJavaScriptTest : |
hashimoto
2013/05/31 09:16:21
"JavaScriptTest" seems to be too generic.
Why did
hirono
2013/06/03 01:45:53
To parameterize all the tests, I removed FileManag
|
+ public FileManagerBrowserTestBase, |
+ public ::testing::WithParamInterface<TransferTestParam> { |
public: |
- FileManagerBrowserTransferTest() : local_volume_("Downloads") {} |
+ FileManagerBrowserJavaScriptTest() : |
+ // FileManagerBrowserJavaScriptTest depends on Drive, which is not |
+ // supported in the guest mode. |
+ FileManagerBrowserTestBase(std::tr1::get<0>(GetParam())), |
+ local_volume_("Downloads") {} |
protected: |
virtual void SetUpInProcessBrowserTestFixture() OVERRIDE { |
@@ -468,11 +494,20 @@ class FileManagerBrowserTransferTest : public FileManagerBrowserTestBase { |
DriveTestVolume drive_volume_; |
}; |
-// FileManagerBrowserTransferTest depends on Drive and Drive is not supported in |
-// the guest mode. |
-INSTANTIATE_TEST_CASE_P(InNonGuestMode, |
- FileManagerBrowserTransferTest, |
- ::testing::Values(false)); |
+INSTANTIATE_TEST_CASE_P( |
hashimoto
2013/05/31 09:16:21
Can't we do the same thing for all tests except Fi
hirono
2013/06/03 01:45:53
Done.
|
+ TransferTest, |
+ FileManagerBrowserJavaScriptTest, |
+ ::testing::Combine( |
+ ::testing::Values(NOT_IN_GEST_MODE), |
+ ::testing::Values( |
+ "transferFromDriveToDownloads", |
+ "transferFromDownloadsToDrive", |
+ "transferFromSharedToDownloads", |
+ "transferFromSharedToDrive", |
+ "transferFromRecentToDownloads", |
+ "transferFromRecentToDrive", |
+ "transferFromOfflineToDownloads", |
+ "transferFromOfflineToDrive"))); |
IN_PROC_BROWSER_TEST_P(FileManagerBrowserLocalTest, TestFileDisplay) { |
DoTestFileDisplay(&volume_); |
@@ -557,60 +592,10 @@ IN_PROC_BROWSER_TEST_P(FileManagerBrowserDriveTest, TestAutocomplete) { |
ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); |
} |
-IN_PROC_BROWSER_TEST_P(FileManagerBrowserTransferTest, |
- TransferFromDriveToDownloads) { |
- ResultCatcher catcher; |
- ASSERT_NO_FATAL_FAILURE(StartTest("transferFromDriveToDownloads")); |
- ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); |
-} |
- |
-IN_PROC_BROWSER_TEST_P(FileManagerBrowserTransferTest, |
- TransferFromDownloadsToDrive) { |
- ResultCatcher catcher; |
- ASSERT_NO_FATAL_FAILURE(StartTest("transferFromDownloadsToDrive")); |
- ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); |
-} |
- |
-IN_PROC_BROWSER_TEST_P(FileManagerBrowserTransferTest, |
- TransferFromSharedToDownloads) { |
+IN_PROC_BROWSER_TEST_P(FileManagerBrowserJavaScriptTest, |
+ ExecuteJavaScript) { |
ResultCatcher catcher; |
- ASSERT_NO_FATAL_FAILURE(StartTest("transferFromSharedToDownloads")); |
+ ASSERT_NO_FATAL_FAILURE(StartTest(std::tr1::get<1>(GetParam()))); |
ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); |
} |
- |
-IN_PROC_BROWSER_TEST_P(FileManagerBrowserTransferTest, |
- TransferFromSharedToDrive) { |
- ResultCatcher catcher; |
- ASSERT_NO_FATAL_FAILURE(StartTest("transferFromSharedToDrive")); |
- ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); |
-} |
- |
-IN_PROC_BROWSER_TEST_P(FileManagerBrowserTransferTest, |
- TransferFromRecentToDownloads) { |
- ResultCatcher catcher; |
- ASSERT_NO_FATAL_FAILURE(StartTest("transferFromRecentToDownloads")); |
- ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); |
-} |
- |
-IN_PROC_BROWSER_TEST_P(FileManagerBrowserTransferTest, |
- TransferFromRecentToDrive) { |
- ResultCatcher catcher; |
- ASSERT_NO_FATAL_FAILURE(StartTest("transferFromRecentToDrive")); |
- ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); |
-} |
- |
-IN_PROC_BROWSER_TEST_P(FileManagerBrowserTransferTest, |
- TransferFromOfflineToDownloads) { |
- ResultCatcher catcher; |
- ASSERT_NO_FATAL_FAILURE(StartTest("transferFromOfflineToDownloads")); |
- ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); |
-} |
- |
-IN_PROC_BROWSER_TEST_P(FileManagerBrowserTransferTest, |
- TransferFromOfflineToDrive) { |
- ResultCatcher catcher; |
- ASSERT_NO_FATAL_FAILURE(StartTest("transferFromOfflineToDrive")); |
- ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); |
-} |
- |
} // namespace |