diff --git a/tests/UI_can.cpp b/tests/UI_can.cpp new file mode 100644 index 0000000..2288ba1 --- /dev/null +++ b/tests/UI_can.cpp @@ -0,0 +1,58 @@ +#include "Test.hpp" +#include + +TEST(UI_can, add_clear_message) +{ + UI_can can(Color::Default, Color::Default); + QByteArray array; + array.fill((char)0xAA, 8); + can.add_received_message(QCanBusFrame(123, array)); + array.fill((char)0xBB, 8); + can.add_send_message(QCanBusFrame(456, array)); + json j = can.to_json(0); + EXPECT_EQ(j.dump(), + "{\"bg_color\":\"#FF839192\",\"enabled\":true,\"fg_color\":\"#FF839192\",\"id\":0,\"rcvd_msgs\":[{" + "\"dlc\":8,\"id\":123,\"payload\":[170,170,170,170,170,170,170,170]}],\"send_msgs\":[{\"dlc\":8,\"id\":" + "456,\"payload\":[187,187,187,187,187,187,187,187]}],\"type\":\"ui_can\",\"visible\":true}"); + + can.clear_send_buffer(); + j = can.to_json(0); + EXPECT_EQ(j.dump(), "{\"bg_color\":\"#FF839192\",\"enabled\":true,\"fg_color\":\"#FF839192\",\"id\":0,\"rcvd_" + "msgs\":[{\"dlc\":8,\"id\":123,\"payload\":[170,170,170,170,170,170,170,170]}],\"send_msgs\":[]" + ",\"type\":\"ui_can\",\"visible\":true}"); + + can.clear_receive_buffer(); + j = can.to_json(0); + EXPECT_EQ(j.dump(), "{\"bg_color\":\"#FF839192\",\"enabled\":true,\"fg_color\":\"#FF839192\",\"id\":0,\"rcvd_" + "msgs\":[],\"send_msgs\":[],\"type\":\"ui_can\",\"visible\":true}"); + + array.fill((char)0xAA, 8); + can.add_received_message(QCanBusFrame(123, array)); + array.fill((char)0xBB, 8); + can.add_send_message(QCanBusFrame(456, array)); + j = can.to_json(0); + EXPECT_EQ(j.dump(), + "{\"bg_color\":\"#FF839192\",\"enabled\":true,\"fg_color\":\"#FF839192\",\"id\":0,\"rcvd_msgs\":[{" + "\"dlc\":8,\"id\":123,\"payload\":[170,170,170,170,170,170,170,170]}],\"send_msgs\":[{\"dlc\":8,\"id\":" + "456,\"payload\":[187,187,187,187,187,187,187,187]}],\"type\":\"ui_can\",\"visible\":true}"); + + can.clear(); + j = can.to_json(0); + EXPECT_EQ(j.dump(), "{\"bg_color\":\"#FF839192\",\"enabled\":true,\"fg_color\":\"#FF839192\",\"id\":0,\"rcvd_" + "msgs\":[],\"send_msgs\":[],\"type\":\"ui_can\",\"visible\":true}"); +} + +TEST(UI_can, signal) +{ + UI_can can(Color::Default, Color::Default); + QSignalSpy spy_ui(&can, &UI_can::ui_changed); + QSignalSpy spy_send(&can, &UI_can::send); + QByteArray array; + array.fill((char)0xAA, 8); + can.add_received_message(QCanBusFrame(123, array)); + array.fill((char)0xBB, 8); + can.add_send_message(QCanBusFrame(456, array)); + can.can_send(123, 3, {0xAA, 0xBB, 0xAA}); + EXPECT_EQ(spy_ui.count(), 2); + EXPECT_EQ(spy_send.count(), 1); +} diff --git a/tests/UI_stacked_widget.cpp b/tests/UI_stacked_widget.cpp new file mode 100644 index 0000000..66c225e --- /dev/null +++ b/tests/UI_stacked_widget.cpp @@ -0,0 +1,36 @@ +#include "Test.hpp" + +TEST(UI_stacked_widget, to_from_json) +{ + UI_stacked_widget stacked_widget(3, 0); + json j = stacked_widget.to_json(0); + UI_stacked_widget stacked_widget2; + stacked_widget2.from_json(j); + EXPECT_EQ(stacked_widget.selected(), stacked_widget2.selected()); +} + +TEST(UI_stacked_widget, set_selected) +{ + UI_stacked_widget stacked_widget(3, 0); + QSignalSpy spy_ui(&stacked_widget, &UI_stacked_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_stacked_widget, advance_tab) +{ + UI_stacked_widget stacked_widget(3, 0); + QSignalSpy spy_ui(&stacked_widget, &UI_stacked_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); +} diff --git a/tests/UI_status_bar.cpp b/tests/UI_status_bar.cpp new file mode 100644 index 0000000..0bed2db --- /dev/null +++ b/tests/UI_status_bar.cpp @@ -0,0 +1,22 @@ +#include "Test.hpp" + +TEST(UI_status_bar, to_from_json) +{ + UI_status_bar statusbar("message"); + json j = statusbar.to_json(0); + UI_status_bar statusbar2; + statusbar2.from_json(j); + EXPECT_EQ(statusbar.text(), statusbar2.text()); +} + +TEST(UI_status_bar, show_message) +{ + UI_status_bar statusbar("message"); + QSignalSpy spy_ui(&statusbar, &UI_status_bar::ui_changed); + EXPECT_EQ(statusbar.text(), "message"); + EXPECT_EQ(statusbar.timeout(), 0); + statusbar.show_message("random text", 3); + EXPECT_EQ(statusbar.text(), "random text"); + EXPECT_EQ(statusbar.timeout(), 3); + EXPECT_EQ(spy_ui.count(), 1); +} diff --git a/tests/UI_tab_widget.cpp b/tests/UI_tab_widget.cpp new file mode 100644 index 0000000..69ea6f9 --- /dev/null +++ b/tests/UI_tab_widget.cpp @@ -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); +}