Skip to content

Commit 82e28be

Browse files
Merge branch 'main' into feat/sdk-216-xml-docs
2 parents 4051a6b + 0c2e3af commit 82e28be

2 files changed

Lines changed: 48 additions & 0 deletions

File tree

src/Packages/Audience/Runtime/ImmutableAudience.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,13 @@ public static void Init(AudienceConfig config)
146146
if (string.IsNullOrEmpty(config.PersistentDataPath))
147147
throw new ArgumentException("PersistentDataPath is required", nameof(config));
148148

149+
// Normalize casing so dashboards aggregate consistently. The
150+
// DistributionPlatforms constants ship lowercase; a studio that
151+
// passes "Steam" or "STEAM" would otherwise split rows from
152+
// constant-using studios in the same project.
153+
if (!string.IsNullOrEmpty(config.DistributionPlatform))
154+
config.DistributionPlatform = config.DistributionPlatform.ToLowerInvariant();
155+
149156
ConsentLevel consentAtInit;
150157
Session? sessionToStart;
151158
lock (_initLock)

src/Packages/Audience/Tests/Runtime/ImmutableAudienceTests.cs

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1117,6 +1117,47 @@ public void Init_GameLaunch_IncludesDistributionPlatform()
11171117
c.Contains("\"game_launch\"") && c.Contains("\"steam\"")));
11181118
}
11191119

1120+
[Test]
1121+
public void Init_LowercasesDistributionPlatform_WhenCallerPassesMixedCase()
1122+
{
1123+
var config = MakeConfig();
1124+
config.DistributionPlatform = "Steam";
1125+
ImmutableAudience.Init(config);
1126+
1127+
Assert.AreEqual("steam", config.DistributionPlatform,
1128+
"Init should lowercase mixed-case DistributionPlatform so dashboards aggregate consistently.");
1129+
}
1130+
1131+
[Test]
1132+
public void Init_LowercasesDistributionPlatform_WhenCallerPassesAllUpperCase()
1133+
{
1134+
var config = MakeConfig();
1135+
config.DistributionPlatform = "STEAM";
1136+
ImmutableAudience.Init(config);
1137+
1138+
Assert.AreEqual("steam", config.DistributionPlatform);
1139+
}
1140+
1141+
[Test]
1142+
public void Init_LeavesDistributionPlatformUnchanged_WhenAlreadyLowercase()
1143+
{
1144+
var config = MakeConfig();
1145+
config.DistributionPlatform = "steam";
1146+
ImmutableAudience.Init(config);
1147+
1148+
Assert.AreEqual("steam", config.DistributionPlatform);
1149+
}
1150+
1151+
[Test]
1152+
public void Init_LeavesDistributionPlatformNull_WhenNotSet()
1153+
{
1154+
var config = MakeConfig();
1155+
Assert.IsNull(config.DistributionPlatform);
1156+
ImmutableAudience.Init(config);
1157+
1158+
Assert.IsNull(config.DistributionPlatform);
1159+
}
1160+
11201161
[Test]
11211162
public void Init_ConsentNone_DoesNotFireGameLaunch()
11221163
{

0 commit comments

Comments
 (0)