@@ -4,9 +4,12 @@ import org.prebid.server.functional.model.db.StoredRequest
44import org.prebid.server.functional.model.db.StoredResponse
55import org.prebid.server.functional.model.request.amp.AmpRequest
66import org.prebid.server.functional.model.request.auction.BidRequest
7+ import org.prebid.server.functional.model.request.auction.ConsentedProvidersSettings
78import org.prebid.server.functional.model.request.auction.DistributionChannel
89import org.prebid.server.functional.model.request.auction.Site
910import org.prebid.server.functional.model.request.auction.StoredAuctionResponse
11+ import org.prebid.server.functional.model.request.auction.User
12+ import org.prebid.server.functional.model.request.auction.UserExt
1013import org.prebid.server.functional.model.response.auction.SeatBid
1114import org.prebid.server.functional.service.PrebidServerException
1215import org.prebid.server.functional.util.PBSUtils
@@ -56,7 +59,7 @@ class AmpSpec extends BaseSpec {
5659 assert exception. responseBody == " Invalid request format: request.${ channel.value.toLowerCase()} must not exist in AMP stored requests."
5760
5861 where :
59- channel << [DistributionChannel . APP , DistributionChannel . DOOH ]
62+ channel << [DistributionChannel . APP , DistributionChannel . DOOH ]
6063 }
6164
6265 def " PBS should return info from the stored response when it's defined in the stored request" () {
@@ -189,7 +192,36 @@ class AmpSpec extends BaseSpec {
189192 }
190193
191194 and : " Save storedRequest into DB"
192- def ampStoredRequest = BidRequest . defaultBidRequest
195+ def ampStoredRequest = BidRequest . defaultBidRequest. tap {
196+ user = new User (ext : new UserExt (
197+ consentedProvidersSettingsKebabCase : new ConsentedProvidersSettings (consentedProviders : PBSUtils . randomString),
198+ consentedProvidersSettings : new ConsentedProvidersSettings (consentedProviders : PBSUtils . randomString)))
199+ }
200+ def storedRequest = StoredRequest . getStoredRequest(ampRequest, ampStoredRequest)
201+ storedRequestDao. save(storedRequest)
202+
203+ when : " PBS processes amp request"
204+ defaultPbsService. sendAmpRequest(ampRequest)
205+
206+ then : " Bidder request should contain addtl consent"
207+ def bidderRequest = bidder. getBidderRequest(ampStoredRequest. id)
208+ assert bidderRequest. user. ext. consentedProvidersSettingsKebabCase. consentedProviders == randomAddtlConsent
209+ assert bidderRequest. user. ext. consentedProvidersSettings. consentedProviders == randomAddtlConsent
210+ }
211+
212+ def " PBS should pass addtl_consent to user.ext.ConsentedProvidersSettings.consented_providers" () {
213+ given : " Default amp request with addtlConsent"
214+ def randomAddtlConsent = PBSUtils . randomString
215+ def ampRequest = AmpRequest . defaultAmpRequest. tap {
216+ addtlConsent = randomAddtlConsent
217+ }
218+
219+ and : " Save storedRequest into DB"
220+ def ampStoredRequest = BidRequest . defaultBidRequest. tap {
221+ user = new User (ext : new UserExt (
222+ consentedProvidersSettingsKebabCase : new ConsentedProvidersSettings (consentedProviders : PBSUtils . randomString),
223+ consentedProvidersSettings : new ConsentedProvidersSettings (consentedProviders : PBSUtils . randomString)))
224+ }
193225 def storedRequest = StoredRequest . getStoredRequest(ampRequest, ampStoredRequest)
194226 storedRequestDao. save(storedRequest)
195227
@@ -198,6 +230,7 @@ class AmpSpec extends BaseSpec {
198230
199231 then : " Bidder request should contain addtl consent"
200232 def bidderRequest = bidder. getBidderRequest(ampStoredRequest. id)
233+ assert bidderRequest. user. ext. consentedProvidersSettingsKebabCase. consentedProviders == randomAddtlConsent
201234 assert bidderRequest. user. ext. consentedProvidersSettings. consentedProviders == randomAddtlConsent
202235 }
203236
@@ -208,7 +241,35 @@ class AmpSpec extends BaseSpec {
208241 }
209242
210243 and : " Save storedRequest into DB"
211- def ampStoredRequest = BidRequest . defaultBidRequest
244+ def ampStoredRequest = BidRequest . defaultBidRequest. tap {
245+ user = new User (ext : new UserExt (
246+ consentedProvidersSettingsKebabCase : new ConsentedProvidersSettings (consentedProviders : PBSUtils . randomString),
247+ consentedProvidersSettings : new ConsentedProvidersSettings (consentedProviders : PBSUtils . randomString)))
248+ }
249+ def storedRequest = StoredRequest . getStoredRequest(ampRequest, ampStoredRequest)
250+ storedRequestDao. save(storedRequest)
251+
252+ when : " PBS processes amp request"
253+ defaultPbsService. sendAmpRequest(ampRequest)
254+
255+ then : " Bidder request shouldn't contain addtl consent"
256+ def bidderRequest = bidder. getBidderRequest(ampStoredRequest. id)
257+ assert ! bidderRequest. user. ext. consentedProvidersSettings. consentedProviders
258+ assert ! bidderRequest. user. ext. consentedProvidersSettingsKebabCase. consentedProviders
259+ }
260+
261+ def " PBS shouldn't pass addtl_consent to user.ext.ConsentedProvidersSettings.consented_providers when addtl_consent not specified" () {
262+ given : " Default amp request without addtl_consent"
263+ def ampRequest = AmpRequest . defaultAmpRequest. tap {
264+ addtlConsent = null
265+ }
266+
267+ and : " Save storedRequest into DB"
268+ def ampStoredRequest = BidRequest . defaultBidRequest. tap {
269+ user = new User (ext : new UserExt (
270+ consentedProvidersSettingsKebabCase : new ConsentedProvidersSettings (consentedProviders : PBSUtils . randomString),
271+ consentedProvidersSettings : new ConsentedProvidersSettings (consentedProviders : PBSUtils . randomString)))
272+ }
212273 def storedRequest = StoredRequest . getStoredRequest(ampRequest, ampStoredRequest)
213274 storedRequestDao. save(storedRequest)
214275
@@ -218,5 +279,6 @@ class AmpSpec extends BaseSpec {
218279 then : " Bidder request shouldn't contain addtl consent"
219280 def bidderRequest = bidder. getBidderRequest(ampStoredRequest. id)
220281 assert ! bidderRequest. user. ext. consentedProvidersSettings. consentedProviders
282+ assert ! bidderRequest. user. ext. consentedProvidersSettingsKebabCase. consentedProviders
221283 }
222284}
0 commit comments