172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved.
272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// Use of this source code is governed by a BSD-style license that can be
372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// found in the LICENSE file.
472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
5ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/memory/scoped_ptr.h"
672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "testing/gtest/include/gtest/gtest.h"
772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "third_party/skia/include/core/SkBitmap.h"
872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "ui/gfx/image.h"
972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "ui/gfx/image_unittest.h"
1072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
1172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#if defined(OS_LINUX)
1272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include <gtk/gtk.h>
1372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "ui/gfx/gtk_util.h"
1472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#endif
1572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
1672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#if defined(TOOLKIT_VIEWS)
1772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "views/controls/image_view.h"
1872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "views/view.h"
1972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#endif
2072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
2172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsennamespace {
2272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
2372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#if defined(TOOLKIT_VIEWS)
2472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian MonsenTEST(UiGfxImageTest, ViewsImageView) {
25ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  gfx::Image image(gfx::test::CreatePlatformImage());
2672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
2772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  scoped_ptr<views::View> container(new views::View());
2872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  container->SetBounds(0, 0, 200, 200);
2972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  container->SetVisible(true);
3072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
3172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  scoped_ptr<views::ImageView> image_view(new views::ImageView());
3272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  image_view->SetImage(image);
3372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  container->AddChildView(image_view.get());
3472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen}
3572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#endif
3672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
3772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#if defined(OS_LINUX)
3872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian MonsenTEST(UiGfxImageTest, GtkImageView) {
3972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  GtkWidget* window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
4072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  gtk_window_resize(GTK_WINDOW(window), 200, 200);
4172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  gtk_window_move(GTK_WINDOW(window), 300, 300);
4272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
4372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  GtkWidget* fixed = gtk_fixed_new();
4472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  gtk_container_add(GTK_CONTAINER(window), fixed);
4572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
46ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  gfx::Image image(gfx::test::CreateBitmap());
4772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  GtkWidget* image_view = gtk_image_new_from_pixbuf(image);
4872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  gtk_fixed_put(GTK_FIXED(fixed), image_view, 10, 10);
4972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  gtk_widget_set_size_request(image_view, 25, 25);
5072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
5172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  gtk_widget_show_all(window);
5272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
5372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  gtk_widget_destroy(window);
5472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen}
5572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#endif
5672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
5772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen}  // namespace
58