OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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/views/status_icons/status_tray_win.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/views/status_icons/status_icon_win.h" | 10 #include "chrome/browser/ui/views/status_icons/status_icon_win.h" |
8 #include "chrome/browser/ui/views/status_icons/status_tray_win.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 class SkBitmap; | 17 class SkBitmap; |
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(StatusTrayWinTest, CreateTray) { | 24 TEST(StatusTrayWinTest, CreateTray) { |
23 // Just tests creation/destruction. | 25 // Just tests creation/destruction. |
24 StatusTrayWin tray; | 26 StatusTrayWin tray; |
25 } | 27 } |
26 | 28 |
27 TEST(StatusTrayWinTest, CreateIconAndMenu) { | 29 TEST(StatusTrayWinTest, CreateIconAndMenu) { |
28 // Create an icon, set the images, tooltip, and context menu, then shut it | 30 // Create an icon, set the images, tooltip, and context menu, then shut it |
29 // down. | 31 // down. |
30 StatusTrayWin tray; | 32 StatusTrayWin tray; |
31 StatusIcon* icon = tray.CreateStatusIcon(); | 33 StatusIcon* icon = tray.CreateStatusIcon(); |
32 SkBitmap* bitmap = ui::ResourceBundle::GetSharedInstance().GetBitmapNamed( | 34 SkBitmap* bitmap = ui::ResourceBundle::GetSharedInstance().GetBitmapNamed( |
33 IDR_STATUS_TRAY_ICON); | 35 IDR_STATUS_TRAY_ICON); |
34 icon->SetImage(*bitmap); | 36 icon->SetImage(*bitmap); |
35 icon->SetPressedImage(*bitmap); | 37 icon->SetPressedImage(*bitmap); |
36 icon->SetToolTip(ASCIIToUTF16("tool tip")); | 38 icon->SetToolTip(ASCIIToUTF16("tool tip")); |
37 ui::SimpleMenuModel* menu = new ui::SimpleMenuModel(NULL); | 39 ui::SimpleMenuModel* menu = new ui::SimpleMenuModel(NULL); |
38 menu->AddItem(0, L"foo"); | 40 menu->AddItem(0, L"foo"); |
39 icon->SetContextMenu(menu); | 41 icon->SetContextMenu(menu); |
40 } | 42 } |
41 | 43 |
42 TEST(StatusTrayWinTest, ClickOnIcon) { | 44 TEST(StatusTrayWinTest, ClickOnIcon) { |
43 // Create an icon, send a fake click event, make sure observer is called. | 45 // Create an icon, send a fake click event, make sure observer is called. |
44 StatusTrayWin tray; | 46 StatusTrayWin tray; |
45 StatusIconWin* icon = static_cast<StatusIconWin*>(tray.CreateStatusIcon()); | 47 StatusIconWin* icon = static_cast<StatusIconWin*>(tray.CreateStatusIcon()); |
46 MockStatusIconObserver observer; | 48 MockStatusIconObserver observer; |
47 icon->AddObserver(&observer); | 49 icon->AddObserver(&observer); |
48 EXPECT_CALL(observer, OnClicked()); | 50 EXPECT_CALL(observer, OnStatusIconClicked()); |
49 // Mimic a click. | 51 // Mimic a click. |
50 tray.WndProc(NULL, icon->message_id(), icon->icon_id(), WM_LBUTTONDOWN); | 52 tray.WndProc(NULL, icon->message_id(), icon->icon_id(), WM_LBUTTONDOWN); |
51 // Mimic a right-click - observer should not be called. | 53 // Mimic a right-click - observer should not be called. |
52 tray.WndProc(NULL, icon->message_id(), icon->icon_id(), WM_RBUTTONDOWN); | 54 tray.WndProc(NULL, icon->message_id(), icon->icon_id(), WM_RBUTTONDOWN); |
53 icon->RemoveObserver(&observer); | 55 icon->RemoveObserver(&observer); |
54 } | 56 } |
OLD | NEW |