@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.
- package/CHANGELOG.md +29 -0
- package/android/build.gradle +1 -1
- package/android/src/androidTest/java/com/usercentrics/reactnativemodule/RNUsercentricsModuleTest.kt +84 -123
- package/android/src/androidTest/java/com/usercentrics/reactnativemodule/mock/GetCMPDataMock.kt +647 -499
- package/android/src/androidTest/java/com/usercentrics/reactnativemodule/mock/GetTCFDataMock.kt +14 -4
- package/android/src/androidTest/java/com/usercentrics/reactnativemodule/mock/SaveDecisionsForTCFMock.kt +7 -1
- package/android/src/main/java/com/usercentrics/reactnativeusercentrics/RNUsercentricsModule.kt +10 -1
- package/android/src/main/java/com/usercentrics/reactnativeusercentrics/extensions/ConsentDisclosureSerializer.kt +24 -0
- package/android/src/main/java/com/usercentrics/reactnativeusercentrics/extensions/TCFDataExtensions.kt +12 -4
- package/android/src/main/java/com/usercentrics/reactnativeusercentrics/extensions/UserDecisionExtensions.kt +18 -1
- package/android/src/main/java/com/usercentrics/reactnativeusercentrics/extensions/UsercentricsCMPDataExtensions.kt +85 -7
- package/ios/Extensions/TCFData+Dict.swift +14 -1
- package/ios/Extensions/TCFUserDecisions+Dict.swift +12 -1
- package/ios/Extensions/UsercentricsCMPData+Dict.swift +96 -7
- package/ios/Manager/UsercentricsManager.swift +6 -1
- package/ios/RNUsercentricsModule.m +3 -0
- package/ios/RNUsercentricsModule.swift +7 -3
- package/lib/Usercentrics.d.ts +5 -3
- package/lib/Usercentrics.js +4 -0
- package/lib/Usercentrics.js.map +1 -1
- package/lib/models/AdditionalConsentModeData.d.ts +12 -0
- package/lib/models/AdditionalConsentModeData.js +15 -0
- package/lib/models/AdditionalConsentModeData.js.map +1 -0
- package/lib/models/BannerSettings.js.map +1 -1
- package/lib/models/CCPAData.js.map +1 -1
- package/lib/models/CCPASettings.js.map +1 -1
- package/lib/models/ConsentDisclosureObject.d.ts +20 -0
- package/lib/models/ConsentDisclosureObject.js +24 -0
- package/lib/models/ConsentDisclosureObject.js.map +1 -0
- package/lib/models/FirstLayerSettings.js.map +1 -1
- package/lib/models/NetworkMode.js.map +1 -1
- package/lib/models/SecondLayerSettings.js.map +1 -1
- package/lib/models/TCF2Settings.d.ts +24 -1
- package/lib/models/TCF2Settings.js +27 -1
- package/lib/models/TCF2Settings.js.map +1 -1
- package/lib/models/TCFData.d.ts +16 -2
- package/lib/models/TCFData.js +17 -2
- package/lib/models/TCFData.js.map +1 -1
- package/lib/models/TCFDecisionUILayer.js.map +1 -1
- package/lib/models/TCFUserDecisions.d.ts +10 -4
- package/lib/models/TCFUserDecisions.js +8 -1
- package/lib/models/TCFUserDecisions.js.map +1 -1
- package/lib/models/UsercentricsAnalyticsEventType.js.map +1 -1
- package/lib/models/UsercentricsCMPData.js.map +1 -1
- package/lib/models/UsercentricsCategory.js.map +1 -1
- package/lib/models/UsercentricsConsentType.js.map +1 -1
- package/lib/models/UsercentricsConsentUserResponse.js.map +1 -1
- package/lib/models/UsercentricsLabels.d.ts +8 -1
- package/lib/models/UsercentricsLabels.js +8 -1
- package/lib/models/UsercentricsLabels.js.map +1 -1
- package/lib/models/UsercentricsLoggerLevel.js.map +1 -1
- package/lib/models/UsercentricsOptions.js.map +1 -1
- package/lib/models/UsercentricsReadyStatus.js.map +1 -1
- package/lib/models/UsercentricsService.d.ts +4 -1
- package/lib/models/UsercentricsService.js +3 -1
- package/lib/models/UsercentricsService.js.map +1 -1
- package/lib/models/UsercentricsServiceConsent.js.map +1 -1
- package/lib/models/UsercentricsSettings.d.ts +33 -4
- package/lib/models/UsercentricsSettings.js +38 -3
- package/lib/models/UsercentricsSettings.js.map +1 -1
- package/lib/models/UsercentricsUserInteraction.js.map +1 -1
- package/lib/models/UsercentricsVariant.js.map +1 -1
- 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
|
package/android/build.gradle
CHANGED
package/android/src/androidTest/java/com/usercentrics/reactnativemodule/RNUsercentricsModuleTest.kt
CHANGED
|
@@ -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
|
-
|
|
179
|
-
|
|
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
|
-
|
|
209
|
-
|
|
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
|
-
|
|
416
|
-
|
|
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
|
-
|
|
443
|
-
|
|
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
|
}
|