Skip to content

Commit cd7d471

Browse files
committed
Add tests for ccpa and usnat campaigns
1 parent b5837f5 commit cd7d471

File tree

3 files changed

+124
-1
lines changed

3 files changed

+124
-1
lines changed

Assets/ExampleApp/Scripts/PrivacySettings.cs

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using UnityEngine;
33
using UnityEngine.UI;
44
using System.Collections.Generic;
5+
using System;
56

67
public class PrivacySettings : MonoBehaviour, IOnConsentReady, IOnConsentSpFinished
78
{
@@ -31,6 +32,10 @@ public class PrivacySettings : MonoBehaviour, IOnConsentReady, IOnConsentSpFinis
3132
public Button clearDataButton;
3233
public Text sdkStatus;
3334

35+
public static string statusCampaignGDPR = "custom";
36+
public static string statusCampaignCCPA = "custom";
37+
public static string statusCampaignUSNAT = "custom";
38+
3439
private MESSAGE_LANGUAGE language
3540
{
3641
get
@@ -169,6 +174,9 @@ public void OnConsentReady(SpConsents consents)
169174
if(CMP.Instance.UseUSNAT)
170175
CmpDebugUtil.Log(consents.usnat.consents.ToFullString());
171176
UpdateUI();
177+
statusCampaignGDPR = UpdateStatuses(consents, CAMPAIGN_TYPE.GDPR);
178+
statusCampaignCCPA = UpdateStatuses(consents, CAMPAIGN_TYPE.CCPA);
179+
statusCampaignUSNAT = UpdateStatuses(consents, CAMPAIGN_TYPE.USNAT);
172180
}
173181

174182
public void OnConsentSpFinished()
@@ -209,6 +217,41 @@ void UpdateSdkStatus(string status)
209217
sdkStatus.text = "SDK:"+status;
210218
}
211219

220+
string UpdateStatuses(SpConsents consents, CAMPAIGN_TYPE campaign)
221+
{
222+
if (campaign == CAMPAIGN_TYPE.GDPR)
223+
{
224+
bool rejectedAny = (bool)consents.gdpr.consents.consentStatus.rejectedAny;
225+
bool rejectedLI = (bool)consents.gdpr.consents.consentStatus.rejectedLI;
226+
bool consentedAll = (bool)consents.gdpr.consents.consentStatus.consentedAll;
227+
bool consentedToAny = (bool)consents.gdpr.consents.consentStatus.consentedToAny;
228+
229+
if (consentedAll && consentedToAny)
230+
return "accepted";
231+
else if (rejectedAny && rejectedLI)
232+
return "rejected";
233+
}
234+
if (campaign == CAMPAIGN_TYPE.CCPA)
235+
{
236+
if (consents.ccpa.consents.status == "consentedAll")
237+
return "accepted";
238+
else if (consents.ccpa.consents.status == "rejectedAll")
239+
return "rejected";
240+
}
241+
if (campaign == CAMPAIGN_TYPE.USNAT)
242+
{
243+
bool rejectedAny = (bool)consents.usnat.consents.statuses.rejectedAny;
244+
bool consentedToAll = (bool)consents.usnat.consents.statuses.consentedToAll;
245+
bool consentedToAny = (bool)consents.usnat.consents.statuses.consentedToAny;
246+
247+
if (consentedToAll && consentedToAny)
248+
return "accepted";
249+
else if (rejectedAny)
250+
return "rejected";
251+
}
252+
return "custom";
253+
}
254+
212255
private void OnDestroy()
213256
{
214257
ConsentMessenger.RemoveListener<IOnConsentSpFinished>(gameObject);

UI-TESTS/UITests.cs

Lines changed: 73 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -421,21 +421,93 @@ public void ProgramaticRejectAllGDPRTest()
421421
pages.firstLayerGO(true, true, true);
422422
pages.nativeAppLayer.waitForSdkDone();
423423

424+
var altElement = altDriver.FindObject(AltTester.AltTesterUnitySDK.Driver.By.NAME, "Privacy Settings CMP");
425+
426+
Console.WriteLine($"Try to get: statusCampaignGDPR");
427+
string status = altElement.GetComponentProperty<string>("PrivacySettings", "statusCampaignGDPR", "Assembly-CSharp");
428+
Console.WriteLine($"statusCampaignGDPR: {status}");
429+
Assert.That(status=="accepted", Is.True);
424430
Console.WriteLine($"Try to get: nativeAppLayer.getConsentValueText");
425431
var data = pages.nativeAppLayer.getConsentValueText();
426432
Console.WriteLine($"ConsentValueText: {data}");
427433

428434
Console.WriteLine("Call 'rejectAll' with campaign GDPR");
429435
altDriver.CallStaticMethod<int>("ConsentManagementProvider.CMP", "ConcreteInstance.RejectAll", "Assembly-CSharp", new object[] { 0 });
430436
System.Threading.Thread.Sleep(2000);
431-
437+
438+
Console.WriteLine($"Try to get: statusCampaignGDPR");
439+
status = altElement.GetComponentProperty<string>("PrivacySettings", "statusCampaignGDPR", "Assembly-CSharp");
440+
Console.WriteLine($"statusCampaignGDPR: {status}");
441+
Assert.That(status=="rejected", Is.True);
432442
Console.WriteLine($"Try to get: nativeAppLayer.getConsentValueText");
433443
var dataNew = pages.nativeAppLayer.getConsentValueText();
434444
Console.WriteLine($"ConsentValueText: {dataNew}");
435445

436446
Assert.That(data!=dataNew, Is.True);
437447
}
438448

