From bc99460b6e572247ef3940f00daafcf34539b910 Mon Sep 17 00:00:00 2001 From: osulzhenko Date: Thu, 18 Sep 2025 20:22:50 +0300 Subject: [PATCH 1/3] Test: Bidder Specific Imp Level Params Should Apply to a Specific Alias --- .../model/response/auction/ErrorType.groovy | 1 + .../functional/tests/ImpRequestSpec.groovy | 38 +++++++++++++++++++ .../tests/privacy/GdprSetUidSpec.groovy | 2 +- 3 files changed, 40 insertions(+), 1 deletion(-) diff --git a/src/test/groovy/org/prebid/server/functional/model/response/auction/ErrorType.groovy b/src/test/groovy/org/prebid/server/functional/model/response/auction/ErrorType.groovy index 80f504a05ec..1405609f69d 100644 --- a/src/test/groovy/org/prebid/server/functional/model/response/auction/ErrorType.groovy +++ b/src/test/groovy/org/prebid/server/functional/model/response/auction/ErrorType.groovy @@ -6,6 +6,7 @@ enum ErrorType { GENERAL("general"), GENERIC("generic"), + GENER_X("gener_x"), GENERIC_CAMEL_CASE("GeNerIc"), RUBICON("rubicon"), APPNEXUS("appnexus"), 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..d1b0ba92d14 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.response.auction.ErrorType.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,43 @@ class ImpRequestSpec extends BaseSpec { ALIAS_CAMEL_CASE | GENERIC_CAMEL_CASE } + def "PBS should update imp fields when imp.ext.prebid.imp contain bidder alias information2"() { + given: "Default basic BidRequest" + def storedPmp = Pmp.defaultPmp + def originalPmp = Pmp.defaultPmp + def bidRequest = BidRequest.defaultBidRequest.tap { + imp.first.tap { + bidFloor = 15 + 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[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] } From 96711772b15e2d55e2148088078397b3d0716c2d Mon Sep 17 00:00:00 2001 From: osulzhenko Date: Thu, 18 Sep 2025 20:33:33 +0300 Subject: [PATCH 2/3] fix naming --- .../org/prebid/server/functional/tests/ImpRequestSpec.groovy | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) 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 d1b0ba92d14..db356b758cb 100644 --- a/src/test/groovy/org/prebid/server/functional/tests/ImpRequestSpec.groovy +++ b/src/test/groovy/org/prebid/server/functional/tests/ImpRequestSpec.groovy @@ -132,7 +132,7 @@ class ImpRequestSpec extends BaseSpec { ALIAS_CAMEL_CASE | GENERIC_CAMEL_CASE } - def "PBS should update imp fields when imp.ext.prebid.imp contain bidder alias information2"() { + 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 @@ -160,7 +160,6 @@ class ImpRequestSpec extends BaseSpec { and: "Left original information for other" assert bidderRequests[GENER_X.value].imp.pmp.flatten() == [originalPmp] - where: aliasName | bidderName ALIAS | GENERIC From 61ccdfda50753625568e67b6c0b3f3d5f0e3d339 Mon Sep 17 00:00:00 2001 From: osulzhenko Date: Fri, 26 Sep 2025 18:51:47 +0300 Subject: [PATCH 3/3] Update after review --- .../functional/model/response/auction/ErrorType.groovy | 1 - .../prebid/server/functional/tests/ImpRequestSpec.groovy | 6 +++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/test/groovy/org/prebid/server/functional/model/response/auction/ErrorType.groovy b/src/test/groovy/org/prebid/server/functional/model/response/auction/ErrorType.groovy index 1405609f69d..80f504a05ec 100644 --- a/src/test/groovy/org/prebid/server/functional/model/response/auction/ErrorType.groovy +++ b/src/test/groovy/org/prebid/server/functional/model/response/auction/ErrorType.groovy @@ -6,7 +6,6 @@ enum ErrorType { GENERAL("general"), GENERIC("generic"), - GENER_X("gener_x"), GENERIC_CAMEL_CASE("GeNerIc"), RUBICON("rubicon"), APPNEXUS("appnexus"), 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 db356b758cb..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,7 +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.response.auction.ErrorType.GENER_X +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 @@ -138,14 +138,13 @@ class ImpRequestSpec extends BaseSpec { def originalPmp = Pmp.defaultPmp def bidRequest = BidRequest.defaultBidRequest.tap { imp.first.tap { - bidFloor = 15 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, + ext.prebid.aliases = [(GENER_X.value) : bidderName, (aliasName.value): bidderName, ] } @@ -155,6 +154,7 @@ class ImpRequestSpec extends BaseSpec { 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"