Change menu unit tests to account for discoveries and fixes of menu parser

This commit is contained in:
Jan 2023-09-26 23:14:47 +02:00
parent 1e6824368c
commit 1a1e1f9815
2 changed files with 38 additions and 27 deletions

View File

@ -151,7 +151,7 @@ namespace test::game::iw4::menu::parsing::it
} }
onESC onESC
{ {
setColor 1 0.5 0.1 1; setColor backColor 1 0.5 0.1 1;
} }
border 1 border 1
borderSize 1.25 borderSize 1.25
@ -250,7 +250,7 @@ namespace test::game::iw4::menu::parsing::it
REQUIRE(menu->onESC->eventHandlerCount == 1); REQUIRE(menu->onESC->eventHandlerCount == 1);
REQUIRE(menu->onESC->eventHandlers[0]->eventType == EventType::EVENT_UNCONDITIONAL); REQUIRE(menu->onESC->eventHandlers[0]->eventType == EventType::EVENT_UNCONDITIONAL);
REQUIRE(menu->onESC->eventHandlers[0]->eventData.unconditionalScript != nullptr); REQUIRE(menu->onESC->eventHandlers[0]->eventData.unconditionalScript != nullptr);
REQUIRE(menu->onESC->eventHandlers[0]->eventData.unconditionalScript == R"("setColor" "1" "0.5" "0.1" "1" ; )"s); REQUIRE(menu->onESC->eventHandlers[0]->eventData.unconditionalScript == R"("setColor" "backColor" "1" "0.5" "0.1" "1" ; )"s);
REQUIRE(menu->window.border == 1); REQUIRE(menu->window.border == 1);
REQUIRE_THAT(menu->window.borderSize, WithinRel(1.25f)); REQUIRE_THAT(menu->window.borderSize, WithinRel(1.25f));

View File

