#include "base/message_loop/message_loop.h"
#include "base/path_service.h"
#include "base/strings/string_util.h"
-#include "chrome/browser/chrome_notification_types.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"
#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:
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_++;
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)));
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_;
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;
WaitForImageLoad();
// We should have gotten the image.
+ EXPECT_FALSE(image_.IsEmpty());
EXPECT_EQ(1, image_loaded_count());
// Check that the image was loaded.
// 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;
UnloadedExtensionInfo details(extension.get(),
UnloadedExtensionInfo::REASON_UNINSTALL);
content::NotificationService::current()->Notify(
- chrome::NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED,
+ NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED,
content::NotificationService::AllSources(),
content::Details<UnloadedExtensionInfo>(&details));
// 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,
// 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,
// 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,
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