diff options
| author | Andrea Azzarone <azzaronea@gmail.com> | 2013-03-15 16:25:29 +0100 |
|---|---|---|
| committer | Andrea Azzarone <azzaronea@gmail.com> | 2013-03-15 16:25:29 +0100 |
| commit | 884ef70b78957c5d4d4c405bcdfc669754f2204c (patch) | |
| tree | 5b62a6526bed96edb4bc05892edac06467a3d85a /tests | |
| parent | 353e2373dde05519b31151a49a91be615ec0dac4 (diff) | |
Add more unit test for TooltipManager. Don't reset time on every mouse move.
(bzr r3215.1.4)
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test_tooltip_manager.cpp | 79 |
1 files changed, 59 insertions, 20 deletions
diff --git a/tests/test_tooltip_manager.cpp b/tests/test_tooltip_manager.cpp index c7f2583ed..5badb4edf 100644 --- a/tests/test_tooltip_manager.cpp +++ b/tests/test_tooltip_manager.cpp @@ -15,40 +15,79 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. * * Authored by: Jacob Edwards <j.johan.edwards@gmail.com> + * Andrea Azzarone <andrea.azzarone@gmail.com> */ -#include <gtest/gtest.h> +#include <gmock/gmock.h> using namespace testing; #include "launcher/TooltipManager.h" #include "launcher/MockLauncherIcon.h" +using unity::launcher::MockLauncherIcon; +using unity::launcher::TooltipManager; + #include "test_utils.h" -namespace unity -{ -namespace launcher +namespace { -namespace +bool CheckIsTooltipVisible(nux::ObjectPtr<MockLauncherIcon> const& icon, bool value) { + return icon->IsTooltipVisible() == value; +} + +struct TestTooltipManager : public Test { + TooltipManager tooltip_manager; +}; + +TEST_F(TestTooltipManager, MouseMoved) { + nux::ObjectPtr<MockLauncherIcon> icon1(new MockLauncherIcon()); + nux::ObjectPtr<MockLauncherIcon> icon2(new MockLauncherIcon()); + + tooltip_manager.MouseMoved(icon1); + ASSERT_FALSE(icon1->IsTooltipVisible()); // don't skip the timeout! + Utils::WaitUntil(std::bind(CheckIsTooltipVisible, icon1, true)); + Utils::WaitUntil(std::bind(CheckIsTooltipVisible, icon2, false)); + + tooltip_manager.MouseMoved(icon2); + ASSERT_FALSE(icon1->IsTooltipVisible()); + ASSERT_TRUE(icon2->IsTooltipVisible()); + + tooltip_manager.MouseMoved(nux::ObjectPtr<MockLauncherIcon>()); + ASSERT_FALSE(icon1->IsTooltipVisible()); + ASSERT_FALSE(icon2->IsTooltipVisible()); -TEST(TestTooltipManager, TestHideAndShowTooltip) + tooltip_manager.MouseMoved(icon1); + ASSERT_TRUE(icon1->IsTooltipVisible()); + ASSERT_FALSE(icon2->IsTooltipVisible()); +} + +TEST_F(TestTooltipManager, IconClicked) { - // Makes sure that TooltipManager calls icon->ShowTooltip() when the mouse - // hovers it, and icon->HideTooltip() after the mouse dehovers it. - TooltipManager tm; - MockLauncherIcon* icon = new MockLauncherIcon(); - - tm.SetIcon(AbstractLauncherIcon::Ptr(icon)); - tm.MouseMoved(); - Utils::WaitForTimeoutMSec(1050); - - EXPECT_TRUE(icon->IsTooltipVisible()); - tm.SetIcon(AbstractLauncherIcon::Ptr()); - EXPECT_FALSE(icon->IsTooltipVisible()); + nux::ObjectPtr<MockLauncherIcon> icon(new MockLauncherIcon()); + + tooltip_manager.MouseMoved(icon); + ASSERT_FALSE(icon->IsTooltipVisible()); // don't skip the timeout! + Utils::WaitUntil(std::bind(CheckIsTooltipVisible, icon, true)); + + tooltip_manager.IconClicked(); + ASSERT_FALSE(icon->IsTooltipVisible()); } +TEST_F(TestTooltipManager, SetHover) +{ + nux::ObjectPtr<MockLauncherIcon> icon(new MockLauncherIcon()); + + tooltip_manager.MouseMoved(icon); + ASSERT_FALSE(icon->IsTooltipVisible()); // don't skip the timeout! + Utils::WaitUntil(std::bind(CheckIsTooltipVisible, icon, true)); + + tooltip_manager.SetHover(false); + ASSERT_FALSE(icon->IsTooltipVisible()); + + tooltip_manager.MouseMoved(icon); + ASSERT_FALSE(icon->IsTooltipVisible()); // don't skip the timeout! + Utils::WaitUntil(std::bind(CheckIsTooltipVisible, icon, true)); } -} // launcher -} // unity +} |