@ -222,11 +222,12 @@ namespace test::parsing::menu::sequence::event_handler_set
TestGenericScriptStatement( TestGenericScriptStatement(
{ {
SimpleParserValue::Identifier(TokenPos(), new std::string("setColor")), SimpleParserValue::Identifier(TokenPos(), new std::string("setColor")),
SimpleParserValue::Identifier(TokenPos(), new std::string("backColor")),
SimpleParserValue::Integer(TokenPos(), 1), SimpleParserValue::Integer(TokenPos(), 1),
SimpleParserValue::Integer(TokenPos(), 1), SimpleParserValue::Integer(TokenPos(), 1),
SimpleParserValue::Integer(TokenPos(), 1), SimpleParserValue::Integer(TokenPos(), 1),
SimpleParserValue::Integer(TokenPos(), 1), SimpleParserValue::Integer(TokenPos(), 1),
}, R"("setColor" "1" "1" "1" "1" ; )"); }, R"("setColor" "backColor" "1" "1" "1" "1" ; )");
} }
TEST_CASE("EventHandlerSetScopeSequences: Ensure can use setColor with 3 colors", "[parsing][sequence][menu]") TEST_CASE("EventHandlerSetScopeSequences: Ensure can use setColor with 3 colors", "[parsing][sequence][menu]")
@ -234,10 +235,11 @@ namespace test::parsing::menu::sequence::event_handler_set
TestGenericScriptStatement( TestGenericScriptStatement(
{ {
SimpleParserValue::Identifier(TokenPos(), new std::string("setColor")), SimpleParserValue::Identifier(TokenPos(), new std::string("setColor")),
SimpleParserValue::Identifier(TokenPos(), new std::string("backColor")),
SimpleParserValue::Integer(TokenPos(), 1), SimpleParserValue::Integer(TokenPos(), 1),
SimpleParserValue::Integer(TokenPos(), 1), SimpleParserValue::Integer(TokenPos(), 1),
SimpleParserValue::Integer(TokenPos(), 1), SimpleParserValue::Integer(TokenPos(), 1),
}, R"("setColor" "1" "1" "1" ; )"); }, R"("setColor" "backColor" "1" "1" "1" ; )");
} }
TEST_CASE("EventHandlerSetScopeSequences: Ensure can use setColor with 2 colors", "[parsing][sequence][menu]") TEST_CASE("EventHandlerSetScopeSequences: Ensure can use setColor with 2 colors", "[parsing][sequence][menu]")
@ -245,9 +247,10 @@ namespace test::parsing::menu::sequence::event_handler_set
TestGenericScriptStatement( TestGenericScriptStatement(
{ {
SimpleParserValue::Identifier(TokenPos(), new std::string("setColor")), SimpleParserValue::Identifier(TokenPos(), new std::string("setColor")),
SimpleParserValue::Identifier(TokenPos(), new std::string("backColor")),
SimpleParserValue::Integer(TokenPos(), 1), SimpleParserValue::Integer(TokenPos(), 1),
SimpleParserValue::Integer(TokenPos(), 1), SimpleParserValue::Integer(TokenPos(), 1),
}, R"("setColor" "1" "1" ; )"); }, R"("setColor" "backColor" "1" "1" ; )");
} }
TEST_CASE("EventHandlerSetScopeSequences: Ensure can use setColor with 1 color", "[parsing][sequence][menu]") TEST_CASE("EventHandlerSetScopeSequences: Ensure can use setColor with 1 color", "[parsing][sequence][menu]")
@ -255,8 +258,9 @@ namespace test::parsing::menu::sequence::event_handler_set
TestGenericScriptStatement( TestGenericScriptStatement(
{ {
SimpleParserValue::Identifier(TokenPos(), new std::string("setColor")), SimpleParserValue::Identifier(TokenPos(), new std::string("setColor")),
SimpleParserValue::Identifier(TokenPos(), new std::string("backColor")),
SimpleParserValue::Integer(TokenPos(), 1), SimpleParserValue::Integer(TokenPos(), 1),
}, R"("setColor" "1" ; )"); }, R"("setColor" "backColor" "1" ; )");
} }
TEST_CASE("EventHandlerSetScopeSequences: Ensure cannot use setColor with no color", "[parsing][sequence][menu]") TEST_CASE("EventHandlerSetScopeSequences: Ensure cannot use setColor with no color", "[parsing][sequence][menu]")
@ -265,6 +269,7 @@ namespace test::parsing::menu::sequence::event_handler_set
const TokenPos pos; const TokenPos pos;
helper.Tokens({ helper.Tokens({
SimpleParserValue::Identifier(pos, new std::string("setColor")), SimpleParserValue::Identifier(pos, new std::string("setColor")),
SimpleParserValue::Identifier(TokenPos(), new std::string("backColor")),
SimpleParserValue::Character(pos, ';'), SimpleParserValue::Character(pos, ';'),
SimpleParserValue::EndOfFile(pos) SimpleParserValue::EndOfFile(pos)
}); });
@ -344,7 +349,7 @@ namespace test::parsing::menu::sequence::event_handler_set
{ {
SimpleParserValue::Identifier(TokenPos(), new std::string("setItemColor")), SimpleParserValue::Identifier(TokenPos(), new std::string("setItemColor")),
SimpleParserValue::String(TokenPos(), new std::string("some_element")), SimpleParserValue::String(TokenPos(), new std::string("some_element")),
SimpleParserValue::String(TokenPos(), new std::string("forecolor")), SimpleParserValue::Identifier(TokenPos(), new std::string("forecolor")),
SimpleParserValue::Integer(TokenPos(), 1), SimpleParserValue::Integer(TokenPos(), 1),
SimpleParserValue::Integer(TokenPos(), 1), SimpleParserValue::Integer(TokenPos(), 1),
SimpleParserValue::Integer(TokenPos(), 1), SimpleParserValue::Integer(TokenPos(), 1),
@ -358,12 +363,12 @@ namespace test::parsing::menu::sequence::event_handler_set
{ {
SimpleParserValue::Identifier(TokenPos(), new std::string("setItemColor")), SimpleParserValue::Identifier(TokenPos(), new std::string("setItemColor")),
SimpleParserValue::String(TokenPos(), new std::string("some_element")), SimpleParserValue::String(TokenPos(), new std::string("some_element")),
SimpleParserValue::String(TokenPos(), new std::string("backcolor")), SimpleParserValue::Identifier(TokenPos(), new std::string("backColor")),
SimpleParserValue::Integer(TokenPos(), 1), SimpleParserValue::Integer(TokenPos(), 1),
SimpleParserValue::Integer(TokenPos(), 1), SimpleParserValue::Integer(TokenPos(), 1),
SimpleParserValue::Integer(TokenPos(), 1), SimpleParserValue::Integer(TokenPos(), 1),
SimpleParserValue::Integer(TokenPos(), 1), SimpleParserValue::Integer(TokenPos(), 1),
}, R"("setItemColor" "some_element" "backcolor" "1" "1" "1" "1" ; )"); }, R"("setItemColor" "some_element" "backColor" "1" "1" "1" "1" ; )");
} }
TEST_CASE("EventHandlerSetScopeSequences: Ensure can use setItemColor with bordercolor", "[parsing][sequence][menu]") TEST_CASE("EventHandlerSetScopeSequences: Ensure can use setItemColor with bordercolor", "[parsing][sequence][menu]")
@ -372,7 +377,7 @@ namespace test::parsing::menu::sequence::event_handler_set
{ {
SimpleParserValue::Identifier(TokenPos(), new std::string("setItemColor")), SimpleParserValue::Identifier(TokenPos(), new std::string("setItemColor")),
SimpleParserValue::String(TokenPos(), new std::string("some_element")), SimpleParserValue::String(TokenPos(), new std::string("some_element")),
SimpleParserValue::String(TokenPos(), new std::string("bordercolor")), SimpleParserValue::Identifier(TokenPos(), new std::string("bordercolor")),
SimpleParserValue::Integer(TokenPos(), 1), SimpleParserValue::Integer(TokenPos(), 1),
SimpleParserValue::Integer(TokenPos(), 1), SimpleParserValue::Integer(TokenPos(), 1),
SimpleParserValue::Integer(TokenPos(), 1), SimpleParserValue::Integer(TokenPos(), 1),
@ -380,6 +385,20 @@ namespace test::parsing::menu::sequence::event_handler_set
}, R"("setItemColor" "some_element" "bordercolor" "1" "1" "1" "1" ; )"); }, R"("setItemColor" "some_element" "bordercolor" "1" "1" "1" "1" ; )");
} }
TEST_CASE("EventHandlerSetScopeSequences: Ensure can use setItemColor with disablecolor", "[parsing][sequence][menu]")
{
TestGenericScriptStatement(
{
SimpleParserValue::Identifier(TokenPos(), new std::string("setItemColor")),
SimpleParserValue::String(TokenPos(), new std::string("some_element")),
SimpleParserValue::Identifier(TokenPos(), new std::string("disablecolor")),
SimpleParserValue::Integer(TokenPos(), 1),
SimpleParserValue::Integer(TokenPos(), 1),
SimpleParserValue::Integer(TokenPos(), 1),
SimpleParserValue::Integer(TokenPos(), 1),
}, R"("setItemColor" "some_element" "disablecolor" "1" "1" "1" "1" ; )");
}
TEST_CASE("EventHandlerSetScopeSequences: Ensure can use focusFirst", "[parsing][sequence][menu]") TEST_CASE("EventHandlerSetScopeSequences: Ensure can use focusFirst", "[parsing][sequence][menu]")
{ {
TestGenericScriptStatement( TestGenericScriptStatement(
@ -518,45 +537,37 @@ namespace test::parsing::menu::sequence::event_handler_set
}, R"("scriptMenuResponse" "some_response" ; )"); }, R"("scriptMenuResponse" "some_response" ; )");
} }
TEST_CASE("EventHandlerSetScopeSequences: Ensure can use respondOnDvarStringValue", "[parsing][sequence][menu]") TEST_CASE("EventHandlerSetScopeSequences: Ensure can use scriptMenuRespondOnDvarStringValue", "[parsing][sequence][menu]")
{ {
TestGenericScriptStatement( TestGenericScriptStatement(
{ {
SimpleParserValue::Identifier(TokenPos(), new std::string("respondOnDvarStringValue")), SimpleParserValue::Identifier(TokenPos(), new std::string("scriptMenuRespondOnDvarStringValue")),
SimpleParserValue::String(TokenPos(), new std::string("some_dvar")), SimpleParserValue::String(TokenPos(), new std::string("some_dvar")),
SimpleParserValue::String(TokenPos(), new std::string("some_value")), SimpleParserValue::String(TokenPos(), new std::string("some_value")),
SimpleParserValue::String(TokenPos(), new std::string("some_response")) SimpleParserValue::String(TokenPos(), new std::string("some_response"))
}, R"("respondOnDvarStringValue" "some_dvar" "some_value" "some_response" ; )"); }, R"("scriptMenuRespondOnDvarStringValue" "some_dvar" "some_value" "some_response" ; )");
} }
TEST_CASE("EventHandlerSetScopeSequences: Ensure can use respondOnDvarIntValue", "[parsing][sequence][menu]") TEST_CASE("EventHandlerSetScopeSequences: Ensure can use scriptMenuRespondOnDvarIntValue", "[parsing][sequence][menu]")
{ {
TestGenericScriptStatement( TestGenericScriptStatement(
{ {
SimpleParserValue::Identifier(TokenPos(), new std::string("respondOnDvarIntValue")), SimpleParserValue::Identifier(TokenPos(), new std::string("scriptMenuRespondOnDvarIntValue")),
SimpleParserValue::String(TokenPos(), new std::string("some_dvar")), SimpleParserValue::String(TokenPos(), new std::string("some_dvar")),
SimpleParserValue::Integer(TokenPos(), 1), SimpleParserValue::Integer(TokenPos(), 1),
SimpleParserValue::String(TokenPos(), new std::string("some_response")) SimpleParserValue::String(TokenPos(), new std::string("some_response"))
}, R"("respondOnDvarIntValue" "some_dvar" "1" "some_response" ; )"); }, R"("scriptMenuRespondOnDvarIntValue" "some_dvar" "1" "some_response" ; )");
} }
TEST_CASE("EventHandlerSetScopeSequences: Ensure can use respondOnDvarFloatValue", "[parsing][sequence][menu]") TEST_CASE("EventHandlerSetScopeSequences: Ensure can use scriptMenuRespondOnDvarFloatValue", "[parsing][sequence][menu]")
{ {
TestGenericScriptStatement( TestGenericScriptStatement(
{ {
SimpleParserValue::Identifier(TokenPos(), new std::string("respondOnDvarFloatValue")), SimpleParserValue::Identifier(TokenPos(), new std::string("scriptMenuRespondOnDvarFloatValue")),
SimpleParserValue::String(TokenPos(), new std::string("some_dvar")), SimpleParserValue::String(TokenPos(), new std::string("some_dvar")),
SimpleParserValue::Integer(TokenPos(), 1), SimpleParserValue::Integer(TokenPos(), 1),
SimpleParserValue::String(TokenPos(), new std::string("some_response")) SimpleParserValue::String(TokenPos(), new std::string("some_response"))
}, R"("respondOnDvarFloatValue" "some_dvar" "1" "some_response" ; )"); }, R"("scriptMenuRespondOnDvarFloatValue" "some_dvar" "1" "some_response" ; )");
}
TEST_CASE("EventHandlerSetScopeSequences: Ensure can use setPlayerDataSp", "[parsing][sequence][menu]")
{
TestGenericScriptStatement(
{
SimpleParserValue::Identifier(TokenPos(), new std::string("setPlayerDataSp"))
}, R"("setPlayerDataSp" ; )");
} }
TEST_CASE("EventHandlerSetScopeSequences: Ensure can use updateMail", "[parsing][sequence][menu]") TEST_CASE("EventHandlerSetScopeSequences: Ensure can use updateMail", "[parsing][sequence][menu]")