mirror of
https://github.com/ArthurSonzogni/FTXUI.git
synced 2025-07-17 16:41:12 +08:00
Added a test for button
This commit is contained in:
parent
8ee2f12ef9
commit
785bada114
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user