Added a test for button

This commit is contained in:
Clement Roblot 2023-10-24 14:27:51 +07:00 committed by ArthurSonzogni
parent 8ee2f12ef9
commit 785bada114
No known key found for this signature in database
GPG Key ID: 41D98248C074CD6C

View File

@ -96,6 +96,41 @@ TEST(ButtonTest, Basic) {
(void)container->Render();
}
TEST(ButtonTest, DragClick) {
int press_count = 0;
auto btn = Button("btn", [&] {
press_count++;
});
auto container = Container::Horizontal(
{
btn,
});
(void)container->Render();
Event leftMousePress = Event::Mouse("", {Mouse::Button::Left, Mouse::Motion::Pressed});
Event leftMouseRelease = Event::Mouse("", {Mouse::Button::Left, Mouse::Motion::Released});
EXPECT_EQ(press_count, 0);
btn->OnEvent(leftMousePress);
EXPECT_EQ(press_count, 1);
// Simulate a drag of the mouse triggering
// multiple press without any Released event
btn->OnEvent(leftMousePress);
btn->OnEvent(leftMousePress);
btn->OnEvent(leftMousePress);
EXPECT_EQ(press_count, 1);
btn->OnEvent(leftMouseRelease);
btn->OnEvent(leftMousePress);
EXPECT_EQ(press_count, 2);
}
TEST(ButtonTest, Animation) {
Terminal::SetColorSupport(Terminal::Color::TrueColor);
int press_count = 0;