@usercentrics/react-native-sdk 2.10.0 → 2.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/android/build.gradle +1 -1
  3. package/android/src/androidTest/java/com/usercentrics/reactnativemodule/RNUsercentricsModuleTest.kt +84 -123
  4. package/android/src/androidTest/java/com/usercentrics/reactnativemodule/mock/GetCMPDataMock.kt +647 -499
  5. package/android/src/androidTest/java/com/usercentrics/reactnativemodule/mock/GetTCFDataMock.kt +14 -4
  6. package/android/src/androidTest/java/com/usercentrics/reactnativemodule/mock/SaveDecisionsForTCFMock.kt +7 -1
  7. package/android/src/main/java/com/usercentrics/reactnativeusercentrics/RNUsercentricsModule.kt +10 -1
  8. package/android/src/main/java/com/usercentrics/reactnativeusercentrics/extensions/ConsentDisclosureSerializer.kt +24 -0
  9. package/android/src/main/java/com/usercentrics/reactnativeusercentrics/extensions/TCFDataExtensions.kt +12 -4
  10. package/android/src/main/java/com/usercentrics/reactnativeusercentrics/extensions/UserDecisionExtensions.kt +18 -1
  11. package/android/src/main/java/com/usercentrics/reactnativeusercentrics/extensions/UsercentricsCMPDataExtensions.kt +85 -7
  12. package/ios/Extensions/TCFData+Dict.swift +14 -1
  13. package/ios/Extensions/TCFUserDecisions+Dict.swift +12 -1
  14. package/ios/Extensions/UsercentricsCMPData+Dict.swift +96 -7
  15. package/ios/Manager/UsercentricsManager.swift +6 -1
  16. package/ios/RNUsercentricsModule.m +3 -0
  17. package/ios/RNUsercentricsModule.swift +7 -3
  18. package/lib/Usercentrics.d.ts +5 -3
  19. package/lib/Usercentrics.js +4 -0
  20. package/lib/Usercentrics.js.map +1 -1
  21. package/lib/models/AdditionalConsentModeData.d.ts +12 -0
  22. package/lib/models/AdditionalConsentModeData.js +15 -0
  23. package/lib/models/AdditionalConsentModeData.js.map +1 -0
  24. package/lib/models/BannerSettings.js.map +1 -1
  25. package/lib/models/CCPAData.js.map +1 -1
  26. package/lib/models/CCPASettings.js.map +1 -1
  27. package/lib/models/ConsentDisclosureObject.d.ts +20 -0
  28. package/lib/models/ConsentDisclosureObject.js +24 -0
  29. package/lib/models/ConsentDisclosureObject.js.map +1 -0
  30. package/lib/models/FirstLayerSettings.js.map +1 -1
  31. package/lib/models/NetworkMode.js.map +1 -1
  32. package/lib/models/SecondLayerSettings.js.map +1 -1
  33. package/lib/models/TCF2Settings.d.ts +24 -1
  34. package/lib/models/TCF2Settings.js +27 -1
  35. package/lib/models/TCF2Settings.js.map +1 -1
  36. package/lib/models/TCFData.d.ts +16 -2
  37. package/lib/models/TCFData.js +17 -2
  38. package/lib/models/TCFData.js.map +1 -1
  39. package/lib/models/TCFDecisionUILayer.js.map +1 -1
  40. package/lib/models/TCFUserDecisions.d.ts +10 -4
  41. package/lib/models/TCFUserDecisions.js +8 -1
  42. package/lib/models/TCFUserDecisions.js.map +1 -1
  43. package/lib/models/UsercentricsAnalyticsEventType.js.map +1 -1
  44. package/lib/models/UsercentricsCMPData.js.map +1 -1
  45. package/lib/models/UsercentricsCategory.js.map +1 -1
  46. package/lib/models/UsercentricsConsentType.js.map +1 -1
  47. package/lib/models/UsercentricsConsentUserResponse.js.map +1 -1
  48. package/lib/models/UsercentricsLabels.d.ts +8 -1
  49. package/lib/models/UsercentricsLabels.js +8 -1
  50. package/lib/models/UsercentricsLabels.js.map +1 -1
  51. package/lib/models/UsercentricsLoggerLevel.js.map +1 -1
  52. package/lib/models/UsercentricsOptions.js.map +1 -1
  53. package/lib/models/UsercentricsReadyStatus.js.map +1 -1
  54. package/lib/models/UsercentricsService.d.ts +4 -1
  55. package/lib/models/UsercentricsService.js +3 -1
  56. package/lib/models/UsercentricsService.js.map +1 -1
  57. package/lib/models/UsercentricsServiceConsent.js.map +1 -1
  58. package/lib/models/UsercentricsSettings.d.ts +33 -4
  59. package/lib/models/UsercentricsSettings.js +38 -3
  60. package/lib/models/UsercentricsSettings.js.map +1 -1
  61. package/lib/models/UsercentricsUserInteraction.js.map +1 -1
  62. package/lib/models/UsercentricsVariant.js.map +1 -1
  63. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,34 @@
