From 80819047ee0ed2f24d3973d8ef78acee1f7a0dd9 Mon Sep 17 00:00:00 2001 From: "viettrungluu@chromium.org" Date: Thu, 3 Dec 2009 01:44:00 +0000 Subject: Mac unit test: fix StatusBubbleMacTest.UpdateSizeAndPosition flakiness. The success/failure of this test depends on the location of the mouse. Other StatusBubbleMacTest.* tests may have the same issue too. BUG=none TEST=trybots and less flakiness Review URL: http://codereview.chromium.org/460029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33649 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/cocoa/status_bubble_mac_unittest.mm | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'chrome') diff --git a/chrome/browser/cocoa/status_bubble_mac_unittest.mm b/chrome/browser/cocoa/status_bubble_mac_unittest.mm index 0a5f59a..7c72a9c 100644 --- a/chrome/browser/cocoa/status_bubble_mac_unittest.mm +++ b/chrome/browser/cocoa/status_bubble_mac_unittest.mm @@ -44,6 +44,19 @@ } @end +// This class implements, for testing purposes, a subclass of |StatusBubbleMac| +// whose |MouseMoved()| method does nothing. (Ideally, we'd have a way of +// controlling the "mouse" location, but the current implementation of +// |StatusBubbleMac| uses |[NSEvent mouseLocation]| directly.) Without this, +// tests can be flaky since results may depend on the mouse location. +class StatusBubbleMacIgnoreMouseMoved : public StatusBubbleMac { + public: + StatusBubbleMacIgnoreMouseMoved(NSWindow* parent, id delegate) + : StatusBubbleMac(parent, delegate) {} + + virtual void MouseMoved(const gfx::Point& location, bool left_content) {} +}; + class StatusBubbleMacTest : public CocoaTest { public: virtual void SetUp() { @@ -52,7 +65,7 @@ class StatusBubbleMacTest : public CocoaTest { EXPECT_TRUE(window); delegate_.reset([[StatusBubbleMacTestDelegate alloc] init]); EXPECT_TRUE(delegate_.get()); - bubble_ = new StatusBubbleMac(window, delegate_); + bubble_ = new StatusBubbleMacIgnoreMouseMoved(window, delegate_); EXPECT_TRUE(bubble_); // Turn off delays and transitions for test mode. This doesn't just speed -- cgit v1.1