From d7655f3e08ef9f4daca09c25f8a5b73a78ce3cea Mon Sep 17 00:00:00 2001 From: Sander Speetjens Date: Sat, 18 Oct 2025 10:56:57 +0200 Subject: [PATCH] Adds UI spinbox tests Adds tests for UI spinbox widgets, including JSON serialization/deserialization and signal emission verification. --- tests/UI_double_spinbox.cpp | 22 ++++++++++++++++++++++ tests/UI_hex_spinbox.cpp | 22 ++++++++++++++++++++++ tests/UI_spinbox.cpp | 22 ++++++++++++++++++++++ 3 files changed, 66 insertions(+) create mode 100644 tests/UI_double_spinbox.cpp create mode 100644 tests/UI_hex_spinbox.cpp create mode 100644 tests/UI_spinbox.cpp diff --git a/tests/UI_double_spinbox.cpp b/tests/UI_double_spinbox.cpp new file mode 100644 index 0000000..6ec223e --- /dev/null +++ b/tests/UI_double_spinbox.cpp @@ -0,0 +1,22 @@ +#include "Test.hpp" + +TEST(UI_double_spinbox, to_from_json) +{ + UI_double_spinbox spinbox(0, 10, 5); + json j = spinbox.to_json(0); + UI_double_spinbox spinbox2; + spinbox2.from_json(j); + EXPECT_EQ(spinbox.value(), spinbox2.value()); + EXPECT_EQ(spinbox.min(), spinbox2.min()); + EXPECT_EQ(spinbox.max(), spinbox2.max()); +} + +TEST(UI_double_spinbox, signal) +{ + UI_double_spinbox spinbox(0, 10, 5); + QSignalSpy spy_ui(&spinbox, &UI_double_spinbox::ui_changed); + QSignalSpy spy_val(&spinbox, &UI_double_spinbox::changed); + spinbox.set_value(2); + EXPECT_EQ(spy_ui.count(), 1); + EXPECT_EQ(spy_val.count(), 1); +} diff --git a/tests/UI_hex_spinbox.cpp b/tests/UI_hex_spinbox.cpp new file mode 100644 index 0000000..6f3e772 --- /dev/null +++ b/tests/UI_hex_spinbox.cpp @@ -0,0 +1,22 @@ +#include "Test.hpp" + +TEST(UI_hex_spinbox, to_from_json) +{ + UI_hex_spinbox spinbox(0, 10, 5); + json j = spinbox.to_json(0); + UI_hex_spinbox spinbox2; + spinbox2.from_json(j); + EXPECT_EQ(spinbox.value(), spinbox2.value()); + EXPECT_EQ(spinbox.min(), spinbox2.min()); + EXPECT_EQ(spinbox.max(), spinbox2.max()); +} + +TEST(UI_hex_spinbox, signal) +{ + UI_hex_spinbox spinbox(0, 10, 5); + QSignalSpy spy_ui(&spinbox, &UI_hex_spinbox::ui_changed); + QSignalSpy spy_val(&spinbox, &UI_hex_spinbox::changed); + spinbox.set_value(2); + EXPECT_EQ(spy_ui.count(), 1); + EXPECT_EQ(spy_val.count(), 1); +} diff --git a/tests/UI_spinbox.cpp b/tests/UI_spinbox.cpp new file mode 100644 index 0000000..61e64e3 --- /dev/null +++ b/tests/UI_spinbox.cpp @@ -0,0 +1,22 @@ +#include "Test.hpp" + +TEST(UI_spinbox, to_from_json) +{ + UI_spinbox spinbox(0, 10, 5); + json j = spinbox.to_json(0); + UI_spinbox spinbox2; + spinbox2.from_json(j); + EXPECT_EQ(spinbox.value(), spinbox2.value()); + EXPECT_EQ(spinbox.min(), spinbox2.min()); + EXPECT_EQ(spinbox.max(), spinbox2.max()); +} + +TEST(UI_spinbox, signal) +{ + UI_spinbox spinbox(0, 10, 5); + QSignalSpy spy_ui(&spinbox, &UI_spinbox::ui_changed); + QSignalSpy spy_val(&spinbox, &UI_spinbox::changed); + spinbox.set_value(2); + EXPECT_EQ(spy_ui.count(), 1); + EXPECT_EQ(spy_val.count(), 1); +}