Skip to content

Commit f55bd7b

Browse files
committed
Update after review
1 parent 15cdd97 commit f55bd7b

2 files changed

Lines changed: 118 additions & 4 deletions

File tree

src/test/groovy/org/prebid/server/functional/tests/BidderFieldDisplayBehaviorSpec.groovy

Lines changed: 118 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,14 @@ import org.prebid.server.functional.model.config.AlternateBidderCodes
66
import org.prebid.server.functional.model.request.Channel
77
import org.prebid.server.functional.model.request.amp.AmpRequest
88
import org.prebid.server.functional.model.request.auction.AdServerTargeting
9+
import org.prebid.server.functional.model.request.auction.AdjustmentRule
910
import org.prebid.server.functional.model.request.auction.Amp
1011
import org.prebid.server.functional.model.request.auction.AppExt
1112
import org.prebid.server.functional.model.request.auction.AppExtData
1213
import org.prebid.server.functional.model.request.auction.AppPrebid
14+
import org.prebid.server.functional.model.request.auction.BidAdjustment
15+
import org.prebid.server.functional.model.request.auction.BidAdjustmentFactors
16+
import org.prebid.server.functional.model.request.auction.BidAdjustmentRule
1317
import org.prebid.server.functional.model.request.auction.BidRequest
1418
import org.prebid.server.functional.model.request.auction.BidderConfig
1519
import org.prebid.server.functional.model.request.auction.BidderConfigOrtb
@@ -22,6 +26,7 @@ import org.prebid.server.functional.model.request.auction.EidPermission
2226
import org.prebid.server.functional.model.request.auction.ExtPrebidBidderConfig
2327
import org.prebid.server.functional.model.request.auction.ExtRequestPrebidData
2428
import org.prebid.server.functional.model.request.auction.Interstitial
29+
import org.prebid.server.functional.model.request.auction.MultiBid
2530
import org.prebid.server.functional.model.request.auction.PaaFormat
2631
import org.prebid.server.functional.model.request.auction.PrebidCache
2732
import org.prebid.server.functional.model.request.auction.DevicePrebid
@@ -40,16 +45,41 @@ import org.prebid.server.functional.model.response.auction.BidResponse
4045
import org.prebid.server.functional.util.PBSUtils
4146

4247
import static org.prebid.server.functional.model.ChannelType.WEB
48+
import static org.prebid.server.functional.model.Currency.USD
49+
import static org.prebid.server.functional.model.bidder.BidderName.OPENX
4350
import static org.prebid.server.functional.model.bidder.BidderName.RUBICON
4451
import static org.prebid.server.functional.model.mock.services.currencyconversion.CurrencyConversionRatesResponse.defaultConversionRates
52+
import static org.prebid.server.functional.model.request.auction.AdjustmentType.MULTIPLIER
53+
import static org.prebid.server.functional.model.request.auction.BidAdjustmentMediaType.BANNER
4554
import static org.prebid.server.functional.model.request.auction.DebugCondition.ENABLED
4655
import static org.prebid.server.functional.model.request.auction.DistributionChannel.APP
4756
import static org.prebid.server.functional.model.request.auction.DistributionChannel.DOOH
57+
import static org.prebid.server.functional.model.request.auction.DistributionChannel.SITE
4858
import static org.prebid.server.functional.model.request.auction.TraceLevel.BASIC
4959
import static org.prebid.server.functional.model.response.auction.ErrorType.GENERIC
60+
import static org.prebid.server.functional.util.PBSUtils.getRandomDecimal
61+
import static org.prebid.server.functional.util.PBSUtils.roundDecimal
5062

