Adds UI widget tests

Adds unit tests for UI components.
UI_can, UI_stacked_widget, UI_status_bar and UI_tab_widget
This commit is contained in:
2026-02-14 14:32:21 +01:00
parent 76b00b6108
commit f9c9636f95
4 changed files with 186 additions and 0 deletions
+70
View File
@@ -0,0 +1,70 @@
#include "Test.hpp"
TEST(UI_tab_widget, to_from_json)
{
UI_tab_widget stacked_widget({"Tab 0", "Tab 1", "Tab 2"}, 0);
json j = stacked_widget.to_json(0);
UI_tab_widget stacked_widget2;
stacked_widget2.from_json(j);
EXPECT_EQ(stacked_widget.selected(), stacked_widget2.selected());
}
TEST(UI_tab_widget, set_selected)
{
UI_tab_widget stacked_widget({"Tab 0", "Tab 1", "Tab 2"}, 0);
QSignalSpy spy_ui(&stacked_widget, &UI_tab_widget::ui_changed);
EXPECT_EQ(stacked_widget.selected(), 0);
stacked_widget.set_selected(1);
EXPECT_EQ(stacked_widget.selected(), 1);
stacked_widget.set_selected(3);
EXPECT_EQ(stacked_widget.selected(), 1);
EXPECT_EQ(spy_ui.count(), 1);
}
TEST(UI_tab_widget, advance_tab)
{
UI_tab_widget stacked_widget({"Tab 0", "Tab 1", "Tab 2"}, 0);
QSignalSpy spy_ui(&stacked_widget, &UI_tab_widget::ui_changed);
EXPECT_EQ(stacked_widget.selected(), 0);
stacked_widget.advance_tab();
EXPECT_EQ(stacked_widget.selected(), 1);
stacked_widget.advance_tab();
EXPECT_EQ(stacked_widget.selected(), 2);
stacked_widget.advance_tab();
EXPECT_EQ(stacked_widget.selected(), 0);
EXPECT_EQ(spy_ui.count(), 3);
}
TEST(UI_tab_widget, set_tab_name)
{
UI_tab_widget stacked_widget({"Tab 0", "Tab 1", "Tab 2"}, 0);
QSignalSpy spy_ui(&stacked_widget, &UI_tab_widget::ui_changed);
EXPECT_EQ(stacked_widget.tab_name(1), "Tab 1");
stacked_widget.set_tab_name(1, "New Tab 1");
EXPECT_EQ(stacked_widget.tab_name(1), "New Tab 1");
stacked_widget.set_tab_name(3, "Invalid Tab");
EXPECT_EQ(stacked_widget.tab_name(3), "");
EXPECT_EQ(spy_ui.count(), 1);
}
TEST(UI_tab_widget, set_visible)
{
UI_tab_widget stacked_widget({"Tab 0", "Tab 1", "Tab 2"}, 0);
QSignalSpy spy_ui(&stacked_widget, &UI_tab_widget::ui_changed);
EXPECT_EQ(stacked_widget.visible(1), true);
stacked_widget.set_visible(1, false);
EXPECT_EQ(stacked_widget.visible(1), false);
stacked_widget.set_visible(3, true);
EXPECT_EQ(stacked_widget.visible(3), false);
EXPECT_EQ(spy_ui.count(), 1);
}
TEST(UI_tab_widget, signal)
{
UI_tab_widget stacked_widget({"Tab 0", "Tab 1", "Tab 2"}, 0);
QSignalSpy spy_ui(&stacked_widget, &UI_tab_widget::ui_changed);
QSignalSpy spy_changed(&stacked_widget, &UI_tab_widget::changed);
stacked_widget.set_selected(1);
EXPECT_EQ(spy_ui.count(), 1);
EXPECT_EQ(spy_changed.count(), 1);
}