OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
| 5 #include "chrome/browser/ui/gtk/status_icons/status_tray_gtk.h" |
| 6 |
5 #include "base/string_util.h" | 7 #include "base/string_util.h" |
6 #include "base/utf_string_conversions.h" | 8 #include "base/utf_string_conversions.h" |
| 9 #include "chrome/browser/status_icons/status_icon_observer.h" |
7 #include "chrome/browser/ui/gtk/status_icons/status_icon_gtk.h" | 10 #include "chrome/browser/ui/gtk/status_icons/status_icon_gtk.h" |
8 #include "chrome/browser/ui/gtk/status_icons/status_tray_gtk.h" | |
9 #include "grit/theme_resources.h" | 11 #include "grit/theme_resources.h" |
10 #include "testing/gmock/include/gmock/gmock.h" | 12 #include "testing/gmock/include/gmock/gmock.h" |
11 #include "testing/gtest/include/gtest/gtest.h" | 13 #include "testing/gtest/include/gtest/gtest.h" |
12 #include "ui/base/models/simple_menu_model.h" | 14 #include "ui/base/models/simple_menu_model.h" |
13 #include "ui/base/resource/resource_bundle.h" | 15 #include "ui/base/resource/resource_bundle.h" |
14 | 16 |
15 namespace { | 17 namespace { |
16 | 18 |
17 class MockStatusIconObserver : public StatusIcon::Observer { | 19 class MockStatusIconObserver : public StatusIconObserver { |
18 public: | 20 public: |
19 MOCK_METHOD0(OnClicked, void()); | 21 MOCK_METHOD0(OnStatusIconClicked, void()); |
20 }; | 22 }; |
21 | 23 |
22 TEST(StatusTrayGtkTest, CreateTray) { | 24 TEST(StatusTrayGtkTest, CreateTray) { |
23 // Just tests creation/destruction. | 25 // Just tests creation/destruction. |
24 StatusTrayGtk tray; | 26 StatusTrayGtk tray; |
25 } | 27 } |
26 | 28 |
27 TEST(StatusTrayGtkTest, CreateIcon) { | 29 TEST(StatusTrayGtkTest, CreateIcon) { |
28 // Create an icon, set the images and tooltip, then shut it down. | 30 // Create an icon, set the images and tooltip, then shut it down. |
29 StatusTrayGtk tray; | 31 StatusTrayGtk tray; |
30 StatusIcon* icon = tray.CreateStatusIcon(); | 32 StatusIcon* icon = tray.CreateStatusIcon(); |
31 SkBitmap* bitmap = ui::ResourceBundle::GetSharedInstance().GetBitmapNamed( | 33 SkBitmap* bitmap = ui::ResourceBundle::GetSharedInstance().GetBitmapNamed( |
32 IDR_STATUS_TRAY_ICON); | 34 IDR_STATUS_TRAY_ICON); |
33 icon->SetImage(*bitmap); | 35 icon->SetImage(*bitmap); |
34 icon->SetPressedImage(*bitmap); | 36 icon->SetPressedImage(*bitmap); |
35 icon->SetToolTip(ASCIIToUTF16("tool tip")); | 37 icon->SetToolTip(ASCIIToUTF16("tool tip")); |
36 ui::SimpleMenuModel* menu = new ui::SimpleMenuModel(NULL); | 38 ui::SimpleMenuModel* menu = new ui::SimpleMenuModel(NULL); |
37 menu->AddItem(0, ASCIIToUTF16("foo")); | 39 menu->AddItem(0, ASCIIToUTF16("foo")); |
38 icon->SetContextMenu(menu); | 40 icon->SetContextMenu(menu); |
39 } | 41 } |
40 | 42 |
41 TEST(StatusTrayGtkTest, ClickOnIcon) { | 43 TEST(StatusTrayGtkTest, ClickOnIcon) { |
42 // Create an icon, send a fake click event, make sure observer is called. | 44 // Create an icon, send a fake click event, make sure observer is called. |
43 StatusTrayGtk tray; | 45 StatusTrayGtk tray; |
44 StatusIconGtk* icon = static_cast<StatusIconGtk*>(tray.CreateStatusIcon()); | 46 StatusIconGtk* icon = static_cast<StatusIconGtk*>(tray.CreateStatusIcon()); |
45 MockStatusIconObserver observer; | 47 MockStatusIconObserver observer; |
46 icon->AddObserver(&observer); | 48 icon->AddObserver(&observer); |
47 EXPECT_CALL(observer, OnClicked()); | 49 EXPECT_CALL(observer, OnStatusIconClicked()); |
48 // Mimic a click. | 50 // Mimic a click. |
49 icon->OnClick(NULL); | 51 icon->OnClick(NULL); |
50 icon->RemoveObserver(&observer); | 52 icon->RemoveObserver(&observer); |
51 } | 53 } |
52 | 54 |
53 } // namespace | 55 } // namespace |
OLD | NEW |