mirror of
https://github.com/SFML/SFML.git
synced 2024-11-24 20:31:05 +08:00
Add tests for sf::Joystick
This commit is contained in:
parent
856a81f62b
commit
f40d5ac21d
@ -66,6 +66,7 @@ set(WINDOW_SRC
|
||||
Window/Cursor.test.cpp
|
||||
Window/Event.test.cpp
|
||||
Window/GlResource.test.cpp
|
||||
Window/Joystick.test.cpp
|
||||
Window/Keyboard.test.cpp
|
||||
Window/VideoMode.test.cpp
|
||||
Window/Window.test.cpp
|
||||
|
76
test/Window/Joystick.test.cpp
Normal file
76
test/Window/Joystick.test.cpp
Normal file
@ -0,0 +1,76 @@
|
||||
#include <SFML/Window/Joystick.hpp>
|
||||
|
||||
#include <catch2/catch_test_macros.hpp>
|
||||
#include <catch2/generators/catch_generators_range.hpp>
|
||||
|
||||
TEST_CASE("[Window] sf::Joystick")
|
||||
{
|
||||
SECTION("Constants")
|
||||
{
|
||||
STATIC_CHECK(sf::Joystick::Count == 8);
|
||||
STATIC_CHECK(sf::Joystick::ButtonCount == 32);
|
||||
STATIC_CHECK(sf::Joystick::AxisCount == 8);
|
||||
}
|
||||
|
||||
SECTION("Identification")
|
||||
{
|
||||
const sf::Joystick::Identification identification;
|
||||
CHECK(identification.name == "No Joystick");
|
||||
CHECK(identification.vendorId == 0);
|
||||
CHECK(identification.productId == 0);
|
||||
}
|
||||
|
||||
// By avoiding calling sf::Joystick::update() we can guarantee that
|
||||
// no joysticks will be detected. This is how we can ensure these
|
||||
// tests are portable and reliable.
|
||||
|
||||
const auto joystick = GENERATE(range(0u, sf::Joystick::Count - 1));
|
||||
|
||||
SECTION("isConnected()")
|
||||
{
|
||||
CHECK(!sf::Joystick::isConnected(joystick));
|
||||
}
|
||||
|
||||
SECTION("getButtonCount()")
|
||||
{
|
||||
CHECK(sf::Joystick::getButtonCount(joystick) == 0);
|
||||
}
|
||||
|
||||
SECTION("hasAxis()")
|
||||
{
|
||||
CHECK(!sf::Joystick::hasAxis(joystick, sf::Joystick::X));
|
||||
CHECK(!sf::Joystick::hasAxis(joystick, sf::Joystick::Y));
|
||||
CHECK(!sf::Joystick::hasAxis(joystick, sf::Joystick::Z));
|
||||
CHECK(!sf::Joystick::hasAxis(joystick, sf::Joystick::R));
|
||||
CHECK(!sf::Joystick::hasAxis(joystick, sf::Joystick::U));
|
||||
CHECK(!sf::Joystick::hasAxis(joystick, sf::Joystick::V));
|
||||
CHECK(!sf::Joystick::hasAxis(joystick, sf::Joystick::PovX));
|
||||
CHECK(!sf::Joystick::hasAxis(joystick, sf::Joystick::PovY));
|
||||
}
|
||||
|
||||
SECTION("isButtonPressed()")
|
||||
{
|
||||
const auto button = GENERATE(range(0u, sf::Joystick::ButtonCount - 1));
|
||||
CHECK(!sf::Joystick::isButtonPressed(joystick, button));
|
||||
}
|
||||
|
||||
SECTION("getAxisPosition")
|
||||
{
|
||||
CHECK(sf::Joystick::getAxisPosition(joystick, sf::Joystick::X) == 0);
|
||||
CHECK(sf::Joystick::getAxisPosition(joystick, sf::Joystick::Y) == 0);
|
||||
CHECK(sf::Joystick::getAxisPosition(joystick, sf::Joystick::Z) == 0);
|
||||
CHECK(sf::Joystick::getAxisPosition(joystick, sf::Joystick::R) == 0);
|
||||
CHECK(sf::Joystick::getAxisPosition(joystick, sf::Joystick::U) == 0);
|
||||
CHECK(sf::Joystick::getAxisPosition(joystick, sf::Joystick::V) == 0);
|
||||
CHECK(sf::Joystick::getAxisPosition(joystick, sf::Joystick::PovX) == 0);
|
||||
CHECK(sf::Joystick::getAxisPosition(joystick, sf::Joystick::PovY) == 0);
|
||||
}
|
||||
|
||||
SECTION("getIdentification()")
|
||||
{
|
||||
const auto identification = sf::Joystick::getIdentification(joystick);
|
||||
CHECK(identification.name == "No Joystick");
|
||||
CHECK(identification.vendorId == 0);
|
||||
CHECK(identification.productId == 0);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user