449+
[Test]
450+
public void ProgramaticRejectAllCCPATest()
451+
{
452+
Console.WriteLine(">>>ProgramaticRejectAllCCPATest");
453+
if (driver == null)
454+
{
455+
Assert.Fail("Driver has not been initialized.");
456+
}
457+
458+
string firstLayerContext = pages.preFirstLayer.SelectFirstLayer();
459+
460+
pages.firstLayerGO(true, true, true);
461+
pages.nativeAppLayer.waitForSdkDone();
462+
463+
var altElement = altDriver.FindObject(AltTester.AltTesterUnitySDK.Driver.By.NAME, "Privacy Settings CMP");
464+
465+
Console.WriteLine($"Try to get: statusCampaignCCPA");
466+
string status = altElement.GetComponentProperty<string>("PrivacySettings", "statusCampaignCCPA", "Assembly-CSharp");
467+
Console.WriteLine($"statusCampaignCCPA: {status}");
468+
Assert.That(status=="accepted", Is.True);
469+
470+
Console.WriteLine("Call 'rejectAll' with campaign CCPA");
471+
altDriver.CallStaticMethod<int>("ConsentManagementProvider.CMP", "ConcreteInstance.RejectAll", "Assembly-CSharp", new object[] { 2 });
472+
System.Threading.Thread.Sleep(2000);
473+
474+
Console.WriteLine($"Try to get: statusCampaignCCPA");
475+
status = altElement.GetComponentProperty<string>("PrivacySettings", "statusCampaignCCPA", "Assembly-CSharp");
476+
Console.WriteLine($"statusCampaignCCPA: {status}");
477+
Assert.That(status=="rejected", Is.True);
478+
}
479+
480+
[Test]
481+
public void ProgramaticRejectAllUSNATTest()
482+
{
483+
Console.WriteLine(">>>ProgramaticRejectAllUSNATTest");
484+
if (driver == null)
485+
{
486+
Assert.Fail("Driver has not been initialized.");
487+
}
488+
489+
string firstLayerContext = pages.preFirstLayer.SelectFirstLayer();
490+
491+
pages.firstLayerGO(true, true, true);
492+
pages.nativeAppLayer.waitForSdkDone();
493+
494+
var altElement = altDriver.FindObject(AltTester.AltTesterUnitySDK.Driver.By.NAME, "Privacy Settings CMP");
495+
496+
Console.WriteLine($"Try to get: statusCampaignUSNAT");
497+
string status = altElement.GetComponentProperty<string>("PrivacySettings", "statusCampaignUSNAT", "Assembly-CSharp");
498+
Console.WriteLine($"statusCampaignUSNAT: {status}");
499+
Assert.That(status=="accepted", Is.True);
500+
501+
Console.WriteLine("Call 'rejectAll' with campaign USNAT");
502+
altDriver.CallStaticMethod<int>("ConsentManagementProvider.CMP", "ConcreteInstance.RejectAll", "Assembly-CSharp", new object[] { 3 });
503+
System.Threading.Thread.Sleep(2000);
504+
505+
Console.WriteLine($"Try to get: statusCampaignUSNAT");
506+
status = altElement.GetComponentProperty<string>("PrivacySettings", "statusCampaignUSNAT", "Assembly-CSharp");
507+
Console.WriteLine($"statusCampaignUSNAT: {status}");
508+
Assert.That(status=="rejected", Is.True);
509+
}
510+
439511
[TearDown]
440512
public void Teardown()
441513
{

UI-TESTS/startup.sh

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,10 @@ sleep 5
5353
runTest android.runsettings AcceptRejectAllUsnatInPMTest
5454
sleep 5
5555
runTest android.runsettings ProgramaticRejectAllGDPRTest
56+
sleep 5
57+
runTest android.runsettings ProgramaticRejectAllCCPATest
58+
sleep 5
59+
runTest android.runsettings ProgramaticRejectAllUSNATTest
5660

5761
#Kill android emulator
5862
osascript -e 'tell app "Terminal" to close window id '${androidEmulator_window_id}''
@@ -78,6 +82,10 @@ sleep 5
7882
runTest ios.runsettings AcceptRejectAllUsnatInPMTest
7983
sleep 5
8084
runTest ios.runsettings ProgramaticRejectAllGDPRTest
85+
sleep 5
86+
runTest ios.runsettings ProgramaticRejectAllCCPATest
87+
sleep 5
88+
runTest ios.runsettings ProgramaticRejectAllUSNATTest
8189

8290
#Kill ios emulator
8391
osascript -e 'tell app "Terminal" to close window id '${iosEmulator_window_id}''

0 commit comments

Comments
 (0)