5163
class BidderFieldDisplayBehaviorSpec extends BaseSpec {
5264

65+
def "PBS should pass ext.prebid.createTids to bidder request"() {
66+
given: "Default bid request"
67+
def bidRequest = BidRequest.defaultBidRequest.tap {
68+
ext.prebid.createTids = PBSUtils.randomBoolean
69+
}
70+
71+
and: "Default bid response"
72+
def bidResponse = BidResponse.getDefaultBidResponse(bidRequest)
73+
bidder.setResponse(bidRequest.id, bidResponse)
74+
75+
when: "PBS processes auction request"
76+
defaultPbsService.sendAuctionRequest(bidRequest)
77+
78+
then: "Bidder request should contain createTids"
79+
def bidderRequest = bidder.getBidderRequest(bidRequest.id)
80+
assert bidderRequest.ext.prebid.createTids == bidRequest.ext.prebid.createTids
81+
}
82+
5383
def "PBS shouldn't pass ext.prebid.returnAllBidStatus to bidder request"() {
5484
given: "Default basic bid request"
5585
def bidRequest = BidRequest.defaultBidRequest.tap {
@@ -364,7 +394,8 @@ class BidderFieldDisplayBehaviorSpec extends BaseSpec {
364394
def bidRequest = BidRequest.defaultBidRequest.tap {
365395
ext.prebid.alternateBidderCodes = new AlternateBidderCodes().tap {
366396
it.enabled = true
367-
it.bidders = [(BidderName.GENERIC): new org.prebid.server.functional.model.config.BidderConfig(enabled: true, allowedBidderCodes: [BidderName.GENERIC])]
397+
it.bidders = [(BidderName.GENERIC): new org.prebid.server.functional.model.config.BidderConfig(enabled: true, allowedBidderCodes: [BidderName.GENERIC]),
398+
(RUBICON) : new org.prebid.server.functional.model.config.BidderConfig(enabled: true, allowedBidderCodes: [RUBICON])]
368399
}
369400
}
370401

@@ -515,4 +546,90 @@ class BidderFieldDisplayBehaviorSpec extends BaseSpec {
515546
def bidderRequest = bidder.getBidderRequest(bidRequest.id)
516547
assert bidderRequest.dooh.ext == bidRequest.dooh.ext
517548
}
549+
550+
def "PBS should pass ext.prebid.multiBid only bidder related entity for each bidder"() {
551+
given: "Default basic BidRequest with generic bidder with includeBidderKeys = false"
552+
def bidRequest = BidRequest.defaultBidRequest
553+
554+
and: "Set maxbids = 2 for generic and rubicon bidder"
555+
def maxBids = 2
556+
def genericMultiBid = new MultiBid(bidder: BidderName.GENERIC, maxBids: maxBids, targetBidderCodePrefix: PBSUtils.randomString)
557+
def rubiconMultiBid = new MultiBid(bidder: RUBICON, maxBids: maxBids, targetBidderCodePrefix: PBSUtils.randomString)
558+
bidRequest.ext.prebid.multibid = [genericMultiBid, rubiconMultiBid]
559+
560+
and: "Default basic bid"
561+
def bidResponse = BidResponse.getDefaultBidResponse(bidRequest)
562+
563+
and: "Set bidder response"
564+
bidder.setResponse(bidRequest.id, bidResponse)
565+
566+
when: "PBS processes auction request"
567+
defaultPbsService.sendAuctionRequest(bidRequest)
568+
569+
then: "Bid request should contain requested ext.prebid.multiBid"
570+
def bidderRequest = bidder.getBidderRequest(bidRequest.id)
571+
assert bidderRequest.ext.prebid.multibid == [genericMultiBid]
572+
}
573+
574+
def "PBS should pass ext.prebid.bidAdjustment only bidder related entry for each bidder"() {
575+
given: "Default BidRequest with ext.prebid.bidAdjustments"
576+
def currency = USD
577+
def rule = new BidAdjustmentRule().tap {
578+
generic = ["*": [new AdjustmentRule(adjustmentType: MULTIPLIER, value: PBSUtils.randomPrice, currency: currency)]]
579+
openx = ["*": [new AdjustmentRule(adjustmentType: MULTIPLIER, value: PBSUtils.randomPrice, currency: currency)]]
580+
}
581+
def bidRequest = BidRequest.getDefaultBidRequest().tap {
582+
ext.prebid.bidAdjustments = BidAdjustment.getDefaultWithSingleMediaTypeRule(BANNER, rule)
583+
cur = [currency]
584+
imp.first.bidFloor = PBSUtils.randomPrice
585+
imp.first.bidFloorCur = currency
586+
}
587+
588+
and: "Default bid response"
589+
def bidResponse = BidResponse.getDefaultBidResponse(bidRequest)
590+
bidder.setResponse(bidRequest.id, bidResponse)
591+
592+
when: "PBS processes auction request"
593+
defaultPbsService.sendAuctionRequest(bidRequest)
594+
595+
then: "Bidder request should contain generic bid adjustments"
596+
def bidderRequest = bidder.getBidderRequest(bidRequest.id)
597+
assert bidderRequest.ext.prebid.bidAdjustments.version == bidRequest.ext.prebid.bidAdjustments.version
598+
assert bidderRequest.ext.prebid.bidAdjustments.mediaType[BANNER].generic == bidRequest.ext.prebid.bidAdjustments.mediaType[BANNER].generic
599+
600+
and: "Bidder request shouldn't contain openx bid adjustments"
601+
assert !bidderRequest.ext.prebid.bidAdjustments.mediaType[BANNER].openx
602+
}
603+
604+
def "PBS should pass ext.prebid.bidAdjustmentFactors only bidder related entry for each bidder"() {
605+
given: "Default bid request with bid adjustment"
606+
def bidAdjustment = roundDecimal(getRandomDecimal(), 0)
607+
def mediaTypeBidAdjustment = bidAdjustmentFactor
608+
def bidRequest = BidRequest.getDefaultBidRequest(SITE).tap {
609+
ext.prebid.bidAdjustmentFactors = new BidAdjustmentFactors().tap {
610+
adjustments = [(BidderName.GENERIC): bidAdjustment, (OPENX): bidAdjustment]
611+
mediaTypes = [(BANNER): [(BidderName.GENERIC): mediaTypeBidAdjustment],
612+
(BANNER): [(OPENX): mediaTypeBidAdjustment]]
613+
}
614+
}
615+
616+
and: "Default bid response"
617+
def bidResponse = BidResponse.getDefaultBidResponse(bidRequest)
618+
bidder.setResponse(bidRequest.id, bidResponse)
619+
620+
when: "PBS processes auction request"
621+
defaultPbsService.sendAuctionRequest(bidRequest)
622+
623+
then: "Bidder request should contain generic bid adjustment factors"
624+
def bidderRequest = bidder.getBidderRequest(bidRequest.id)
625+
assert bidderRequest.ext.prebid.bidAdjustmentFactors.adjustments[BidderName.GENERIC] == bidRequest.ext.prebid.bidAdjustmentFactors.adjustments[BidderName.GENERIC]
626+
assert bidderRequest.ext.prebid.bidAdjustmentFactors.mediaTypes[BANNER][GENERIC] == bidRequest.ext.prebid.bidAdjustmentFactors.mediaTypes[BANNER][GENERIC]
627+
628+
and: "Bidder request shouldn't contain opneX bid adjustment factors for generic call"
629+
assert bidderRequest.ext.prebid.bidAdjustmentFactors.adjustments[OPENX]
630+
assert bidderRequest.ext.prebid.bidAdjustmentFactors.mediaTypes[BANNER][OPENX]
631+
632+
where:
633+
bidAdjustmentFactor << [0.9, 1.1]
634+
}
518635
}

src/test/groovy/org/prebid/server/functional/tests/privacy/GppTransmitTidActivitiesSpec.groovy

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,6 @@ class GppTransmitTidActivitiesSpec extends PrivacyBaseSpec {
9292
bidderRequest.source.tid
9393
}
9494

95-
and: "Bidder request should contain ext.prebid.creativeTids"
96-
assert bidderRequest.ext.prebid.createTids
97-
9895
where: "Activities fields name in different case"
9996
activities << [AllowActivities.getDefaultAllowActivities(TRANSMIT_TID, Activity.getDefaultActivity([ActivityRule.getDefaultActivityRule(Condition.baseCondition, false)])),
10097
new AllowActivities().tap { transmitTidKebabCase = Activity.getDefaultActivity([ActivityRule.getDefaultActivityRule(Condition.baseCondition, false)]) },

0 commit comments

Comments
 (0)