1
1
  [Release Notes](https://docs.usercentrics.com/cmp_in_app_sdk/latest/about/history/)
2
2
 
3
+ ### 2.11.0 - December 22, 2023
4
+
5
+ ## Features
6
+
7
+ * Google Consent Mode V2 Support - Seamlessly integrate with the latest Google Consent Mode, ensuring enhanced privacy compliance and meeting Google requirements.
8
+ * Google Additional Consent Mode V2 - Integrate with the latest Google Additional Consent, allowing you to collect and signal additional consent for ad tech providers not covered by the IAB TCF V2.2.
9
+ * Display Number of Vendors for Each Purpose on TCF - Easily view the number of vendors associated with each purpose in the Transparency and Consent Framework.
10
+ * Chartboost SDK in Consent Mediation - Optimize revenue by effortlessly managing the Chartboost SDK within Usercentrics Consent Mediation.
11
+
12
+ ## Improvements
13
+
14
+ * TCFUserDecisions API update - All properties have been changed from variables to constants. The adTechProviders field has been added which represent consents for Google Additional Consent Mode. On iOS this is a required argument, so if this is irrelevant for your configuration, just set an empty list, when needed.
15
+ * Location is only cached by the SDK for offline mode.
16
+
17
+ ## Android Resolved Issues
18
+
19
+ * Avoid fetching any image resource after the banner has been closed.
20
+
21
+ ## iOS Resolved Issues
22
+
23
+ * Prevent Long Privacy Legal Links from Being Truncated.
24
+ * Enable Scaled Fonts resources when using Custom UI.
25
+
26
+ ## Other Resolved Issues
27
+
28
+ * Third-Party Vendors Count misalignment in some configurations.
29
+ * Fix the bug causing the banner to reappear for users outside the European Union, despite configurations being specifically set to enforce GDPR compliance exclusively for EU users.
30
+ * Update Link to Report Issues on Zendesk.
31
+
3
32
  ### 2.10.0 - November 16, 2023
4
33
 
5
34
  ## Improvements
@@ -1,4 +1,4 @@
1
- def usercentrics_version = "2.10.0"
1
+ def usercentrics_version = "2.11.0"
2
2
  version usercentrics_version
3
3
 
4
4
  buildscript {
@@ -64,8 +64,8 @@ class RNUsercentricsModuleTest {
64
64
  private val usercentricsConsentHistoryEntries = listOf(
65
65
  UsercentricsConsentHistoryEntry(
66
66
  status = false,
67
- UsercentricsConsentType.EXPLICIT,
68
- 123
67
+ type = UsercentricsConsentType.EXPLICIT,
68
+ timestampInMillis = 123
69
69
  )
70
70
  )
71
71
 
@@ -88,16 +88,14 @@ class RNUsercentricsModuleTest {
88
88
  @Before
89
89
  fun before() {
90
90
  SoLoader.init(
91
- InstrumentationRegistry.getInstrumentation().context,
92
- SoLoader.SOLOADER_ALLOW_ASYNC_INIT
91
+ InstrumentationRegistry.getInstrumentation().context, SoLoader.SOLOADER_ALLOW_ASYNC_INIT
93
92
  )
94
93
  }
95
94
 
96
95
  @Test
97
96
  fun testModuleName() {
98
97
  assertEquals(
99
- "RNUsercentricsModule",
100
- RNUsercentricsModule(mockk(relaxed = true), mockk(), ReactContextProviderMock()).name
98
+ "RNUsercentricsModule", RNUsercentricsModule(mockk(relaxed = true), mockk(), ReactContextProviderMock()).name
101
99
  )
102
100
  }
103
101
 
@@ -105,8 +103,7 @@ class RNUsercentricsModuleTest {
105
103
  fun testConfigure() {
106
104
  val usercentricsProxy = FakeUsercentricsProxy()
107
105
  val contextMock = mockk<ReactApplicationContext>(relaxed = true)
108
- val module =
109
- RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
106
+ val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
110
107
 
111
108
  module.configure(usercentricsOptions)
112
109
 
@@ -114,8 +111,7 @@ class RNUsercentricsModuleTest {
114
111
  assertEquals("AAAAA", usercentricsProxy.initializeOptionsArgument?.settingsId)
115
112
  assertEquals("BBBBB", usercentricsProxy.initializeOptionsArgument?.ruleSetId)
116
113
  assertEquals(
117
- UsercentricsLoggerLevel.NONE,
118
- usercentricsProxy.initializeOptionsArgument?.loggerLevel
114
+ UsercentricsLoggerLevel.NONE, usercentricsProxy.initializeOptionsArgument?.loggerLevel
119
115
  )
120
116
  assertEquals(1000L, usercentricsProxy.initializeOptionsArgument?.timeoutMillis)
121
117
  assertEquals("1.2.3", usercentricsProxy.initializeOptionsArgument?.version)
@@ -126,8 +122,7 @@ class RNUsercentricsModuleTest {
126
122
  fun testConfigureWithWrongValues() {
127
123
  val usercentricsProxy = FakeUsercentricsProxy()
128
124
  val contextMock = mockk<ReactApplicationContext>(relaxed = true)
129
- val module =
130
- RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
125
+ val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
131
126
 
132
127
  module.configure(JavaOnlyMap())
133
128
  assertEquals(UsercentricsOptions(), usercentricsProxy.initializeOptionsArgument)
@@ -137,8 +132,7 @@ class RNUsercentricsModuleTest {
137
132
  fun testIsReady() {
138
133
  val usercentricsProxy = FakeUsercentricsProxy(isReadyAnswer = usercentricsReadyStatus)
139
134
  val contextMock = mockk<ReactApplicationContext>(relaxed = true)
140
- val module =
141
- RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
135
+ val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
142
136
 
143
137
  val promise = FakePromise()
144
138
  module.isReady(promise)
@@ -161,8 +155,7 @@ class RNUsercentricsModuleTest {
161
155
 
162
156
  val usercentricsProxy = FakeUsercentricsProxy(isReadyAnswer = error)
163
157
  val contextMock = mockk<ReactApplicationContext>(relaxed = true)
164
- val module =
165
- RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
158
+ val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
166
159
 
167
160
  val promise = FakePromise()
168
161
  module.isReady(promise)
@@ -174,15 +167,13 @@ class RNUsercentricsModuleTest {
174
167
  @Test
175
168
  fun testRestoreUserSession() {
176
169
  val usercentricsSDK = mockk<UsercentricsSDK>()
177
- every { usercentricsSDK.restoreUserSession(any(), any(), any()) }
178
- .answers {
179
- (arg(1) as (UsercentricsReadyStatus) -> Unit)(usercentricsReadyStatus)
180
- }
170
+ every { usercentricsSDK.restoreUserSession(any(), any(), any()) }.answers {
171
+ (arg(1) as (UsercentricsReadyStatus) -> Unit)(usercentricsReadyStatus)
172
+ }
181
173
 
182
174
  val usercentricsProxy = FakeUsercentricsProxy(instanceAnswer = usercentricsSDK)
183
175
  val contextMock = mockk<ReactApplicationContext>(relaxed = true)
184
- val module =
185
- RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
176
+ val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
186
177
 
187
178
  val promise = FakePromise()
188
179
  module.restoreUserSession("abc", promise)
@@ -204,14 +195,12 @@ class RNUsercentricsModuleTest {
204
195
  fun testRestoreUserSessionWithError() {
205
196
  val error = mockk<UsercentricsError>(relaxed = true)
206
197
  val usercentricsSDK = mockk<UsercentricsSDK>()
207
- every { usercentricsSDK.restoreUserSession(any(), any(), any()) }
208
- .answers {
209
- (arg(2) as (UsercentricsError) -> Unit)(error)
210
- }
198
+ every { usercentricsSDK.restoreUserSession(any(), any(), any()) }.answers {
199
+ (arg(2) as (UsercentricsError) -> Unit)(error)
200
+ }
211
201
  val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
212
202
  val contextMock = mockk<ReactApplicationContext>(relaxed = true)
213
- val module =
214
- RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
203
+ val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
215
204
 
216
205
  val promise = FakePromise()
217
206
  module.restoreUserSession("abc", promise)
@@ -226,8 +215,7 @@ class RNUsercentricsModuleTest {
226
215
  every { usercentricsSDK.getControllerId() }.returns("abc")
227
216
  val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
228
217
  val contextMock = mockk<ReactApplicationContext>(relaxed = true)
229
- val module =
230
- RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
218
+ val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
231
219
  val promise = FakePromise()
232
220
 
233
221
  module.getControllerId(promise)
@@ -242,8 +230,7 @@ class RNUsercentricsModuleTest {
242
230
  every { usercentricsSDK.getABTestingVariant() }.returns("variantA")
243
231
  val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
244
232
  val contextMock = mockk<ReactApplicationContext>(relaxed = true)
245
- val module =
246
- RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
233
+ val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
247
234
  val promise = FakePromise()
248
235
 
249
236
  module.getABTestingVariant(promise)
@@ -259,8 +246,7 @@ class RNUsercentricsModuleTest {
259
246
 
260
247
  val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
261
248
  val contextMock = mockk<ReactApplicationContext>(relaxed = true)
262
- val module =
263
- RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
249
+ val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
264
250
 
265
251
  val promise = FakePromise()
266
252
 
@@ -292,8 +278,7 @@ class RNUsercentricsModuleTest {
292
278
 
293
279
  val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
294
280
  val contextMock = mockk<ReactApplicationContext>(relaxed = true)
295
- val module =
296
- RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
281
+ val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
297
282
 
298
283
  val promise = FakePromise()
299
284
 
@@ -307,18 +292,15 @@ class RNUsercentricsModuleTest {
307
292
  assertEquals(2, resultMap.getInt("activeVariant"))
308
293
 
309
294
  assertEquals(
310
- GetCMPDataMock.expectedSettings.toWritableMap(),
311
- resultMap.getMap("settings")
295
+ GetCMPDataMock.expectedSettings.toWritableMap(), resultMap.getMap("settings")
312
296
  )
313
297
 
314
298
  assertEquals(
315
- GetCMPDataMock.expectedCategories.serialize(),
316
- resultMap.getArray("categories")
299
+ GetCMPDataMock.expectedCategories.serialize(), resultMap.getArray("categories")
317
300
  )
318
301
 
319
302
  assertEquals(
320
- GetCMPDataMock.expectedUserLocation.toWritableMap(),
321
- resultMap.getMap("userLocation")
303
+ GetCMPDataMock.expectedUserLocation.toWritableMap(), resultMap.getMap("userLocation")
322
304
  )
323
305
 
324
306
  assertEquals(GetCMPDataMock.expectedServices.serialize(), resultMap.getArray("services")!!)
@@ -331,8 +313,7 @@ class RNUsercentricsModuleTest {
331
313
 
332
314
  val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
333
315
  val contextMock = mockk<ReactApplicationContext>(relaxed = true)
334
- val module =
335
- RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
316
+ val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
336
317
 
337
318
  module.setCMPId(123)
338
319
 
@@ -346,8 +327,7 @@ class RNUsercentricsModuleTest {
346
327
 
347
328
  val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
348
329
  val contextMock = mockk<ReactApplicationContext>(relaxed = true)
349
- val module =
350
- RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
330
+ val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
351
331
 
352
332
  module.setABTestingVariant("variantA")
353
333
 
@@ -363,8 +343,7 @@ class RNUsercentricsModuleTest {
363
343
 
364
344
  val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
365
345
  val contextMock = mockk<ReactApplicationContext>(relaxed = true)
366
- val module =
367
- RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
346
+ val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
368
347
  val promise = FakePromise()
369
348
 
370
349
  module.getTCFData(promise)
@@ -381,8 +360,7 @@ class RNUsercentricsModuleTest {
381
360
  every { usercentricsSDK.getUserSessionData() }.returns(GetUserSessionDataMock.fake)
382
361
  val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
383
362
  val contextMock = mockk<ReactApplicationContext>(relaxed = true)
384
- val module =
385
- RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
363
+ val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
386
364
  val promise = FakePromise()
387
365
 
388
366
  module.getUserSessionData(promise)
@@ -397,8 +375,7 @@ class RNUsercentricsModuleTest {
397
375
 
398
376
  val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
399
377
  val contextMock = mockk<ReactApplicationContext>(relaxed = true)
400
- val module =
401
- RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
378
+ val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
402
379
  val promise = FakePromise()
403
380
 
404
381
  module.getUSPData(promise)
@@ -411,23 +388,19 @@ class RNUsercentricsModuleTest {
411
388
  @Test
412
389
  fun testChangeLanguage() {
413
390
  val usercentricsSDK = mockk<UsercentricsSDK>()
414
- every { usercentricsSDK.changeLanguage(any(), any(), any()) }
415
- .answers {
416
- (arg(1) as () -> Unit)()
417
- }
391
+ every { usercentricsSDK.changeLanguage(any(), any(), any()) }.answers {
392
+ (arg(1) as () -> Unit)()
393
+ }
418
394
  val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
419
395
  val contextMock = mockk<ReactApplicationContext>(relaxed = true)
420
- val module =
421
- RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
396
+ val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
422
397
  val promise = FakePromise()
423
398
 
424
399
  module.changeLanguage("abc", promise)
425
400
 
426
401
  verify(exactly = 1) {
427
402
  usercentricsSDK.changeLanguage(
428
- "abc",
429
- any(),
430
- any()
403
+ "abc", any(), any()
431
404
  )
432
405
  }
433
406
 
@@ -438,15 +411,13 @@ class RNUsercentricsModuleTest {
438
411
  fun testChangeLanguageWithError() {
439
412
  val error = mockk<UsercentricsError>(relaxed = true)
440
413
  val usercentricsSDK = mockk<UsercentricsSDK>()
441
- every { usercentricsSDK.changeLanguage(any(), any(), any()) }
442
- .answers {
443
- (arg(2) as (UsercentricsError) -> Unit)(error)
444
- }
414
+ every { usercentricsSDK.changeLanguage(any(), any(), any()) }.answers {
415
+ (arg(2) as (UsercentricsError) -> Unit)(error)
416
+ }
445
417
 
446
418
  val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
447
419
  val contextMock = mockk<ReactApplicationContext>(relaxed = true)
448
- val module =
449
- RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
420
+ val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
450
421
  val promise = FakePromise()
451
422
 
452
423
  module.changeLanguage("abc", promise)
@@ -454,9 +425,7 @@ class RNUsercentricsModuleTest {
454
425
 
455
426
  verify(exactly = 1) {
456
427
  usercentricsSDK.changeLanguage(
457
- "abc",
458
- any(),
459
- any()
428
+ "abc", any(), any()
460
429
  )
461
430
  }
462
431
  assertEquals(error, promise.rejectThrowable)
@@ -467,15 +436,13 @@ class RNUsercentricsModuleTest {
467
436
  val usercentricsSDK = mockk<UsercentricsSDK>()
468
437
  every {
469
438
  usercentricsSDK.acceptAllForTCF(
470
- any(),
471
- any()
439
+ any(), any()
472
440
  )
473
441
  }.returns(GetConsentsMock.fakeWithData)
474
442
 
475
443
  val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
476
444
  val contextMock = mockk<ReactApplicationContext>(relaxed = true)
477
- val module =
478
- RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
445
+ val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
479
446
 
480
447
  val promise = FakePromise()
481
448
  module.acceptAllForTCF(0, 0, promise)
@@ -496,15 +463,13 @@ class RNUsercentricsModuleTest {
496
463
  val usercentricsSDK = mockk<UsercentricsSDK>()
497
464
  every {
498
465
  usercentricsSDK.denyAllForTCF(
499
- any(),
500
- any()
466
+ any(), any()
501
467
  )
502
468
  }.returns(GetConsentsMock.fakeWithData)
503
469
 
504
470
  val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
505
471
  val contextMock = mockk<ReactApplicationContext>(relaxed = true)
506
- val module =
507
- RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
472
+ val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
508
473
 
509
474
  val promise = FakePromise()
510
475
  module.denyAllForTCF(0, 0, promise)
@@ -531,8 +496,7 @@ class RNUsercentricsModuleTest {
531
496
 
532
497
  val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
533
498
  val contextMock = mockk<ReactApplicationContext>(relaxed = true)
534
- val module =
535
- RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
499
+ val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
536
500
 
537
501
  val promise = FakePromise()
538
502
  module.acceptAll(0, promise)
@@ -553,8 +517,7 @@ class RNUsercentricsModuleTest {
553
517
 
554
518
  val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
555
519
  val contextMock = mockk<ReactApplicationContext>(relaxed = true)
556
- val module =
557
- RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
520
+ val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
558
521
 
559
522
  val promise = FakePromise()
560
523
  module.denyAll(0, promise)
@@ -569,15 +532,13 @@ class RNUsercentricsModuleTest {
569
532
  val usercentricsSDK = mockk<UsercentricsSDK>()
570
533
  every {
571
534
  usercentricsSDK.saveDecisions(
572
- any(),
573
- any()
535
+ any(), any()
574
536
  )
575
537
  }.returns(GetConsentsMock.fakeWithData)
576
538
 
577
539
  val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
578
540
  val contextMock = mockk<ReactApplicationContext>(relaxed = true)
579
- val module =
580
- RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
541
+ val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
581
542
 
582
543
  val promise = FakePromise()
583
544
  module.saveDecisions(SaveDecisionsMock.callDecisions.serialize(), 0, promise)
@@ -591,30 +552,23 @@ class RNUsercentricsModuleTest {
591
552
  fun testSaveDecisionsForTCF() {
592
553
  val usercentricsSDK = mockk<UsercentricsSDK>()
593
554
  every {
594
- usercentricsSDK.saveDecisionsForTCF(
595
- any(),
596
- any(),
597
- any(),
598
- any()
599
- )
555
+ usercentricsSDK.saveDecisionsForTCF(any(), any(), any(), any())
600
556
  }.returns(SaveDecisionsForTCFMock.fake)
601
557
 
602
558
  val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
603
559
  val contextMock = mockk<ReactApplicationContext>(relaxed = true)
604
- val module =
605
- RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
560
+ val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
606
561
 
607
562
  val promise = FakePromise()
608
563
  module.saveDecisionsForTCF(
609
- SaveDecisionsForTCFMock.call,
610
- 0,
611
- SaveDecisionsMock.callDecisions.serialize(),
612
- 0,
613
- promise
564
+ tcfDecisions = SaveDecisionsForTCFMock.call,
565
+ fromLayer = 0,
566
+ saveDecisions = SaveDecisionsMock.callDecisions.serialize(),
567
+ consentType = 0,
568
+ promise = promise
614
569
  )
615
570
 
616
571
  val result = promise.resolveValue as WritableArray
617
-
618
572
  assertEquals(SaveDecisionsForTCFMock.expected.serialize(), result)
619
573
  }
620
574
 
@@ -629,14 +583,11 @@ class RNUsercentricsModuleTest {
629
583
 
630
584
  val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
631
585
  val contextMock = mockk<ReactApplicationContext>(relaxed = true)
632
- val module =
633
- RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
586
+ val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
634
587
 
635
588
  val promise = FakePromise()
636
589
  module.saveOptOutForCCPA(
637
- false,
638
- 0,
639
- promise
590
+ false, 0, promise
640
591
  )
641
592
 
642
593
  val result = promise.resolveValue as WritableArray
@@ -655,8 +606,7 @@ class RNUsercentricsModuleTest {
655
606
 
656
607
  val usercentricsProxy = FakeUsercentricsProxy(usercentricsSdk)
657
608
  val contextMock = mockk<ReactApplicationContext>(relaxed = true)
658
- val module =
659
- RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
609
+ val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
660
610
 
661
611
  module.track(UsercentricsAnalyticsEventType.ACCEPT_ALL_FIRST_LAYER.ordinal)
662
612
 
@@ -668,8 +618,7 @@ class RNUsercentricsModuleTest {
668
618
  fun testResetMethod() {
669
619
  val usercentricsProxy = FakeUsercentricsProxy()
670
620
  val contextMock = mockk<ReactApplicationContext>(relaxed = true)
671
- val module =
672
- RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
621
+ val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
673
622
 
674
623
  module.reset()
675
624
 
@@ -680,8 +629,7 @@ class RNUsercentricsModuleTest {
680
629
  fun testShowFirstLayer() {
681
630
  val usercentricsProxy = FakeUsercentricsProxy()
682
631
  val contextMock = mockk<ReactApplicationContext>(relaxed = true)
683
- val module =
684
- RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
632
+ val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
685
633
  val promise = FakePromise()
686
634
  module.showFirstLayer(bannerSettingsMap.toWritableMap(), promise)
687
635
  promise.await()
@@ -692,8 +640,7 @@ class RNUsercentricsModuleTest {
692
640
  fun testShowSecondLayer() {
693
641
  val usercentricsProxy = FakeUsercentricsProxy()
694
642
  val contextMock = mockk<ReactApplicationContext>(relaxed = true)
695
- val module =
696
- RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
643
+ val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
697
644
  val promise = FakePromise()
698
645
  module.showSecondLayer(bannerSettingsMap.toWritableMap(), promise)
699
646
  promise.await()
@@ -713,9 +660,7 @@ class RNUsercentricsModuleTest {
713
660
  val usercentricsProxy = FakeUsercentricsProxy()
714
661
  val reactApplicationContext = mockk<ReactApplicationContext>(relaxed = true)
715
662
  val module = RNUsercentricsModule(
716
- reactApplicationContext,
717
- usercentricsProxy,
718
- reactContextProviderMock
663
+ reactApplicationContext, usercentricsProxy, reactContextProviderMock
719
664
  )
720
665
 
721
666
  val bannerSettingsMap = mapOf(
@@ -737,16 +682,13 @@ class RNUsercentricsModuleTest {
737
682
  module.showFirstLayer(bannerSettingsMap.toWritableMap(), promise)
738
683
  promise.await()
739
684
 
740
- val someLocalImageDrawableId =
741
- context.resources.getIdentifier("some_local_image", "drawable", context.packageName)
685
+ val someLocalImageDrawableId = context.resources.getIdentifier("some_local_image", "drawable", context.packageName)
742
686
  val expectedBannerSettings = BannerSettings(
743
687
  firstLayerStyleSettings = FirstLayerStyleSettings(
744
688
  layout = UsercentricsLayout.Popup(
745
689
  PopupPosition.CENTER
746
690
  )
747
- ),
748
- secondLayerStyleSettings = SecondLayerStyleSettings(showCloseButton = true),
749
- generalStyleSettings = GeneralStyleSettings(
691
+ ), secondLayerStyleSettings = SecondLayerStyleSettings(showCloseButton = true), generalStyleSettings = GeneralStyleSettings(
750
692
  logo = UsercentricsImage.ImageDrawableId(someLocalImageDrawableId)
751
693
  )
752
694
  )
@@ -757,8 +699,7 @@ class RNUsercentricsModuleTest {
757
699
  fun testShowFirstLayerWhenShowCloseButtonIsNull() {
758
700
  val usercentricsProxy = FakeUsercentricsProxy()
759
701
  val contextMock = mockk<ReactApplicationContext>(relaxed = true)
760
- val module =
761
- RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
702
+ val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
762
703
  val bannerSettingsMap = mapOf(
763
704
  "secondLayerStyleSettings" to mapOf(
764
705
  "showCloseButton" to null
@@ -776,4 +717,24 @@ class RNUsercentricsModuleTest {
776
717
 
777
718
  assertEquals(expectedBannerSettings, usercentricsProxy.showFirstLayerBannerSettings)
778
719
  }
720
+
721
+ @Test
722
+ fun testGetAdditionalConsentModeData() {
723
+ val usercentricsSDK = mockk<UsercentricsSDK>()
724
+ every { usercentricsSDK.getAdditionalConsentModeData() }.answers {
725
+ GetCMPDataMock.fakeAdditionalConsentModeData
726
+ }
727
+
728
+ val usercentricsProxy = FakeUsercentricsProxy(usercentricsSDK)
729
+ val contextMock = mockk<ReactApplicationContext>(relaxed = true)
730
+ val module = RNUsercentricsModule(contextMock, usercentricsProxy, ReactContextProviderMock())
731
+ val promise = FakePromise()
732
+
733
+ module.getAdditionalConsentModeData(promise)
734
+
735
+ val result = promise.resolveValue
736
+
737
+ verify(exactly = 1) { usercentricsSDK.getAdditionalConsentModeData() }
738
+ assertEquals(GetCMPDataMock.expectedAdditionalConsentModeData.toWritableMap(), result)
739
+ }
779
740
  }