Index: chrome/browser/chromeos/file_manager/file_manager_browsertest.cc |
diff --git a/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc b/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc |
index f6890ef82559d3a56817769806c82827c58298c8..3fadd2d7b9272760c03e5641f992c7faba1ba0ae 100644 |
--- a/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc |
+++ b/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc |
@@ -524,9 +524,13 @@ class FileManagerBrowserTestBase : public ExtensionApiTest { |
// Loads our testing extension and sends it a string identifying the current |
// test. |
- void StartTest(); |
+ virtual void StartTest(); |
+ void RunTestMessageLoop(); |
// Overriding point for test configurations. |
+ virtual const char* GetTestManifestName() const { |
+ return "file_manager_manifest.json"; |
yoshiki
2014/06/02 21:30:16
nit: I think manifest.json should be under file_ma
hirono
2014/06/03 01:48:41
I renamed the files.
|
+ } |
virtual GuestMode GetGuestModeParam() const = 0; |
virtual const char* GetTestCaseNameParam() const = 0; |
virtual std::string OnMessage(const std::string& name, |
@@ -588,9 +592,14 @@ void FileManagerBrowserTestBase::SetUpCommandLine(CommandLine* command_line) { |
void FileManagerBrowserTestBase::StartTest() { |
// Launch the extension. |
base::FilePath path = test_data_dir_.AppendASCII("file_manager_browsertest"); |
- const extensions::Extension* extension = LoadExtensionAsComponent(path); |
+ const extensions::Extension* extension = LoadExtensionAsComponentWithManifest( |
+ path, GetTestManifestName()); |
ASSERT_TRUE(extension); |
+ RunTestMessageLoop(); |
+} |
+ |
+void FileManagerBrowserTestBase::RunTestMessageLoop() { |
// Handle the messages from JavaScript. |
// The while loop is break when the test is passed or failed. |
FileManagerTestListener listener; |
@@ -1068,5 +1077,68 @@ IN_PROC_BROWSER_TEST_F(MultiProfileFileManagerBrowserTest, |
StartTest(); |
} |
+template<GuestMode M> |
+class GalleryBrowserTestBase : public FileManagerBrowserTestBase { |
+ public: |
+ virtual GuestMode GetGuestModeParam() const OVERRIDE { return M; } |
+ virtual const char* GetTestCaseNameParam() const OVERRIDE { |
+ return test_case_name_.c_str(); |
+ } |
+ |
+ protected: |
+ virtual std::string OnMessage(const std::string& name, |
+ const base::Value* value) OVERRIDE; |
+ |
+ virtual const char* GetTestManifestName() const OVERRIDE { |
+ return "gallery_manifest.json"; |
yoshiki
2014/06/02 21:30:16
ditto
hirono
2014/06/03 01:48:41
Done.
|
+ } |
+ |
+ void AddScript(const std::string& name) { |
+ scripts_.AppendString( |
+ "chrome-extension://ejhcmmdhhpdhhgmifplfmjobgegbibkn/" + name); |
+ } |
+ |
+ void set_test_case_name(const std::string& name) { |
+ test_case_name_ = name; |
+ } |
+ |
+ private: |
+ base::ListValue scripts_; |
+ std::string test_case_name_; |
+}; |
+ |
+template<GuestMode M> |
+std::string GalleryBrowserTestBase<M>::OnMessage(const std::string& name, |
+ const base::Value* value) { |
+ if (name == "getScripts") { |
+ std::string jsonString; |
+ base::JSONWriter::Write(&scripts_, &jsonString); |
+ return jsonString; |
+ } |
+ return FileManagerBrowserTestBase::OnMessage(name, value); |
+} |
+ |
+typedef GalleryBrowserTestBase<NOT_IN_GUEST_MODE> GalleryBrowserTest; |
+typedef GalleryBrowserTestBase<IN_GUEST_MODE> GalleryBrowserTestInGuestMode; |
+ |
+IN_PROC_BROWSER_TEST_F(GalleryBrowserTest, OpenSingleImageOnDownloads) { |
+ AddScript("gallery/open_image_files.js"); |
+ set_test_case_name("openSingleImageOnDownloads"); |
+ StartTest(); |
+} |
+ |
+IN_PROC_BROWSER_TEST_F(GalleryBrowserTestInGuestMode, |
+ OpenSingleImageOnDownloads) { |
+ AddScript("gallery/open_image_files.js"); |
+ set_test_case_name("openSingleImageOnDownloads"); |
+ StartTest(); |
+} |
+ |
+IN_PROC_BROWSER_TEST_F(GalleryBrowserTest, OpenSingleImageOnDrive) { |
+ AddScript("gallery/open_image_files.js"); |
+ set_test_case_name("openSingleImageOnDrive"); |
+ StartTest(); |
+} |
+ |
} // namespace |
} // namespace file_manager |