1
0
mirror of https://github.com/rwengine/openrw.git synced 2024-09-02 16:49:46 +02:00
openrw/tests/test_Menu.cpp
Anonymous Maarten 9e8a96ab7e tests: execute each test separately by CTest
Disabled by default because empty test suites fail and would cause
Travis to fail.
There can be empty test suites when testing with no data.
2017-10-29 20:40:57 +00:00

89 lines
1.7 KiB
C++

#include <MenuSystem.hpp>
#include <boost/test/unit_test.hpp>
BOOST_AUTO_TEST_SUITE(MenuTests)
BOOST_AUTO_TEST_CASE(menu_test_click) {
bool clickered = false;
Menu test({{"Test", [&] { clickered = true; }}});
BOOST_CHECK(!clickered);
// Click underneath the menu item.
test.click(0.f, -1.f);
BOOST_CHECK(!clickered);
float h = 30.f;
test.click(0.f, h + 1.f);
BOOST_CHECK(!clickered);
test.click(0.f, h / 2.f);
BOOST_CHECK(clickered);
}
BOOST_AUTO_TEST_CASE(menu_test_click_offset) {
bool clickered = false;
Menu test({{"Test", [&] { clickered = true; }}});
test.offset = glm::vec2(200.f, 200.f);
BOOST_CHECK(!clickered);
// Click underneath the menu item.
test.click(201.f, -1.f);
BOOST_CHECK(!clickered);
float h = 30.f;
test.click(201.f, 200.f + h + 1.f);
BOOST_CHECK(!clickered);
test.click(201.f, 200.f + h / 2.f);
BOOST_CHECK(clickered);
}
BOOST_AUTO_TEST_CASE(menu_test_active_index) {
int clickindex = -1;
Menu test({{"Test1", [&] { clickindex = 0; }},
{"Test2", [&] { clickindex = 1; }}});
test.activate();
BOOST_CHECK(clickindex == -1);
test.move(1);
test.activate();
BOOST_CHECK(clickindex == 0);
test.move(1);
test.activate();
BOOST_CHECK(clickindex == 1);
test.move(-1);
test.activate();
BOOST_CHECK(clickindex == 0);
}
BOOST_AUTO_TEST_CASE(menu_test_hover_index) {
int clickindex = -1;
Menu test({{"Test1", [&] { clickindex = 0; }},
{"Test2", [&] { clickindex = 1; }}});
test.hover(0.f, 30.f - 0.1f);
BOOST_CHECK(test.activeEntry == 0);
test.hover(0.f, 30.f + 0.1f);
BOOST_CHECK(test.activeEntry == 1);
}
BOOST_AUTO_TEST_SUITE_END()