mirror of
https://github.com/loot/libloot.git
synced 2026-07-27 14:16:01 -07:00
Change group handling in MergeMetadata
Only replace the group if one is not already explicitly set. For #64.
This commit is contained in:
@@ -59,7 +59,7 @@ void PluginMetadata::MergeMetadata(const PluginMetadata& plugin) {
|
||||
// but if the 'group' value is not explicit, ignore it.
|
||||
enabled_ = plugin.IsEnabled();
|
||||
|
||||
if (plugin.GetGroup()) {
|
||||
if (!group_.has_value() && plugin.GetGroup()) {
|
||||
group_ = plugin.GetGroup();
|
||||
}
|
||||
|
||||
|
||||
@@ -140,7 +140,8 @@ TEST_P(PluginMetadataTest,
|
||||
EXPECT_FALSE(plugin1.IsEnabled());
|
||||
}
|
||||
|
||||
TEST_P(PluginMetadataTest, mergeMetadataShouldUseMergedGroupIfItIsExplicit) {
|
||||
TEST_P(PluginMetadataTest,
|
||||
mergeMetadataShouldNotUseMergedGroupIfItAndCurrentGroupAreBothExplicit) {
|
||||
PluginMetadata plugin1;
|
||||
PluginMetadata plugin2;
|
||||
|
||||
@@ -148,10 +149,22 @@ TEST_P(PluginMetadataTest, mergeMetadataShouldUseMergedGroupIfItIsExplicit) {
|
||||
plugin2.SetGroup("group2");
|
||||
plugin1.MergeMetadata(plugin2);
|
||||
|
||||
EXPECT_EQ("group2", plugin1.GetGroup());
|
||||
EXPECT_EQ("group1", plugin1.GetGroup());
|
||||
}
|
||||
|
||||
TEST_P(PluginMetadataTest, mergeMetadataShouldNotUseMergedGroupIfItIsImplicit) {
|
||||
TEST_P(PluginMetadataTest,
|
||||
mergeMetadataShouldNotUseMergedGroupIfItAndCurrentGroupAreBothImplicit) {
|
||||
PluginMetadata plugin1;
|
||||
PluginMetadata plugin2;
|
||||
|
||||
plugin1.MergeMetadata(plugin2);
|
||||
|
||||
EXPECT_FALSE(plugin1.GetGroup().has_value());
|
||||
}
|
||||
|
||||
TEST_P(
|
||||
PluginMetadataTest,
|
||||
mergeMetadataShouldNotUseMergedGroupIfItIsImplicitAndCurrentGroupIsExplicit) {
|
||||
PluginMetadata plugin1;
|
||||
PluginMetadata plugin2;
|
||||
|
||||
@@ -161,6 +174,18 @@ TEST_P(PluginMetadataTest, mergeMetadataShouldNotUseMergedGroupIfItIsImplicit) {
|
||||
EXPECT_EQ("group1", plugin1.GetGroup());
|
||||
}
|
||||
|
||||
TEST_P(
|
||||
PluginMetadataTest,
|
||||
mergeMetadataShouldUseMergedGroupIfItIsExplicitAndCurrentGroupIsImplicit) {
|
||||
PluginMetadata plugin1;
|
||||
PluginMetadata plugin2;
|
||||
|
||||
plugin2.SetGroup("group2");
|
||||
plugin1.MergeMetadata(plugin2);
|
||||
|
||||
EXPECT_EQ("group2", plugin1.GetGroup());
|
||||
}
|
||||
|
||||
TEST_P(PluginMetadataTest, mergeMetadataShouldMergeLoadAfterData) {
|
||||
PluginMetadata plugin1;
|
||||
PluginMetadata plugin2;
|
||||
|
||||
Reference in New Issue
Block a user