Add: WindowDesc unit test to validate NWidgetPart lists.

This commit is contained in:
Peter Nelson
2023-11-02 11:16:37 +00:00
committed by Peter Nelson
parent 1c94fb0389
commit b1eb5533eb
3 changed files with 63 additions and 0 deletions

View File

@@ -11,6 +11,8 @@
#include "../3rdparty/catch2/catch.hpp"
#include "mock_environment.h"
#include "../window_gui.h"
/**
@@ -19,6 +21,13 @@
*/
extern std::vector<WindowDesc*> *_window_descs;
class WindowDescTestsFixture {
private:
MockEnvironment &mock = MockEnvironment::Instance();
};
TEST_CASE("WindowDesc - ini_key uniqueness")
{
std::set<std::string> seen;
@@ -73,3 +82,17 @@ TEST_CASE("WindowDesc - NWidgetParts properly closed")
CHECK(IsNWidgetTreeClosed(window_desc->nwid_begin, window_desc->nwid_end));
}
TEST_CASE_METHOD(WindowDescTestsFixture, "WindowDesc - NWidgetPart validity")
{
const WindowDesc *window_desc = GENERATE(from_range(std::begin(*_window_descs), std::end(*_window_descs)));
INFO(fmt::format("{}:{}", window_desc->file, window_desc->line));
int biggest_index = -1;
NWidgetStacked *shade_select = nullptr;
NWidgetBase *root = nullptr;
REQUIRE_NOTHROW(root = MakeWindowNWidgetTree(window_desc->nwid_begin, window_desc->nwid_end, &biggest_index, &shade_select));
CHECK((root != nullptr));
}