@@ -16,13 +16,17 @@ import org.prebid.server.functional.util.PBSUtils
1616import static org.prebid.server.functional.model.bidder.BidderName.ALIAS
1717import static org.prebid.server.functional.model.bidder.BidderName.GENERIC
1818import static org.prebid.server.functional.model.bidder.BidderName.OPENX
19+ import static org.prebid.server.functional.model.bidder.BidderName.UNKNOWN
1920import static org.prebid.server.functional.model.bidder.BidderName.WILDCARD
21+ import static org.prebid.server.functional.model.request.auction.DebugCondition.DISABLED
22+ import static org.prebid.server.functional.model.request.auction.DebugCondition.ENABLED
2023import static org.prebid.server.functional.model.response.auction.ErrorType.PREBID
2124import static org.prebid.server.functional.testcontainers.Dependencies.getNetworkServiceContainer
2225
2326class EidsSpec extends BaseSpec {
2427
2528 private static final String EMPTY_STRING = " "
29+ private static final String RANDOM_SOURCE_ID = PBSUtils . randomString
2630
2731 def " PBS shouldn't populate user.id from user.ext data" () {
2832 given : " Default basic BidRequest with generic bidder"
@@ -91,6 +95,68 @@ class EidsSpec extends BaseSpec {
9195 assert ! bidderRequest. user. eids
9296 }
9397
98+ def " PBS eids shouldn't include warning for unknown bidder when test and debug disabled" () {
99+ given : " Default bid request with generic bidder"
100+ def bidRequest = BidRequest . defaultBidRequest. tap {
101+ user = requestUser
102+ ext. prebid. data = new ExtRequestPrebidData (eidpermissions : [new EidPermission (source : RANDOM_SOURCE_ID , bidders : [UNKNOWN ])])
103+ it. ext. prebid. debug = DISABLED
104+ it. test = DISABLED
105+ }
106+
107+ when : " PBS processes auction request"
108+ def bidResponse = defaultPbsService. sendAuctionRequest(bidRequest)
109+
110+ then : " Bidder request shouldn't contain requested eids"
111+ def bidderRequest = bidder. getBidderRequest(bidRequest. id)
112+ assert ! bidderRequest. user. eids
113+
114+ and : " Bid response shouldn't contain warning"
115+ assert ! bidResponse. ext. warnings
116+
117+ where :
118+ requestUser << [new User (eids : [Eid . getDefaultEid(RANDOM_SOURCE_ID )]),
119+ new User (ext : new UserExt (eids : [Eid . getDefaultEid(RANDOM_SOURCE_ID )])),
120+ new User (eids : [Eid . getDefaultEid(RANDOM_SOURCE_ID )],
121+ ext : new UserExt (eids : [Eid . getDefaultEid(RANDOM_SOURCE_ID )]))]
122+ }
123+
124+ def " PBS eids should include warning for unknown bidder when request in debug mode" () {
125+ given : " Default bid request with generic bidder"
126+ def bidRequest = BidRequest . defaultBidRequest. tap {
127+ user = requestUser
128+ ext. prebid. data = new ExtRequestPrebidData (eidpermissions : [new EidPermission (source : RANDOM_SOURCE_ID , bidders : [UNKNOWN ])])
129+ it. ext. prebid. debug = debug
130+ it. test = test
131+ }
132+
133+ when : " PBS processes auction request"
134+ def bidResponse = defaultPbsService. sendAuctionRequest(bidRequest)
135+
136+ then : " Bidder request shouldn't contain requested eids"
137+ def bidderRequest = bidder. getBidderRequest(bidRequest. id)
138+ assert ! bidderRequest. user. eids
139+
140+ and : " Bid response should contain warning"
141+ assert bidResponse. ext. warnings[PREBID ]?. code == [999 ]
142+ assert bidResponse. ext. warnings[PREBID ]?. message ==
143+ [" request.ext.prebid.data.eidPermissions[].bidders[] unrecognized biddercode: '$UNKNOWN '" ]
144+
145+ where :
146+ debug | test | requestUser
147+ DISABLED | ENABLED | new User (eids : [Eid . getDefaultEid(RANDOM_SOURCE_ID )])
148+ DISABLED | ENABLED | new User (ext : new UserExt (eids : [Eid . getDefaultEid(RANDOM_SOURCE_ID )]))
149+ DISABLED | ENABLED | new User (eids : [Eid . getDefaultEid(RANDOM_SOURCE_ID )], ext : new UserExt (eids : [Eid . getDefaultEid(RANDOM_SOURCE_ID )]))
150+
151+ ENABLED | DISABLED | new User (eids : [Eid . getDefaultEid(RANDOM_SOURCE_ID )])
152+ ENABLED | DISABLED | new User (ext : new UserExt (eids : [Eid . getDefaultEid(RANDOM_SOURCE_ID )]))
153+ ENABLED | DISABLED | new User (eids : [Eid . getDefaultEid(RANDOM_SOURCE_ID )], ext : new UserExt (eids : [Eid . getDefaultEid(RANDOM_SOURCE_ID )]))
154+
155+ ENABLED | ENABLED | new User (eids : [Eid . getDefaultEid(RANDOM_SOURCE_ID )])
156+ ENABLED | ENABLED | new User (ext : new UserExt (eids : [Eid . getDefaultEid(RANDOM_SOURCE_ID )]))
157+ ENABLED | ENABLED | new User (eids : [Eid . getDefaultEid(RANDOM_SOURCE_ID )], ext : new UserExt (eids : [Eid . getDefaultEid(RANDOM_SOURCE_ID )]))
158+ }
159+
94160 def " PBs eid permissions should affect only specified on source" () {
95161 given : " PBs with openx bidder"
96162 def pbsService = pbsServiceFactory. getService(
0 commit comments