@@ -3,18 +3,18 @@ package org.prebid.server.functional.tests
33import org.prebid.server.functional.model.bidder.BidderName
44import org.prebid.server.functional.model.bidder.Generic
55import org.prebid.server.functional.model.db.StoredRequest
6- import org.prebid.server.functional.model.mock.services.currencyconversion.CurrencyConversionRatesResponse
76import org.prebid.server.functional.model.request.Channel
87import org.prebid.server.functional.model.request.amp.AmpRequest
98import org.prebid.server.functional.model.request.auction.AdServerTargeting
109import org.prebid.server.functional.model.request.auction.Amp
10+ import org.prebid.server.functional.model.request.auction.AppExt
11+ import org.prebid.server.functional.model.request.auction.AppPrebid
1112import org.prebid.server.functional.model.request.auction.BidAdjustmentFactors
1213import org.prebid.server.functional.model.request.auction.BidAdjustmentMediaType
1314import org.prebid.server.functional.model.request.auction.BidRequest
1415import org.prebid.server.functional.model.request.auction.BidderConfig
1516import org.prebid.server.functional.model.request.auction.BidderConfigOrtb
1617import org.prebid.server.functional.model.request.auction.ConsentedProvidersSettings
17- import org.prebid.server.functional.model.request.auction.DebugCondition
1818import org.prebid.server.functional.model.request.auction.Device
1919import org.prebid.server.functional.model.request.auction.DeviceExt
2020import org.prebid.server.functional.model.request.auction.EidPermission
@@ -33,7 +33,6 @@ import org.prebid.server.functional.model.request.auction.Sdk
3333import org.prebid.server.functional.model.request.auction.Site
3434import org.prebid.server.functional.model.request.auction.SiteExt
3535import org.prebid.server.functional.model.request.auction.SiteExtData
36- import org.prebid.server.functional.model.request.auction.TraceLevel
3736import org.prebid.server.functional.model.request.auction.User
3837import org.prebid.server.functional.model.request.auction.UserExt
3938import org.prebid.server.functional.model.request.auction.UserExtPrebid
@@ -43,23 +42,23 @@ import org.prebid.server.functional.util.PBSUtils
4342import spock.lang.IgnoreRest
4443
4544import static org.prebid.server.functional.model.ChannelType.WEB
46- import static org.prebid.server.functional.model.bidder.BidderName.ALIAS
47- import static org.prebid.server.functional.model.bidder.BidderName.GENERIC
48- import static org.prebid.server.functional.model.bidder.BidderName.UNKNOWN
45+
46+ import static org.prebid.server.functional.model.bidder.BidderName.RUBICON
4947import static org.prebid.server.functional.model.mock.services.currencyconversion.CurrencyConversionRatesResponse.defaultConversionRates
5048import static org.prebid.server.functional.model.request.auction.DebugCondition.ENABLED
51- import static org.prebid.server.functional.model.request.auction.DeviceExt.Atts.*
49+ import static org.prebid.server.functional.model.request.auction.DistributionChannel.APP
5250import static org.prebid.server.functional.model.request.auction.PaaFormat.ORIGINAL
5351import static org.prebid.server.functional.model.request.auction.TraceLevel.BASIC
5452import static org.prebid.server.functional.model.response.auction.ErrorType.ALIAS
53+ import static org.prebid.server.functional.model.response.auction.ErrorType.GENERIC
5554
5655class BidderFieldDisplayBehaviorSpec extends BaseSpec {
5756
5857 // todo:ext.prebid.returnallbidstatus (boolean)
5958 // Never needed inside the adapter code
6059 // Exposes nothing because it’s a boolean
6160
62- def " PBS shouldn't send returnallbidstatus to bidder request" () {
61+ def " PBS shouldn't pass ext.prebid.returnAllBidStatus to bidder request" () {
6362 given : " Default basic bid request"
6463 def bidRequest = BidRequest . defaultBidRequest. tap {
6564 ext. prebid. returnAllBidStatus = true
@@ -80,8 +79,8 @@ class BidderFieldDisplayBehaviorSpec extends BaseSpec {
8079 // todo: ext.prebid.aliasgvlids (map)
8180 // Never needed inside the adapter code
8281
83- @IgnoreRest
84- def " PBS shouldn't pass aliasgvlids and aliases to bidder request" () {
82+
83+ def " PBS shouldn't pass aliasGvlIds to bidder request when aliasGvlIds specified " () {
8584 given : " Default basic bid request"
8685 def bidRequest = BidRequest . defaultBidRequest. tap {
8786 imp[0 ]. ext. prebid. bidder. alias = new Generic ()
@@ -109,29 +108,6 @@ class BidderFieldDisplayBehaviorSpec extends BaseSpec {
109108 // The value is taken from request/account
110109 // The rules of other bidders if any are exposed.
111110
112- def " PBS shouldn't send bid adjustment media type to bidder request" () {
113- given : " Default basic bid request"
114- def bidRequest = BidRequest . defaultBidRequest. tap {
115- ext. prebid. tap {
116- bidAdjustmentFactors = new BidAdjustmentFactors (). tap {
117- it. adjustments = [(BidderName . GENERIC ): BigDecimal . ONE ]
118- it. mediaTypes = [(BidAdjustmentMediaType . BANNER ): [(BidderName . GENERIC ): BigDecimal . ONE ]]
119- }
120- }
121- }
122-
123- and : " Default bid response"
124- def bidResponse = BidResponse . getDefaultBidResponse(bidRequest)
125- bidder. setResponse(bidRequest. id, bidResponse)
126-
127- when : " PBS processes auction request"
128- defaultPbsService. sendAuctionRequest(bidRequest)
129-
130- then : " Bidder request shouldn't contain bid adjustment factors"
131- def bidderRequest = bidder. getBidderRequest(bidRequest. id)
132- assert ! bidderRequest. ext. prebid. bidAdjustmentFactors
133- }
134-
135111 // todo: ext.prebid.adservertargeting (object)
136112 // Never needed inside the adapter code
137113
@@ -187,7 +163,7 @@ class BidderFieldDisplayBehaviorSpec extends BaseSpec {
187163 // Never needed inside the adapter code
188164 // Not sure it exposes something because it’s only about ttlseconds integers and some booleans
189165
190- @IgnoreRest
166+
191167 def " PBS shouldn't pass ext.prebid.cache to bidder request" () {
192168 given : " Default basic bid request"
193169 def bidRequest = BidRequest . defaultBidRequest. tap {
@@ -231,7 +207,7 @@ class BidderFieldDisplayBehaviorSpec extends BaseSpec {
231207
232208 // todo: ext.prebid.currency.rates (object)
233209
234- @IgnoreRest
210+
235211 def " PBS should pass ext.prebid.currency.rates to bidder request" () {
236212 given : " Default basic bid request"
237213 def bidRequest = BidRequest . defaultBidRequest. tap {
@@ -252,14 +228,13 @@ class BidderFieldDisplayBehaviorSpec extends BaseSpec {
252228 assert bidderRequest. ext. prebid. currency == bidRequest. ext. prebid. currency
253229 }
254230
255- // todo: ext.prebid.data.bidder (object)
231+ // todo: ext.prebid.data.{ bidder,eidpermissions} (object)
256232
257- @IgnoreRest
258233 def " PBS shouldn't pass ext.prebid.data.{bidders,eidpermissions} to bidder request" () {
259234 given : " Default basic bid request"
260235 def bidRequest = BidRequest . defaultBidRequest. tap {
261236 ext. prebid. data = new ExtRequestPrebidData (bidders : [GENERIC . value],
262- eidpermissions : [new EidPermission (source : PBSUtils . randomString, bidders : [GENERIC ])])
237+ eidpermissions : [new EidPermission (source : PBSUtils . randomString, bidders : [BidderName . GENERIC ])])
263238 }
264239
265240 and : " Default bid response"
@@ -275,12 +250,13 @@ class BidderFieldDisplayBehaviorSpec extends BaseSpec {
275250 assert ! bidderRequest?. ext?. prebid?. data?. eidpermissions
276251 }
277252
278- @IgnoreRest
279- def " PBS shouldn't pass ext.prebid.data. {trace,debug} to bidder request" () {
253+
254+ def " PBS should pass ext.prebid.{trace,debug,integration } to bidder request" () {
280255 given : " Default basic bid request"
281256 def bidRequest = BidRequest . defaultBidRequest. tap {
282257 ext. prebid. trace = BASIC
283258 ext. prebid. debug = ENABLED
259+ ext. prebid. integration = PBSUtils . randomString
284260 }
285261
286262 and : " Default bid response"
@@ -294,6 +270,7 @@ class BidderFieldDisplayBehaviorSpec extends BaseSpec {
294270 def bidderRequest = bidder. getBidderRequest(bidRequest. id)
295271 assert bidderRequest. ext. prebid. trace
296272 assert bidderRequest. ext. prebid. debug
273+ assert bidderRequest. ext. prebid. integration
297274 }
298275
299276 // todo: ext.prebid.events (object)
@@ -478,27 +455,6 @@ class BidderFieldDisplayBehaviorSpec extends BaseSpec {
478455 assert ! bidderRequest. ext. prebid. paaFormat
479456 }
480457
481- def " PBS should pass srid to the bidder request when srid present" () {
482- given : " Default basic BidRequest with generic bidder"
483- def bidRequest = BidRequest . defaultBidRequest. tap {
484- ext. prebid. storedRequest = new PrebidStoredRequest (id : PBSUtils . randomNumber)
485- }
486-
487- and : " Default stored request"
488- def storedRequestModel = BidRequest . defaultStoredRequest
489-
490- and : " Save storedRequest into DB"
491- def storedRequest = StoredRequest . getStoredRequest(bidRequest. ext. prebid. storedRequest. id, storedRequestModel)
492- storedRequestDao. save(storedRequest)
493-
494- when : " PBS processes auction request"
495- defaultPbsService. sendAuctionRequest(bidRequest)
496-
497- then : " Bidder request sho ext.prebid"
498- def bidderRequest = bidder. getBidderRequest(bidRequest. id)
499- assert ! bidderRequest. ext. prebid. storedRequest. id
500- }
501-
502458 // todo: user.ext
503459 // The whole object is exposed except for the prebid field
504460 // consent, eids, data fields are needed for some bidders
@@ -509,17 +465,17 @@ class BidderFieldDisplayBehaviorSpec extends BaseSpec {
509465 user = new User (ext : new UserExt (). tap {
510466 fcapids = [PBSUtils . randomString]
511467 time = new UserTime (userdow : PBSUtils . randomNumber, userhour : PBSUtils . randomNumber)
512- prebid = new UserExtPrebid (buyeruids : [(GENERIC ): PBSUtils . randomString])
468+ prebid = new UserExtPrebid (buyeruids : [(BidderName . GENERIC ): PBSUtils . randomString])
513469 consentedProvidersSettings = new ConsentedProvidersSettings (consentedProviders : PBSUtils . randomString)
514470 })
515471 }
516472
517473 when : " PBS processes auction request"
518474 defaultPbsService. sendAuctionRequest(bidRequest)
519475
520- then : " Bidder request shouldn't contain user.ext.prebid"
476+ then : " Bidder request shouldn't contain user.ext.prebid.buyeruids "
521477 def bidderRequest = bidder. getBidderRequest(bidRequest. id)
522- assert ! bidderRequest. user. ext. prebid
478+ assert ! bidderRequest. user. ext. prebid. buyeruids
523479
524480 and : " Bidder request should contain fcapid,time,consentedProvidedSettings"
525481 assert bidderRequest. user. ext. fcapids == bidRequest. user. ext. fcapids
@@ -549,13 +505,13 @@ class BidderFieldDisplayBehaviorSpec extends BaseSpec {
549505 // todo :device.ext.prebid
550506 // The whole object is exposed
551507
552- @IgnoreRest
553- def " PBS should pass device.ext.prebid" () {
508+
509+ def " PBS should pass device.ext.prebid.interstitial to bidder request when interstitial specified " () {
554510 given : " Default basic bid request with generic bidder"
555511 def bidRequest = BidRequest . defaultBidRequest. tap {
556512 device = new Device (
557513 ext : new DeviceExt (
558- atts : UNKNOWN ,
514+ atts : DeviceExt.Atts . UNKNOWN ,
559515 cdep : PBSUtils . randomString,
560516 prebid : new DevicePrebid (interstitial : new Interstitial (
561517 minHeightPercentage : PBSUtils . getRandomNumber(0 , 100 ),
@@ -573,17 +529,13 @@ class BidderFieldDisplayBehaviorSpec extends BaseSpec {
573529 // todo: ext.prebid.adservertargeting (object)
574530 // Never needed inside the adapter code
575531
576- @IgnoreRest
532+
577533 def " PBS should pass ext.prebid.auctiontimestamp to bidder request" () {
578534 given : " Default basic bid request"
579535 def bidRequest = BidRequest . defaultBidRequest. tap {
580536 ext. prebid. auctionTimestamp = PBSUtils . randomNumber
581537 }
582538
583- and : " Default bid response"
584- def bidResponse = BidResponse . getDefaultBidResponse(bidRequest)
585- bidder. setResponse(bidRequest. id, bidResponse)
586-
587539 when : " PBS processes auction request"
588540 defaultPbsService. sendAuctionRequest(bidRequest)
589541
@@ -595,11 +547,11 @@ class BidderFieldDisplayBehaviorSpec extends BaseSpec {
595547 // todo: ext.prebid.adservertargeting (object)
596548 // Never needed inside the adapter code
597549
598- @IgnoreRest
550+
599551 def " PBS shouldn't pass ext.prebid.bidderConfig to bidder request" () {
600552 given : " Default basic bid request"
601553 def bidRequest = BidRequest . defaultBidRequest. tap {
602- ext. prebid. bidderConfig = [new ExtPrebidBidderConfig (bidders : [GENERIC ], config :
554+ ext. prebid. bidderConfig = [new ExtPrebidBidderConfig (bidders : [BidderName . GENERIC ], config :
603555 new BidderConfig (ortb2 : new BidderConfigOrtb (site : Site . configFPDSite, user : User . configFPDUser)))]
604556 }
605557
@@ -614,4 +566,48 @@ class BidderFieldDisplayBehaviorSpec extends BaseSpec {
614566 def bidderRequest = bidder. getBidderRequest(bidRequest. id)
615567 assert ! bidderRequest. ext. prebid. bidderConfig
616568 }
569+
570+ def " PBS shouldn't pass bidder param to the bidder when bidder param bidder not requested" () {
571+ given : " Default bid request with populated ext.prebid.bidderParams"
572+ def bidRequest = BidRequest . defaultBidRequest. tap {
573+ ext. prebid. bidderParams = [(RUBICON . value): PBSUtils . randomString]
574+ }
575+
576+ when : " PBS processes auction request"
577+ def response = defaultPbsService. sendAuctionRequest(bidRequest)
578+
579+ then : " Response shouldn't contain error"
580+ assert ! response. ext?. errors
581+
582+ and : " Response shouldn't contain warning"
583+ assert ! response. ext?. warnings
584+
585+ and : " Bidder request shouldn't contain bidder param"
586+ def bidderRequest = bidder. getBidderRequest(bidRequest. id)
587+ assert ! bidderRequest. ext. prebid. bidderParams
588+ }
589+
590+
591+ def " PBS should pass bidder app.ext.prebid.source to the bidder whe bidder param bidder not requested" () {
592+ def bidRequest = BidRequest . getDefaultBidRequest(APP ). tap {
593+ app. ext = new AppExt (prebid : new AppPrebid (source : PBSUtils . getRandomString(), version : PBSUtils . randomString))
594+ }
595+
596+ when : " PBS processes auction request"
597+ def response = defaultPbsService. sendAuctionRequest(bidRequest)
598+
599+ then : " Response shouldn't contain error"
600+ assert ! response. ext?. errors
601+
602+ and : " Response shouldn't contain warning"
603+ assert ! response. ext?. warnings
604+
605+ and : " Bidder request should contain bidder param"
606+ def bidderRequest = bidder. getBidderRequest(bidRequest. id)
607+ assert bidderRequest. app. ext. prebid. source == bidRequest. app. ext. prebid. source
608+ }
609+ // todo : WE DON'T have such field ext.prebid.experimentadscert.enabled
610+ // Enabled Ads.Cert 2.0 Authenticated Connections on supported outgoing bidder requests.
611+ // boolean no
612+
617613}
0 commit comments