From d47510f58f44d8bd2149199ec036851519ccacfb Mon Sep 17 00:00:00 2001 From: Sander Speetjens Date: Tue, 27 Aug 2024 15:19:49 +0200 Subject: [PATCH] Test Add extra ui tests --- src/UI/UI.hpp | 1 + tests/UI_checkbox.cpp | 13 +++++++++++++ tests/UI_combobox.cpp | 13 +++++++++++++ tests/UI_dial.cpp | 20 ++++++++++++++++++++ tests/UI_led.cpp | 20 ++++++++++++++++++++ tests/UI_textbox.cpp | 21 +++++++++++++++++++++ tests/UI_thermo.cpp | 20 ++++++++++++++++++++ 7 files changed, 108 insertions(+) create mode 100644 tests/UI_checkbox.cpp create mode 100644 tests/UI_combobox.cpp create mode 100644 tests/UI_dial.cpp create mode 100644 tests/UI_led.cpp create mode 100644 tests/UI_textbox.cpp create mode 100644 tests/UI_thermo.cpp diff --git a/src/UI/UI.hpp b/src/UI/UI.hpp index 84e0ab4..a2dff43 100644 --- a/src/UI/UI.hpp +++ b/src/UI/UI.hpp @@ -7,4 +7,5 @@ #include "UI_label.hpp" #include "UI_led.hpp" #include "UI_slider.hpp" +#include "UI_textbox.hpp" #include "UI_thermo.hpp" \ No newline at end of file diff --git a/tests/UI_checkbox.cpp b/tests/UI_checkbox.cpp new file mode 100644 index 0000000..4ae8f9f --- /dev/null +++ b/tests/UI_checkbox.cpp @@ -0,0 +1,13 @@ +#include "Test.hpp" + +TEST(UI_checkbox, to_from_json) +{ + UI_checkbox checkbox("checkbox_id", "checkbox_text", Color(255, 255, 255), Color(0, 0, 0), {"option1", "option2"}); + json j = checkbox.to_json(); + UI_checkbox checkbox2(j); + EXPECT_EQ(checkbox.id(), checkbox2.id()); + EXPECT_EQ(checkbox.text(), checkbox2.text()); + EXPECT_EQ(checkbox.fg_color(), checkbox2.fg_color()); + EXPECT_EQ(checkbox.bg_color(), checkbox2.bg_color()); + EXPECT_EQ(checkbox.selected(), checkbox2.selected()); +} \ No newline at end of file diff --git a/tests/UI_combobox.cpp b/tests/UI_combobox.cpp new file mode 100644 index 0000000..157ae9f --- /dev/null +++ b/tests/UI_combobox.cpp @@ -0,0 +1,13 @@ +#include "Test.hpp" + +TEST(UI_combobox, to_from_json) +{ + UI_combobox checkbox("checkbox_id", "checkbox_text", Color(255, 255, 255), Color(0, 0, 0), {"option1", "option2"}); + json j = checkbox.to_json(); + UI_combobox checkbox2(j); + EXPECT_EQ(checkbox.id(), checkbox2.id()); + EXPECT_EQ(checkbox.text(), checkbox2.text()); + EXPECT_EQ(checkbox.fg_color(), checkbox2.fg_color()); + EXPECT_EQ(checkbox.bg_color(), checkbox2.bg_color()); + EXPECT_EQ(checkbox.selected(), checkbox2.selected()); +} \ No newline at end of file diff --git a/tests/UI_dial.cpp b/tests/UI_dial.cpp new file mode 100644 index 0000000..bc21f96 --- /dev/null +++ b/tests/UI_dial.cpp @@ -0,0 +1,20 @@ +#include "Test.hpp" + +TEST(UI_dial, to_from_json) +{ + UI_dial dial("slider_id", "slider_text", Color(255, 255, 255), Color(0, 0, 0), 0, 100, 50); + json j = dial.to_json(); + UI_dial dial2(j); + EXPECT_EQ(dial.id(), dial2.id()); + EXPECT_EQ(dial.text(), dial2.text()); + EXPECT_EQ(dial.fg_color(), dial2.fg_color()); + EXPECT_EQ(dial.bg_color(), dial2.bg_color()); + EXPECT_EQ(dial.value(), dial2.value()); +} + +TEST(UI_dial, set_value) +{ + UI_dial dial("slider_id", "slider_text", Color(255, 255, 255), Color(0, 0, 0), 0, 100, 50); + dial.set_value(75); + EXPECT_EQ(dial.value(), 75); +} diff --git a/tests/UI_led.cpp b/tests/UI_led.cpp new file mode 100644 index 0000000..3fabab0 --- /dev/null +++ b/tests/UI_led.cpp @@ -0,0 +1,20 @@ +#include "Test.hpp" + +TEST(UI_led, to_from_json) +{ + UI_led led(std::string("led"), std::string("led_text"), Color(0, 0, 0), Color(255, 255, 255), Color(255, 0, 0)); + json j = led.to_json(); + UI_led led2(j); + EXPECT_EQ(led.id(), led2.id()); + EXPECT_EQ(led.text(), led2.text()); + EXPECT_EQ(led.fg_color(), led2.fg_color()); + EXPECT_EQ(led.bg_color(), led2.bg_color()); + EXPECT_EQ(led.led_color(), led2.led_color()); +} + +TEST(UI_led, set_led_color) +{ + UI_led led(std::string("led"), std::string("led_text"), Color(0, 0, 0), Color(255, 255, 255), Color(255, 0, 0)); + led.set_led_color(Color(0, 255, 0)); + EXPECT_EQ(led.led_color(), Color(0, 255, 0)); +} \ No newline at end of file diff --git a/tests/UI_textbox.cpp b/tests/UI_textbox.cpp new file mode 100644 index 0000000..955011a --- /dev/null +++ b/tests/UI_textbox.cpp @@ -0,0 +1,21 @@ +#include "Test.hpp" + +TEST(UI_textbox, to_from_json) +{ + UI_textbox textbox(std::string("textbox"), std::string("hint"), Color(0, 0, 0), Color(255, 255, 255)); + json j = textbox.to_json(); + UI_textbox textbox2(j); + EXPECT_EQ(textbox.id(), textbox2.id()); + EXPECT_EQ(textbox.text(), textbox2.text()); + EXPECT_EQ(textbox.fg_color(), textbox2.fg_color()); + EXPECT_EQ(textbox.bg_color(), textbox2.bg_color()); + EXPECT_EQ(textbox.text(), textbox2.text()); +} + +TEST(UI_textbox, set_text) +{ + UI_textbox textbox(std::string("textbox"), std::string("hint"), Color(0, 0, 0), Color(255, 255, 255)); + EXPECT_EQ(textbox.text(), ""); + textbox.set_text("random text"); + EXPECT_EQ(textbox.text(), "random text"); +} \ No newline at end of file diff --git a/tests/UI_thermo.cpp b/tests/UI_thermo.cpp new file mode 100644 index 0000000..370d103 --- /dev/null +++ b/tests/UI_thermo.cpp @@ -0,0 +1,20 @@ +#include "Test.hpp" + +TEST(UI_thermo, to_from_json) +{ + UI_thermo thermo("thermo_id", "thermo_text", Color(255, 255, 255), Color(0, 0, 0), 0, 100, 50); + json j = thermo.to_json(); + UI_thermo thermo2(j); + EXPECT_EQ(thermo.id(), thermo2.id()); + EXPECT_EQ(thermo.text(), thermo2.text()); + EXPECT_EQ(thermo.fg_color(), thermo2.fg_color()); + EXPECT_EQ(thermo.bg_color(), thermo2.bg_color()); + EXPECT_EQ(thermo.value(), thermo2.value()); +} + +TEST(UI_thermo, set_value) +{ + UI_thermo thermo("thermo_id", "thermo_text", Color(255, 255, 255), Color(0, 0, 0), 0, 100, 50); + thermo.set_value(75); + EXPECT_EQ(thermo.value(), 75); +}