// SPDX-License-Identifier: LGPL-2.1-or-later #include "../msaa_states.h" #include int main() { const struct { DWORD states; LONG role; const char *expected; } cases[] = { {STATE_SYSTEM_CHECKED | STATE_SYSTEM_UNAVAILABLE, ROLE_SYSTEM_CHECKBUTTON, "checked, unavailable"}, {STATE_SYSTEM_MIXED | STATE_SYSTEM_CHECKED, ROLE_SYSTEM_CHECKBUTTON, "half checked"}, {0, ROLE_SYSTEM_RADIOBUTTON, "not checked"}, {STATE_SYSTEM_FOCUSED | STATE_SYSTEM_FOCUSABLE, ROLE_SYSTEM_PUSHBUTTON, ""}, {STATE_SYSTEM_SELECTED | STATE_SYSTEM_EXPANDED, ROLE_SYSTEM_OUTLINEITEM, "selected, expanded"}, {STATE_SYSTEM_PROTECTED | STATE_SYSTEM_READONLY, ROLE_SYSTEM_TEXT, "read only, password"}, {STATE_SYSTEM_COLLAPSED | STATE_SYSTEM_BUSY, ROLE_SYSTEM_OUTLINEITEM, "collapsed, busy"}, {STATE_SYSTEM_PRESSED, ROLE_SYSTEM_PUSHBUTTON, "pressed"}, }; for (const auto &testCase : cases) { const auto actual = msaa_states(testCase.states, testCase.role); if (actual != testCase.expected) { std::fprintf(stderr, "MSAA state %lu: got '%s', expected '%s'\n", static_cast(testCase.states), actual.c_str(), testCase.expected); return 1; } } std::puts("PASS: MSAA bitmask states, unchecked roles and password flags"); return 0; }