Index: chrome/browser/extensions/api/media_galleries/media_galleries_apitest.cc |
=================================================================== |
--- chrome/browser/extensions/api/media_galleries/media_galleries_apitest.cc (revision 224775) |
+++ chrome/browser/extensions/api/media_galleries/media_galleries_apitest.cc (working copy) |
@@ -2,28 +2,23 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "base/bind.h" |
-#include "base/bind_helpers.h" |
-#include "base/command_line.h" |
+#include "base/file_util.h" |
#include "base/files/scoped_temp_dir.h" |
+#include "base/json/json_writer.h" |
#include "base/path_service.h" |
-#include "base/strings/stringprintf.h" |
+#include "base/safe_numerics.h" |
#include "base/strings/utf_string_conversions.h" |
+#include "base/values.h" |
#include "chrome/browser/apps/app_browsertest_util.h" |
#include "chrome/browser/browser_process.h" |
-#include "chrome/browser/extensions/extension_apitest.h" |
-#include "chrome/browser/extensions/extension_process_manager.h" |
#include "chrome/browser/extensions/extension_system.h" |
#include "chrome/browser/media_galleries/media_file_system_registry.h" |
#include "chrome/browser/media_galleries/media_galleries_preferences.h" |
#include "chrome/browser/media_galleries/media_galleries_test_util.h" |
#include "chrome/browser/storage_monitor/storage_info.h" |
#include "chrome/browser/storage_monitor/storage_monitor.h" |
-#include "chrome/browser/ui/browser.h" |
#include "chrome/common/chrome_paths.h" |
-#include "content/public/browser/render_view_host.h" |
#include "content/public/test/test_utils.h" |
-#include "extensions/common/switches.h" |
using extensions::PlatformAppBrowserTest; |
@@ -38,8 +33,6 @@ |
base::FilePath::CharType kDevicePath[] = FILE_PATH_LITERAL("/qux"); |
#endif |
-const char kTestGalleries[] = "testGalleries(%d)"; |
- |
} // namespace |
// This function is to ensure at least one (fake) media gallery exists for |
@@ -68,6 +61,9 @@ |
class MediaGalleriesPlatformAppBrowserTest : public PlatformAppBrowserTest { |
protected: |
+ MediaGalleriesPlatformAppBrowserTest() : test_jpg_size_(0) {} |
+ virtual ~MediaGalleriesPlatformAppBrowserTest() {} |
+ |
virtual void SetUpOnMainThread() OVERRIDE { |
PlatformAppBrowserTest::SetUpOnMainThread(); |
ensure_media_directories_exist_.reset(new EnsureMediaDirectoriesExists); |
@@ -79,19 +75,22 @@ |
PlatformAppBrowserTest::TearDownOnMainThread(); |
} |
- // Since ExtensionTestMessageListener does not work with RunPlatformAppTest(), |
- // This helper method can be used to run additional media gallery tests. |
- void RunSecondTestPhase(const std::string& command) { |
- const extensions::Extension* extension = GetSingleLoadedExtension(); |
- extensions::ExtensionHost* host = |
- extensions::ExtensionSystem::Get(browser()->profile())-> |
- process_manager()->GetBackgroundHostForExtension(extension->id()); |
- ASSERT_TRUE(host); |
+ bool RunMediaGalleriesTest(const std::string& extension_name) { |
+ base::ListValue empty_list_value; |
+ return RunMediaGalleriesTestWithArg(extension_name, empty_list_value); |
+ } |
- ResultCatcher catcher; |
- host->render_view_host()->ExecuteJavascriptInWebFrame( |
- base::string16(), base::UTF8ToUTF16(command)); |
- EXPECT_TRUE(catcher.GetNextResult()) << message_; |
+ bool RunMediaGalleriesTestWithArg(const std::string& extension_name, |
+ const base::ListValue& custom_arg_value) { |
+ const char* custom_arg = NULL; |
+ std::string json_string; |
+ if (!custom_arg_value.empty()) { |
+ base::JSONWriter::Write(&custom_arg_value, &json_string); |
+ custom_arg = json_string.c_str(); |
+ } |
+ |
+ const char kTestDir[] = "api_test/media_galleries/"; |
+ return RunPlatformAppTestWithArg(kTestDir + extension_name, custom_arg); |
} |
void AttachFakeDevice() { |
@@ -128,40 +127,51 @@ |
// Invalid file, should not show up as a FileEntry in JS at all. |
ASSERT_TRUE(base::CopyFile(test_data_path.AppendASCII("test.txt"), |
write_path.AppendASCII("test.txt"))); |
+ |
+ int64 file_size; |
+ ASSERT_TRUE(file_util::GetFileSize(test_data_path.AppendASCII("test.jpg"), |
+ &file_size)); |
+ test_jpg_size_ = base::checked_numeric_cast<int>(file_size); |
} |
int num_galleries() const { |
return ensure_media_directories_exist_->num_galleries(); |
} |
+ int test_jpg_size() const { return test_jpg_size_; } |
+ |
private: |
std::string device_id_; |
+ int test_jpg_size_; |
scoped_ptr<EnsureMediaDirectoriesExists> ensure_media_directories_exist_; |
}; |
IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, |
MediaGalleriesNoAccess) { |
- ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/no_access")) |
+ base::ListValue custom_args; |
+ custom_args.AppendInteger(num_galleries()); |
+ |
+ ASSERT_TRUE(RunMediaGalleriesTestWithArg("no_access", custom_args)) |
<< message_; |
- RunSecondTestPhase(base::StringPrintf(kTestGalleries, num_galleries())); |
} |
IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, NoGalleriesRead) { |
- ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/no_galleries")) |
- << message_; |
+ ASSERT_TRUE(RunMediaGalleriesTest("no_galleries")) << message_; |
} |
IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, |
NoGalleriesCopyTo) { |
- ASSERT_TRUE(RunPlatformAppTest( |
- "api_test/media_galleries/no_galleries_copy_to")) << message_; |
+ ASSERT_TRUE(RunMediaGalleriesTest("no_galleries_copy_to")) << message_; |
} |
IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, |
MediaGalleriesRead) { |
- ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/read_access")) |
+ base::ListValue custom_args; |
+ custom_args.AppendInteger(num_galleries()); |
+ custom_args.AppendInteger(test_jpg_size()); |
+ |
+ ASSERT_TRUE(RunMediaGalleriesTestWithArg("read_access", custom_args)) |
<< message_; |
- RunSecondTestPhase(base::StringPrintf(kTestGalleries, num_galleries())); |
} |
IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, |
@@ -169,8 +179,7 @@ |
base::ScopedTempDir temp_dir; |
ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
MakeFakeMediaGalleryForTest(browser()->profile(), temp_dir.path()); |
- ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/copy_to_access")) |
- << message_; |
+ ASSERT_TRUE(RunMediaGalleriesTest("copy_to_access")) << message_; |
} |
IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, |
@@ -178,26 +187,24 @@ |
base::ScopedTempDir temp_dir; |
ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
MakeFakeMediaGalleryForTest(browser()->profile(), temp_dir.path()); |
- ASSERT_TRUE(RunPlatformAppTest( |
- "api_test/media_galleries/copy_to_access/no_access")) |
- << message_; |
+ ASSERT_TRUE(RunMediaGalleriesTest("copy_to_access/no_access")) << message_; |
} |
IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, |
MediaGalleriesAccessAttached) { |
AttachFakeDevice(); |
- ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/access_attached")) |
+ base::ListValue custom_args; |
+ custom_args.AppendInteger(num_galleries() + 1); |
+ custom_args.AppendString(kDeviceName); |
+ |
+ ASSERT_TRUE(RunMediaGalleriesTestWithArg("access_attached", custom_args)) |
<< message_; |
- RunSecondTestPhase(base::StringPrintf( |
- "testGalleries(%d, \"%s\")", num_galleries() + 1, kDeviceName)); |
- |
DetachFakeDevice(); |
} |
IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, |
GetFilesystemMetadata) { |
- ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/metadata")) |
- << message_; |
+ ASSERT_TRUE(RunMediaGalleriesTest("metadata")) << message_; |
} |