summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjamescook@chromium.org <jamescook@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-06 22:59:43 +0000
committerjamescook@chromium.org <jamescook@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-06 22:59:43 +0000
commit311edb2bc0bf2b947a144cafc4ea3eb61925e94b (patch)
tree3c8c22b8c1e14c1d8f52beda82bdb0ab47003809
parent2bb5a856f69e91ddfc03642f760fc435d646e451 (diff)
downloadchromium_src-311edb2bc0bf2b947a144cafc4ea3eb61925e94b.zip
chromium_src-311edb2bc0bf2b947a144cafc4ea3eb61925e94b.tar.gz
chromium_src-311edb2bc0bf2b947a144cafc4ea3eb61925e94b.tar.bz2
Move ImageLoaderTest to extensions_unittests
* Give it its own copy of its test data, instead of sharing with other unrelated tests that live in src/chrome. * Introduce ChromeComponentExtensionResourceManagerTest to address a TODO and eliminate the src/chrome dependency. BUG=397164 TEST=unit_tests, extensions_unittests Review URL: https://codereview.chromium.org/439023002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@287885 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/extensions/chrome_component_extension_resource_manager_unittest.cc74
-rw-r--r--chrome/chrome_tests_unit.gypi3
-rw-r--r--extensions/browser/image_loader_unittest.cc116
-rw-r--r--extensions/extensions.gyp1
4 files changed, 115 insertions, 79 deletions
diff --git a/chrome/browser/extensions/chrome_component_extension_resource_manager_unittest.cc b/chrome/browser/extensions/chrome_component_extension_resource_manager_unittest.cc
new file mode 100644
index 0000000..cbf161b
--- /dev/null
+++ b/chrome/browser/extensions/chrome_component_extension_resource_manager_unittest.cc
@@ -0,0 +1,74 @@
+// Copyright 2014 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 "base/files/file_path.h"
+#include "base/path_service.h"
+#include "chrome/common/chrome_paths.h"
+#include "extensions/browser/component_extension_resource_manager.h"
+#include "extensions/browser/extensions_browser_client.h"
+#include "extensions/common/constants.h"
+#include "extensions/common/extension.h"
+#include "extensions/common/extension_icon_set.h"
+#include "extensions/common/extension_resource.h"
+#include "extensions/common/file_util.h"
+#include "extensions/common/manifest.h"
+#include "extensions/common/manifest_handlers/icons_handler.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+#if defined(OS_CHROMEOS)
+#include "ui/file_manager/grit/file_manager_resources.h"
+#endif
+
+namespace extensions {
+
+typedef testing::Test ChromeComponentExtensionResourceManagerTest;
+
+// Tests IsComponentExtensionResource function.
+TEST_F(ChromeComponentExtensionResourceManagerTest,
+ IsComponentExtensionResource) {
+ ComponentExtensionResourceManager* resource_manager =
+ ExtensionsBrowserClient::Get()->GetComponentExtensionResourceManager();
+ ASSERT_TRUE(resource_manager);
+
+ // Get the extension test data path.
+ base::FilePath test_path;
+ ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_path));
+ test_path = test_path.AppendASCII("extensions").AppendASCII("file_manager");
+
+ // Load the manifest data.
+ std::string error;
+ scoped_ptr<base::DictionaryValue> manifest(file_util::LoadManifest(
+ test_path, FILE_PATH_LITERAL("app.json"), &error));
+ ASSERT_TRUE(manifest.get()) << error;
+
+ // Build a path inside Chrome's resources directory where a component
+ // extension might be installed.
+ base::FilePath resources_path;
+ ASSERT_TRUE(PathService::Get(chrome::DIR_RESOURCES, &resources_path));
+ resources_path = resources_path.AppendASCII("file_manager");
+
+ // Create a simulated component extension.
+ scoped_refptr<Extension> extension = Extension::Create(resources_path,
+ Manifest::COMPONENT,
+ *manifest,
+ Extension::NO_FLAGS,
+ &error);
+ ASSERT_TRUE(extension.get());
+
+ // Load one of the icons.
+ ExtensionResource resource =
+ IconsInfo::GetIconResource(extension.get(),
+ extension_misc::EXTENSION_ICON_BITTY,
+ ExtensionIconSet::MATCH_EXACTLY);
+
+#if defined(OS_CHROMEOS)
+ // The resource is a component resource.
+ int resource_id = 0;
+ ASSERT_TRUE(resource_manager->IsComponentExtensionResource(
+ extension->path(), resource.relative_path(), &resource_id));
+ ASSERT_EQ(IDR_FILE_MANAGER_ICON_16, resource_id);
+#endif
+}
+
+} // namespace extensions
diff --git a/chrome/chrome_tests_unit.gypi b/chrome/chrome_tests_unit.gypi
index 7240d30..a0fec35 100644
--- a/chrome/chrome_tests_unit.gypi
+++ b/chrome/chrome_tests_unit.gypi
@@ -538,7 +538,6 @@
'../extensions/browser/extension_error_test_util.h',
'../extensions/browser/extension_icon_image_unittest.cc',
'../extensions/browser/extension_protocols_unittest.cc',
- '../extensions/browser/image_loader_unittest.cc',
'../extensions/browser/info_map_unittest.cc',
'../extensions/common/extension_l10n_util_unittest.cc',
'../extensions/common/extension_resource_unittest.cc',
@@ -925,6 +924,7 @@
'browser/extensions/bookmark_app_helper_unittest.cc',
'browser/extensions/browser_permissions_policy_delegate_unittest.cc',
'browser/extensions/chrome_app_sorting_unittest.cc',
+ 'browser/extensions/chrome_component_extension_resource_manager_unittest.cc',
'browser/extensions/component_loader_unittest.cc',
'browser/extensions/convert_user_script_unittest.cc',
'browser/extensions/convert_web_app_unittest.cc',
@@ -2171,7 +2171,6 @@
}],
['chromeos==0', {
'sources!': [
- 'browser/extensions/image_loader_unittest.cc',
# TODO(zturner): Enable this on Windows. See
# BrowserWithTestWindowTest::SetUp() for a comment explaining why
# this is broken.
diff --git a/extensions/browser/image_loader_unittest.cc b/extensions/browser/image_loader_unittest.cc
index 39ae9e2..74b9ccc 100644
--- a/extensions/browser/image_loader_unittest.cc
+++ b/extensions/browser/image_loader_unittest.cc
@@ -9,15 +9,14 @@
#include "base/message_loop/message_loop.h"
#include "base/path_service.h"
#include "base/strings/string_util.h"
-#include "chrome/common/chrome_paths.h"
#include "content/public/browser/notification_service.h"
#include "content/public/test/test_browser_thread.h"
-#include "extensions/browser/component_extension_resource_manager.h"
#include "extensions/browser/extensions_browser_client.h"
#include "extensions/browser/notification_types.h"
#include "extensions/common/constants.h"
#include "extensions/common/extension.h"
#include "extensions/common/extension_icon_set.h"
+#include "extensions/common/extension_paths.h"
#include "extensions/common/extension_resource.h"
#include "extensions/common/manifest.h"
#include "extensions/common/manifest_handlers/icons_handler.h"
@@ -28,16 +27,10 @@
#include "ui/gfx/image/image_skia.h"
#include "ui/gfx/size.h"
-#if defined(OS_CHROMEOS)
-#include "ui/file_manager/grit/file_manager_resources.h"
-#endif
-
using content::BrowserThread;
-using extensions::Extension;
-using extensions::ExtensionResource;
-using extensions::ImageLoader;
-using extensions::Manifest;
-using extensions::UnloadedExtensionInfo;
+using content::NotificationService;
+
+namespace extensions {
class ImageLoaderTest : public testing::Test {
public:
@@ -46,8 +39,8 @@ class ImageLoaderTest : public testing::Test {
quit_in_image_loaded_(false),
ui_thread_(BrowserThread::UI, &ui_loop_),
file_thread_(BrowserThread::FILE),
- io_thread_(BrowserThread::IO) {
- }
+ io_thread_(BrowserThread::IO),
+ notification_service_(NotificationService::Create()) {}
void OnImageLoaded(const gfx::Image& image) {
image_loaded_count_++;
@@ -75,19 +68,19 @@ class ImageLoaderTest : public testing::Test {
return result;
}
- scoped_refptr<Extension> CreateExtension(const char* name,
+ scoped_refptr<Extension> CreateExtension(const char* dir_name,
Manifest::Location location) {
// Create and load an extension.
- base::FilePath test_file;
- if (!PathService::Get(chrome::DIR_TEST_DATA, &test_file)) {
+ base::FilePath extension_dir;
+ if (!PathService::Get(DIR_TEST_DATA, &extension_dir)) {
EXPECT_FALSE(true);
return NULL;
}
- test_file = test_file.AppendASCII("extensions")
- .AppendASCII(name);
+ extension_dir = extension_dir.AppendASCII(dir_name);
int error_code = 0;
std::string error;
- JSONFileValueSerializer serializer(test_file.AppendASCII("app.json"));
+ JSONFileValueSerializer serializer(
+ extension_dir.AppendASCII("manifest.json"));
scoped_ptr<base::DictionaryValue> valid_value(
static_cast<base::DictionaryValue*>(serializer.Deserialize(&error_code,
&error)));
@@ -99,15 +92,8 @@ class ImageLoaderTest : public testing::Test {
if (!valid_value)
return NULL;
- if (location == Manifest::COMPONENT) {
- if (!PathService::Get(chrome::DIR_RESOURCES, &test_file)) {
- EXPECT_FALSE(true);
- return NULL;
- }
- test_file = test_file.AppendASCII(name);
- }
- return Extension::Create(test_file, location, *valid_value,
- Extension::NO_FLAGS, &error);
+ return Extension::Create(
+ extension_dir, location, *valid_value, Extension::NO_FLAGS, &error);
}
gfx::Image image_;
@@ -126,18 +112,19 @@ class ImageLoaderTest : public testing::Test {
content::TestBrowserThread ui_thread_;
content::TestBrowserThread file_thread_;
content::TestBrowserThread io_thread_;
+ scoped_ptr<NotificationService> notification_service_;
};
// Tests loading an image works correctly.
TEST_F(ImageLoaderTest, LoadImage) {
- scoped_refptr<Extension> extension(CreateExtension(
- "image_loading_tracker", Manifest::INVALID_LOCATION));
+ scoped_refptr<Extension> extension(
+ CreateExtension("image_loader", Manifest::INVALID_LOCATION));
ASSERT_TRUE(extension.get() != NULL);
- ExtensionResource image_resource = extensions::IconsInfo::GetIconResource(
- extension.get(),
- extension_misc::EXTENSION_ICON_SMALLISH,
- ExtensionIconSet::MATCH_EXACTLY);
+ ExtensionResource image_resource =
+ IconsInfo::GetIconResource(extension.get(),
+ extension_misc::EXTENSION_ICON_SMALLISH,
+ ExtensionIconSet::MATCH_EXACTLY);
gfx::Size max_size(extension_misc::EXTENSION_ICON_SMALLISH,
extension_misc::EXTENSION_ICON_SMALLISH);
ImageLoader loader;
@@ -153,6 +140,7 @@ TEST_F(ImageLoaderTest, LoadImage) {
WaitForImageLoad();
// We should have gotten the image.
+ EXPECT_FALSE(image_.IsEmpty());
EXPECT_EQ(1, image_loaded_count());
// Check that the image was loaded.
@@ -163,14 +151,14 @@ TEST_F(ImageLoaderTest, LoadImage) {
// Tests deleting an extension while waiting for the image to load doesn't cause
// problems.
TEST_F(ImageLoaderTest, DeleteExtensionWhileWaitingForCache) {
- scoped_refptr<Extension> extension(CreateExtension(
- "image_loading_tracker", Manifest::INVALID_LOCATION));
+ scoped_refptr<Extension> extension(
+ CreateExtension("image_loader", Manifest::INVALID_LOCATION));
ASSERT_TRUE(extension.get() != NULL);
- ExtensionResource image_resource = extensions::IconsInfo::GetIconResource(
- extension.get(),
- extension_misc::EXTENSION_ICON_SMALLISH,
- ExtensionIconSet::MATCH_EXACTLY);
+ ExtensionResource image_resource =
+ IconsInfo::GetIconResource(extension.get(),
+ extension_misc::EXTENSION_ICON_SMALLISH,
+ ExtensionIconSet::MATCH_EXACTLY);
gfx::Size max_size(extension_misc::EXTENSION_ICON_SMALLISH,
extension_misc::EXTENSION_ICON_SMALLISH);
ImageLoader loader;
@@ -189,7 +177,7 @@ TEST_F(ImageLoaderTest, DeleteExtensionWhileWaitingForCache) {
UnloadedExtensionInfo details(extension.get(),
UnloadedExtensionInfo::REASON_UNINSTALL);
content::NotificationService::current()->Notify(
- extensions::NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED,
+ NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED,
content::NotificationService::AllSources(),
content::Details<UnloadedExtensionInfo>(&details));
@@ -210,15 +198,15 @@ TEST_F(ImageLoaderTest, DeleteExtensionWhileWaitingForCache) {
// Tests loading multiple dimensions of the same image.
TEST_F(ImageLoaderTest, MultipleImages) {
- scoped_refptr<Extension> extension(CreateExtension(
- "image_loading_tracker", Manifest::INVALID_LOCATION));
+ scoped_refptr<Extension> extension(
+ CreateExtension("image_loader", Manifest::INVALID_LOCATION));
ASSERT_TRUE(extension.get() != NULL);
std::vector<ImageLoader::ImageRepresentation> info_list;
int sizes[] = {extension_misc::EXTENSION_ICON_BITTY,
extension_misc::EXTENSION_ICON_SMALLISH, };
for (size_t i = 0; i < arraysize(sizes); ++i) {
- ExtensionResource resource = extensions::IconsInfo::GetIconResource(
+ ExtensionResource resource = IconsInfo::GetIconResource(
extension.get(), sizes[i], ExtensionIconSet::MATCH_EXACTLY);
info_list.push_back(ImageLoader::ImageRepresentation(
resource,
@@ -256,14 +244,14 @@ TEST_F(ImageLoaderTest, MultipleImages) {
// Tests loading multiple dimensions of the same image into an image family.
TEST_F(ImageLoaderTest, LoadImageFamily) {
scoped_refptr<Extension> extension(
- CreateExtension("image_loading_tracker", Manifest::INVALID_LOCATION));
+ CreateExtension("image_loader", Manifest::INVALID_LOCATION));
ASSERT_TRUE(extension.get() != NULL);
std::vector<ImageLoader::ImageRepresentation> info_list;
int sizes[] = {extension_misc::EXTENSION_ICON_BITTY,
extension_misc::EXTENSION_ICON_SMALLISH, };
for (size_t i = 0; i < arraysize(sizes); ++i) {
- ExtensionResource resource = extensions::IconsInfo::GetIconResource(
+ ExtensionResource resource = IconsInfo::GetIconResource(
extension.get(), sizes[i], ExtensionIconSet::MATCH_EXACTLY);
info_list.push_back(ImageLoader::ImageRepresentation(
resource,
@@ -274,10 +262,10 @@ TEST_F(ImageLoaderTest, LoadImageFamily) {
// Add a second icon of 200P which should get grouped with the smaller icon's
// ImageSkia.
- ExtensionResource resource = extensions::IconsInfo::GetIconResource(
- extension.get(),
- extension_misc::EXTENSION_ICON_SMALLISH,
- ExtensionIconSet::MATCH_EXACTLY);
+ ExtensionResource resource =
+ IconsInfo::GetIconResource(extension.get(),
+ extension_misc::EXTENSION_ICON_SMALLISH,
+ ExtensionIconSet::MATCH_EXACTLY);
info_list.push_back(ImageLoader::ImageRepresentation(
resource,
ImageLoader::ImageRepresentation::NEVER_RESIZE,
@@ -322,30 +310,4 @@ TEST_F(ImageLoaderTest, LoadImageFamily) {
EXPECT_EQ(2.0f, img_rep2->scale());
}
-// Tests IsComponentExtensionResource function.
-// TODO(mukai): move this to ChromeComponentExtensionResourceManager's test.
-TEST_F(ImageLoaderTest, IsComponentExtensionResource) {
- extensions::ComponentExtensionResourceManager* resource_manager =
- extensions::ExtensionsBrowserClient::Get()->
- GetComponentExtensionResourceManager();
- if (!resource_manager)
- return;
-
- scoped_refptr<Extension> extension(CreateExtension(
- "file_manager", Manifest::COMPONENT));
- ASSERT_TRUE(extension.get() != NULL);
-
- ExtensionResource resource = extensions::IconsInfo::GetIconResource(
- extension.get(),
- extension_misc::EXTENSION_ICON_BITTY,
- ExtensionIconSet::MATCH_EXACTLY);
-
-#if defined(OS_CHROMEOS)
- int resource_id;
- ASSERT_TRUE(resource_manager->IsComponentExtensionResource(
- extension->path(),
- resource.relative_path(),
- &resource_id));
- ASSERT_EQ(IDR_FILE_MANAGER_ICON_16, resource_id);
-#endif
-}
+} // namespace extensions
diff --git a/extensions/extensions.gyp b/extensions/extensions.gyp
index 027ef48..f6a7246 100644
--- a/extensions/extensions.gyp
+++ b/extensions/extensions.gyp
@@ -830,6 +830,7 @@
'browser/extension_registry_unittest.cc',
'browser/file_highlighter_unittest.cc',
'browser/file_reader_unittest.cc',
+ 'browser/image_loader_unittest.cc',
'browser/image_util_unittest.cc',
'browser/lazy_background_task_queue_unittest.cc',
'browser/management_policy_unittest.cc',