mirror of
https://github.com/loot/libloot.git
synced 2026-07-27 14:16:01 -07:00
@@ -289,6 +289,21 @@ namespace loot {
|
||||
EXPECT_FALSE(result);
|
||||
}
|
||||
|
||||
TEST_P(ConditionGrammarTest, aVersionEqualityConditionForAPluginWithNoVersionShouldEvaluateToFalse) {
|
||||
ASSERT_NO_THROW(game.LoadPlugins(true));
|
||||
|
||||
Grammar grammar(&game);
|
||||
std::string condition("version(\"" + blankEsp + "\", \"6.0\", ==)");
|
||||
|
||||
success = boost::spirit::qi::phrase_parse(std::cbegin(condition),
|
||||
std::cend(condition),
|
||||
grammar,
|
||||
skipper,
|
||||
result);
|
||||
EXPECT_TRUE(success);
|
||||
EXPECT_FALSE(result);
|
||||
}
|
||||
|
||||
TEST_P(ConditionGrammarTest, aVersionInequalityConditionWithAVersionThatDoesNotEqualTheActualPluginVersionShouldEvaluateToTrue) {
|
||||
ASSERT_NO_THROW(game.LoadPlugins(true));
|
||||
|
||||
@@ -319,6 +334,21 @@ namespace loot {
|
||||
EXPECT_FALSE(result);
|
||||
}
|
||||
|
||||
TEST_P(ConditionGrammarTest, aVersionInequalityConditionForAPluginWithNoVersionShouldEvaluateToTrue) {
|
||||
ASSERT_NO_THROW(game.LoadPlugins(true));
|
||||
|
||||
Grammar grammar(&game);
|
||||
std::string condition("version(\"" + blankEsp + "\", \"6.0\", !=)");
|
||||
|
||||
success = boost::spirit::qi::phrase_parse(std::cbegin(condition),
|
||||
std::cend(condition),
|
||||
grammar,
|
||||
skipper,
|
||||
result);
|
||||
EXPECT_TRUE(success);
|
||||
EXPECT_TRUE(result);
|
||||
}
|
||||
|
||||
TEST_P(ConditionGrammarTest, aVersionLessThanConditionWithAnActualPluginVersionLessThanTheGivenVersionShouldEvaluateToTrue) {
|
||||
ASSERT_NO_THROW(game.LoadPlugins(true));
|
||||
|
||||
@@ -349,6 +379,21 @@ namespace loot {
|
||||
EXPECT_FALSE(result);
|
||||
}
|
||||
|
||||
TEST_P(ConditionGrammarTest, aVersionLessThanConditionForAPluginWithNoVersionShouldEvaluateToTrue) {
|
||||
ASSERT_NO_THROW(game.LoadPlugins(true));
|
||||
|
||||
Grammar grammar(&game);
|
||||
std::string condition("version(\"" + blankEsp + "\", \"5.0\", <)");
|
||||
|
||||
success = boost::spirit::qi::phrase_parse(std::cbegin(condition),
|
||||
std::cend(condition),
|
||||
grammar,
|
||||
skipper,
|
||||
result);
|
||||
EXPECT_TRUE(success);
|
||||
EXPECT_TRUE(result);
|
||||
}
|
||||
|
||||
TEST_P(ConditionGrammarTest, aVersionGreaterThanConditionWithAnActualPluginVersionGreaterThanTheGivenVersionShouldEvaluateToTrue) {
|
||||
ASSERT_NO_THROW(game.LoadPlugins(true));
|
||||
|
||||
@@ -379,6 +424,21 @@ namespace loot {
|
||||
EXPECT_FALSE(result);
|
||||
}
|
||||
|
||||
TEST_P(ConditionGrammarTest, aVersionGreaterThanConditionForAPluginWithNoVersionShouldEvaluateToFalse) {
|
||||
ASSERT_NO_THROW(game.LoadPlugins(true));
|
||||
|
||||
Grammar grammar(&game);
|
||||
std::string condition("version(\"" + blankEsp + "\", \"5.0\", >)");
|
||||
|
||||
success = boost::spirit::qi::phrase_parse(std::cbegin(condition),
|
||||
std::cend(condition),
|
||||
grammar,
|
||||
skipper,
|
||||
result);
|
||||
EXPECT_TRUE(success);
|
||||
EXPECT_FALSE(result);
|
||||
}
|
||||
|
||||
TEST_P(ConditionGrammarTest, aVersionLessThanOrEqualToConditionWithAnActualPluginVersionEqualToTheGivenVersionShouldEvaluateToTrue) {
|
||||
ASSERT_NO_THROW(game.LoadPlugins(true));
|
||||
|
||||
@@ -409,6 +469,21 @@ namespace loot {
|
||||
EXPECT_FALSE(result);
|
||||
}
|
||||
|
||||
TEST_P(ConditionGrammarTest, aVersionLessThanOrEqualToConditionForAPluginWithNoVersionShouldEvaluateToTrue) {
|
||||
ASSERT_NO_THROW(game.LoadPlugins(true));
|
||||
|
||||
Grammar grammar(&game);
|
||||
std::string condition("version(\"" + blankEsp + "\", \"5.0\", <=)");
|
||||
|
||||
success = boost::spirit::qi::phrase_parse(std::cbegin(condition),
|
||||
std::cend(condition),
|
||||
grammar,
|
||||
skipper,
|
||||
result);
|
||||
EXPECT_TRUE(success);
|
||||
EXPECT_TRUE(result);
|
||||
}
|
||||
|
||||
TEST_P(ConditionGrammarTest, aVersionGreaterThanOrEqualToConditionWithAnActualPluginVersionEqualToTheGivenVersionShouldEvaluateToTrue) {
|
||||
ASSERT_NO_THROW(game.Init(false, localPath));
|
||||
ASSERT_NO_THROW(game.LoadPlugins(true));
|
||||
@@ -440,6 +515,21 @@ namespace loot {
|
||||
EXPECT_FALSE(result);
|
||||
}
|
||||
|
||||
TEST_P(ConditionGrammarTest, aVersionGreaterThanOrEqualToConditionForAPluginWithNoVersionShouldEvaluateToFalse) {
|
||||
ASSERT_NO_THROW(game.LoadPlugins(true));
|
||||
|
||||
Grammar grammar(&game);
|
||||
std::string condition("version(\"" + blankEsp + "\", \"5.0\", >=)");
|
||||
|
||||
success = boost::spirit::qi::phrase_parse(std::cbegin(condition),
|
||||
std::cend(condition),
|
||||
grammar,
|
||||
skipper,
|
||||
result);
|
||||
EXPECT_TRUE(success);
|
||||
EXPECT_FALSE(result);
|
||||
}
|
||||
|
||||
TEST_P(ConditionGrammarTest, anActiveConditionWithAPluginThatIsActiveShouldEvaluateToTrue) {
|
||||
ASSERT_NO_THROW(game.Init(false, localPath));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user