Update mojo surfaces bindings and mojo/cc/ glue
[chromium-blink-merge.git] / chrome / browser / status_icons / status_tray_unittest.cc
blob45066b75c72c67eaca4a693a62a8dcec49212c2c
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "base/compiler_specific.h"
6 #include "base/strings/string_util.h"
7 #include "base/strings/utf_string_conversions.h"
8 #include "chrome/browser/status_icons/status_icon.h"
9 #include "chrome/browser/status_icons/status_tray.h"
10 #include "grit/chrome_unscaled_resources.h"
11 #include "testing/gtest/include/gtest/gtest.h"
12 #include "ui/base/resource/resource_bundle.h"
13 #include "ui/gfx/image/image_skia.h"
15 class MockStatusIcon : public StatusIcon {
16 virtual void SetImage(const gfx::ImageSkia& image) OVERRIDE {}
17 virtual void SetPressedImage(const gfx::ImageSkia& image) OVERRIDE {}
18 virtual void SetToolTip(const base::string16& tool_tip) OVERRIDE {}
19 virtual void DisplayBalloon(const gfx::ImageSkia& icon,
20 const base::string16& title,
21 const base::string16& contents) OVERRIDE {}
22 virtual void UpdatePlatformContextMenu(
23 StatusIconMenuModel* menu) OVERRIDE {}
26 class TestStatusTray : public StatusTray {
27 public:
28 virtual StatusIcon* CreatePlatformStatusIcon(
29 StatusIconType type,
30 const gfx::ImageSkia& image,
31 const base::string16& tool_tip) OVERRIDE {
32 return new MockStatusIcon();
35 const StatusIcons& GetStatusIconsForTest() const { return status_icons(); }
38 TEST(StatusTrayTest, Create) {
39 // Check for creation and leaks.
40 TestStatusTray tray;
41 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
42 gfx::ImageSkia* image = rb.GetImageSkiaNamed(IDR_STATUS_TRAY_ICON);
43 tray.CreateStatusIcon(
44 StatusTray::OTHER_ICON, *image, base::ASCIIToUTF16("tool tip"));
45 EXPECT_EQ(1U, tray.GetStatusIconsForTest().size());
48 // Make sure that removing an icon removes it from the list.
49 TEST(StatusTrayTest, CreateRemove) {
50 TestStatusTray tray;
51 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
52 gfx::ImageSkia* image = rb.GetImageSkiaNamed(IDR_STATUS_TRAY_ICON);
53 StatusIcon* icon = tray.CreateStatusIcon(
54 StatusTray::OTHER_ICON, *image, base::ASCIIToUTF16("tool tip"));
55 EXPECT_EQ(1U, tray.GetStatusIconsForTest().size());
56 tray.RemoveStatusIcon(icon);
57 EXPECT_EQ(0U, tray.GetStatusIconsForTest().size());