diff --git a/src/test/groovy/org/prebid/server/functional/tests/ImpRequestSpec.groovy b/src/test/groovy/org/prebid/server/functional/tests/ImpRequestSpec.groovy index 4cc3b728449..7a2f5923d56 100644 --- a/src/test/groovy/org/prebid/server/functional/tests/ImpRequestSpec.groovy +++ b/src/test/groovy/org/prebid/server/functional/tests/ImpRequestSpec.groovy @@ -19,6 +19,7 @@ import static org.prebid.server.functional.model.bidder.BidderName.OPENX import static org.prebid.server.functional.model.bidder.BidderName.RUBICON import static org.prebid.server.functional.model.bidder.BidderName.UNKNOWN import static org.prebid.server.functional.model.bidder.BidderName.WILDCARD +import static org.prebid.server.functional.model.bidder.BidderName.GENER_X import static org.prebid.server.functional.model.response.auction.ErrorType.PREBID import static org.prebid.server.functional.testcontainers.Dependencies.getNetworkServiceContainer @@ -131,6 +132,42 @@ class ImpRequestSpec extends BaseSpec { ALIAS_CAMEL_CASE | GENERIC_CAMEL_CASE } + def "PBS should update imp fields only for specific alias when request has multiple aliases"() { + given: "Default basic BidRequest" + def storedPmp = Pmp.defaultPmp + def originalPmp = Pmp.defaultPmp + def bidRequest = BidRequest.defaultBidRequest.tap { + imp.first.tap { + pmp = originalPmp + ext.prebid.imp = [(aliasName): new Imp(pmp: storedPmp)] + ext.prebid.bidder.generic = null + ext.prebid.bidder.generX = new Generic() + ext.prebid.bidder.alias = new Generic() + } + ext.prebid.aliases = [(GENER_X.value) : bidderName, + (aliasName.value): bidderName, + ] + } + + when: "Requesting PBS auction" + def response = defaultPbsService.sendAuctionRequest(bidRequest) + + then: "BidderRequest should update imp information for specific alias" + def bidderRequests = getRequests(response) + assert bidderRequests.size() == 2 + assert bidderRequests[ALIAS.value].imp.pmp.flatten() == [storedPmp] + + and: "Left original information for other" + assert bidderRequests[GENER_X.value].imp.pmp.flatten() == [originalPmp] + + where: + aliasName | bidderName + ALIAS | GENERIC + ALIAS_CAMEL_CASE | GENERIC + ALIAS | GENERIC_CAMEL_CASE + ALIAS_CAMEL_CASE | GENERIC_CAMEL_CASE + } + def "PBS shouldn't update imp fields when imp.ext.prebid.imp contain only bidder with invalid name"() { given: "Default basic BidRequest" def impPmp = Pmp.defaultPmp diff --git a/src/test/groovy/org/prebid/server/functional/tests/privacy/GdprSetUidSpec.groovy b/src/test/groovy/org/prebid/server/functional/tests/privacy/GdprSetUidSpec.groovy index fa4c833baf2..df46f493775 100644 --- a/src/test/groovy/org/prebid/server/functional/tests/privacy/GdprSetUidSpec.groovy +++ b/src/test/groovy/org/prebid/server/functional/tests/privacy/GdprSetUidSpec.groovy @@ -58,7 +58,7 @@ class GdprSetUidSpec extends PrivacyBaseSpec { .build() } - and: "Default uids cookie with gener_x bidder" + and: "Default uids cookie with generic bidder" def uidsCookie = UidsCookie.defaultUidsCookie.tap { it.tempUIDs = [(GENERIC): defaultUidWithExpiry] }