Index: chrome/browser/ui/views/status_icons/status_tray_win_unittest.cc |
diff --git a/chrome/browser/ui/views/status_icons/status_tray_win_unittest.cc b/chrome/browser/ui/views/status_icons/status_tray_win_unittest.cc |
index 7ff83094e65025554f9424cd6fb099b77b204480..8e03506f668d2629c105da718c32ddf68cd039c8 100644 |
--- a/chrome/browser/ui/views/status_icons/status_tray_win_unittest.cc |
+++ b/chrome/browser/ui/views/status_icons/status_tray_win_unittest.cc |
@@ -9,16 +9,32 @@ |
#include "chrome/browser/status_icons/status_icon_observer.h" |
#include "chrome/browser/ui/views/status_icons/status_icon_win.h" |
#include "grit/chrome_unscaled_resources.h" |
-#include "testing/gmock/include/gmock/gmock.h" |
#include "testing/gtest/include/gtest/gtest.h" |
#include "ui/base/models/simple_menu_model.h" |
#include "ui/base/resource/resource_bundle.h" |
-class SkBitmap; |
+namespace { |
+// This message is TB_INDETERMINATE, fired when the balloon is clicked. |
+const UINT kBalloonClickedMessage = WM_USER + 5; |
+} // namespace |
-class MockStatusIconObserver : public StatusIconObserver { |
+class FakeStatusIconObserver : public StatusIconObserver { |
public: |
- MOCK_METHOD0(OnStatusIconClicked, void()); |
+ FakeStatusIconObserver() |
+ : balloon_clicked_(false), |
+ status_icon_click_count_(0) {} |
+ virtual void OnStatusIconClicked() { |
+ ++status_icon_click_count_; |
+ } |
+ virtual void OnBalloonClicked() { balloon_clicked_ = true; } |
+ bool balloon_clicked() const { return balloon_clicked_; } |
+ size_t status_icon_click_count() const { |
+ return status_icon_click_count_; |
+ } |
+ |
+ private: |
+ size_t status_icon_click_count_; |
+ bool balloon_clicked_; |
}; |
TEST(StatusTrayWinTest, CreateTray) { |
@@ -46,13 +62,26 @@ TEST(StatusTrayWinTest, ClickOnIcon) { |
// Create an icon, send a fake click event, make sure observer is called. |
StatusTrayWin tray; |
StatusIconWin* icon = static_cast<StatusIconWin*>(tray.CreateStatusIcon()); |
- MockStatusIconObserver observer; |
+ FakeStatusIconObserver observer; |
icon->AddObserver(&observer); |
- EXPECT_CALL(observer, OnStatusIconClicked()); |
// Mimic a click. |
tray.WndProc(NULL, icon->message_id(), icon->icon_id(), WM_LBUTTONDOWN); |
// Mimic a right-click - observer should not be called. |
tray.WndProc(NULL, icon->message_id(), icon->icon_id(), WM_RBUTTONDOWN); |
+ EXPECT_EQ(1, observer.status_icon_click_count()); |
+ icon->RemoveObserver(&observer); |
+} |
+ |
+TEST(StatusTrayWinTest, ClickOnBalloon) { |
+ // Create an icon, send a fake click event, make sure observer is called. |
+ StatusTrayWin tray; |
+ StatusIconWin* icon = static_cast<StatusIconWin*>(tray.CreateStatusIcon()); |
+ FakeStatusIconObserver observer; |
+ icon->AddObserver(&observer); |
+ // Mimic a click. |
+ tray.WndProc( |
+ NULL, icon->message_id(), icon->icon_id(), kBalloonClickedMessage); |
+ EXPECT_TRUE(observer.balloon_clicked()); |
icon->RemoveObserver(&observer); |
} |
#endif // !defined(USE_AURA) |