From d971aada83480694e1fde8c5ad39f5c660086a54 Mon Sep 17 00:00:00 2001 From: Chris Thrasher Date: Sun, 8 Sep 2024 09:16:53 -0600 Subject: [PATCH] Add more tests for the Window module --- test/CMakeLists.txt | 6 +++++- test/Window/Joystick.test.cpp | 14 ++++++++++++++ test/Window/Keyboard.test.cpp | 29 +++++++++++++++++++++++++++++ test/Window/Mouse.test.cpp | 24 ++++++++++++++++++++++++ test/Window/Sensor.test.cpp | 19 +++++++++++++++++++ test/Window/WindowBase.test.cpp | 23 +++++++++++++++++++++++ 6 files changed, 114 insertions(+), 1 deletion(-) create mode 100644 test/Window/Keyboard.test.cpp create mode 100644 test/Window/Mouse.test.cpp create mode 100644 test/Window/Sensor.test.cpp create mode 100644 test/Window/WindowBase.test.cpp diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index adfd804..8b67ec5 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -34,8 +34,12 @@ catch_discover_tests(test-csfml-system) add_executable(test-csfml-window Window/Joystick.test.cpp + Window/Keyboard.test.cpp + Window/Mouse.test.cpp + Window/Sensor.test.cpp + Window/WindowBase.test.cpp ) -target_link_libraries(test-csfml-window PRIVATE csfml-window Catch2::Catch2WithMain) +target_link_libraries(test-csfml-window PRIVATE csfml-window Catch2::Catch2WithMain SFML::Window) set_target_warnings(test-csfml-window) catch_discover_tests(test-csfml-window) diff --git a/test/Window/Joystick.test.cpp b/test/Window/Joystick.test.cpp index 804924b..646159a 100644 --- a/test/Window/Joystick.test.cpp +++ b/test/Window/Joystick.test.cpp @@ -1,5 +1,7 @@ #include +#include + #include #include @@ -12,6 +14,18 @@ TEST_CASE("[Window] sfJoystick") STATIC_CHECK(sfJoystickAxisCount == 8); } + SECTION("sfJoystickAxis") + { + STATIC_CHECK(sfJoystickX == static_cast(sf::Joystick::Axis::X)); + STATIC_CHECK(sfJoystickY == static_cast(sf::Joystick::Axis::Y)); + STATIC_CHECK(sfJoystickZ == static_cast(sf::Joystick::Axis::Z)); + STATIC_CHECK(sfJoystickR == static_cast(sf::Joystick::Axis::R)); + STATIC_CHECK(sfJoystickU == static_cast(sf::Joystick::Axis::U)); + STATIC_CHECK(sfJoystickV == static_cast(sf::Joystick::Axis::V)); + STATIC_CHECK(sfJoystickPovX == static_cast(sf::Joystick::Axis::PovX)); + STATIC_CHECK(sfJoystickPovY == static_cast(sf::Joystick::Axis::PovY)); + } + // By avoiding calling sfJoystick_update() we can guarantee that // no joysticks will be detected. This is how we can ensure these // tests are portable and reliable. diff --git a/test/Window/Keyboard.test.cpp b/test/Window/Keyboard.test.cpp new file mode 100644 index 0000000..812520e --- /dev/null +++ b/test/Window/Keyboard.test.cpp @@ -0,0 +1,29 @@ +#include + +#include + +#include + +TEST_CASE("[Window] sfKeyboard") +{ + SECTION("sfKeyCode") + { + STATIC_CHECK(sfKeyUnknown == static_cast(sf::Keyboard::Key::Unknown)); + STATIC_CHECK(sfKeyA == static_cast(sf::Keyboard::Key::A)); + STATIC_CHECK(sfKeyB == static_cast(sf::Keyboard::Key::B)); + STATIC_CHECK(sfKeyC == static_cast(sf::Keyboard::Key::C)); + STATIC_CHECK(sfKeyD == static_cast(sf::Keyboard::Key::D)); + STATIC_CHECK(sfKeyPause == static_cast(sf::Keyboard::Key::Pause)); + STATIC_CHECK(sfKeyCount == sf::Keyboard::KeyCount); + } + + SECTION("sfScancode") + { + STATIC_CHECK(sfScanUnknown == static_cast(sf::Keyboard::Scan::Unknown)); + STATIC_CHECK(sfScanA == static_cast(sf::Keyboard::Scan::A)); + STATIC_CHECK(sfScanB == static_cast(sf::Keyboard::Scan::B)); + STATIC_CHECK(sfScanC == static_cast(sf::Keyboard::Scan::C)); + STATIC_CHECK(sfScanD == static_cast(sf::Keyboard::Scan::D)); + STATIC_CHECK(sfScancodeCount == sf::Keyboard::ScancodeCount); + } +} diff --git a/test/Window/Mouse.test.cpp b/test/Window/Mouse.test.cpp new file mode 100644 index 0000000..1bfd041 --- /dev/null +++ b/test/Window/Mouse.test.cpp @@ -0,0 +1,24 @@ +#include + +#include + +#include + +TEST_CASE("[Window] sfMouse") +{ + SECTION("sfMouseButton") + { + STATIC_CHECK(sfMouseLeft == static_cast(sf::Mouse::Button::Left)); + STATIC_CHECK(sfMouseRight == static_cast(sf::Mouse::Button::Right)); + STATIC_CHECK(sfMouseMiddle == static_cast(sf::Mouse::Button::Middle)); + STATIC_CHECK(sfMouseXButton1 == static_cast(sf::Mouse::Button::Extra1)); + STATIC_CHECK(sfMouseXButton2 == static_cast(sf::Mouse::Button::Extra2)); + STATIC_CHECK(sfMouseButtonCount == sf::Mouse::ButtonCount); + } + + SECTION("sfMouseWheel") + { + STATIC_CHECK(sfMouseHorizontalWheel == static_cast(sf::Mouse::Wheel::Horizontal)); + STATIC_CHECK(sfMouseVerticalWheel == static_cast(sf::Mouse::Wheel::Vertical)); + } +} diff --git a/test/Window/Sensor.test.cpp b/test/Window/Sensor.test.cpp new file mode 100644 index 0000000..bbce5e3 --- /dev/null +++ b/test/Window/Sensor.test.cpp @@ -0,0 +1,19 @@ +#include + +#include + +#include + +TEST_CASE("[Window] sfSensor") +{ + SECTION("sfSensorType") + { + STATIC_CHECK(sfSensorAccelerometer == static_cast(sf::Sensor::Type::Accelerometer)); + STATIC_CHECK(sfSensorGyroscope == static_cast(sf::Sensor::Type::Gyroscope)); + STATIC_CHECK(sfSensorMagnetometer == static_cast(sf::Sensor::Type::Magnetometer)); + STATIC_CHECK(sfSensorGravity == static_cast(sf::Sensor::Type::Gravity)); + STATIC_CHECK(sfSensorUserAcceleration == static_cast(sf::Sensor::Type::UserAcceleration)); + STATIC_CHECK(sfSensorOrientation == static_cast(sf::Sensor::Type::Orientation)); + STATIC_CHECK(sfSensorCount == sf::Sensor::Count); + } +} diff --git a/test/Window/WindowBase.test.cpp b/test/Window/WindowBase.test.cpp new file mode 100644 index 0000000..36bad78 --- /dev/null +++ b/test/Window/WindowBase.test.cpp @@ -0,0 +1,23 @@ +#include + +#include + +#include + +TEST_CASE("[Window] sfWindowBase") +{ + SECTION("sfWindowStyle") + { + STATIC_CHECK(sfNone == static_cast(sf::Style::None)); + STATIC_CHECK(sfTitlebar == static_cast(sf::Style::Titlebar)); + STATIC_CHECK(sfResize == static_cast(sf::Style::Resize)); + STATIC_CHECK(sfClose == static_cast(sf::Style::Close)); + STATIC_CHECK(sfDefaultStyle == static_cast(sf::Style::Default)); + } + + SECTION("sfWindowState") + { + STATIC_CHECK(sfWindowed == static_cast(sf::State::Windowed)); + STATIC_CHECK(sfFullscreen == static_cast(sf::State::Fullscreen)); + } +}