Skip to content

Commit

Permalink
Tests: Move privacy-related fields from extensions to their root obje…
Browse files Browse the repository at this point in the history
…cts (#2958)
  • Loading branch information
Net-burst committed Aug 27, 2024
1 parent 8102f04 commit 317621b
Show file tree
Hide file tree
Showing 18 changed files with 90 additions and 80 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ class Regs {

static Regs getDefaultRegs() {
new Regs().tap {
ext = new RegsExt(gdpr: 0)
gdpr = 0
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@ import groovy.transform.ToString
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy)
class RegsExt {

@Deprecated(since = "enabling support of ortb 2.6")
Integer gdpr
@Deprecated(since = "enabling support of ortb 2.6")
String usPrivacy
String gpc
Dsa dsa
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ class AmpSpec extends BaseSpec {

and: "Default stored request with specified: gdpr, debug"
def ampStoredRequest = BidRequest.defaultStoredRequest
ampStoredRequest.regs.ext.gdpr = 1
ampStoredRequest.regs.gdpr = 1

and: "Stored request in DB"
def storedRequest = StoredRequest.getStoredRequest(ampRequest, ampStoredRequest)
Expand Down Expand Up @@ -178,6 +178,6 @@ class AmpSpec extends BaseSpec {
assert !bidderRequest.imp[0]?.tagId
assert bidderRequest.imp[0]?.banner?.format[0]?.height == ampStoredRequest.imp[0].banner.format[0].height
assert bidderRequest.imp[0]?.banner?.format[0]?.weight == ampStoredRequest.imp[0].banner.format[0].weight
assert bidderRequest.regs?.gdpr == ampStoredRequest.regs.ext.gdpr
assert bidderRequest.regs?.gdpr == ampStoredRequest.regs.gdpr
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ class BidderParamsSpec extends BaseSpec {
and: "Default basic generic BidRequest"
def bidRequest = BidRequest.defaultBidRequest
def validCcpa = new CcpaConsent(explicitNotice: ENFORCED, optOutSale: ENFORCED)
bidRequest.regs.ext = new RegsExt(usPrivacy: validCcpa)
bidRequest.regs.usPrivacy = validCcpa
def lat = PBSUtils.getRandomDecimal(0, 90)
def lon = PBSUtils.getRandomDecimal(0, 90)
bidRequest.device = new Device(geo: new Geo(lat: lat, lon: lon))
Expand All @@ -186,7 +186,7 @@ class BidderParamsSpec extends BaseSpec {
and: "Default basic generic BidRequest"
def bidRequest = BidRequest.defaultBidRequest
def validCcpa = new CcpaConsent(explicitNotice: ENFORCED, optOutSale: ENFORCED)
bidRequest.regs.ext = new RegsExt(usPrivacy: validCcpa)
bidRequest.regs.usPrivacy = validCcpa
def lat = PBSUtils.getRandomDecimal(0, 90) as float
def lon = PBSUtils.getRandomDecimal(0, 90) as float
bidRequest.device = new Device(geo: new Geo(lat: lat, lon: lon))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ class HttpSettingsSpec extends BaseSpec {
def "PBS should take account information from http data source on auction request"() {
given: "Get basic BidRequest with generic bidder and set gdpr = 1"
def bidRequest = BidRequest.defaultBidRequest
bidRequest.regs.ext.gdpr = 1
bidRequest.regs.gdpr = 1

and: "Prepare default account response with gdpr = 0"
def httpSettingsResponse = HttpAccountsResponse.getDefaultHttpAccountsResponse(bidRequest?.site?.publisher?.id)
Expand Down Expand Up @@ -61,7 +61,7 @@ class HttpSettingsSpec extends BaseSpec {
and: "Get basic stored request and set gdpr = 1"
def ampStoredRequest = BidRequest.defaultBidRequest
ampStoredRequest.site.publisher.id = ampRequest.account
ampStoredRequest.regs.ext.gdpr = 1
ampStoredRequest.regs.gdpr = 1

and: "Save storedRequest into DB"
def storedRequest = StoredRequest.getStoredRequest(ampRequest, ampStoredRequest)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import org.prebid.server.functional.model.request.auction.RefSettings
import org.prebid.server.functional.model.request.auction.RefType
import org.prebid.server.functional.model.request.auction.Refresh
import org.prebid.server.functional.model.request.auction.Regs
import org.prebid.server.functional.model.request.auction.RegsExt
import org.prebid.server.functional.model.request.auction.Source
import org.prebid.server.functional.model.request.auction.SourceType
import org.prebid.server.functional.model.request.auction.User
Expand Down Expand Up @@ -46,10 +47,7 @@ class OrtbConverterSpec extends BaseSpec {
def usPrivacyRandomString = PBSUtils.randomString
def gdpr = 0
def bidRequest = BidRequest.defaultBidRequest.tap {
regs = Regs.defaultRegs.tap {
it.usPrivacy = usPrivacyRandomString
it.gdpr = gdpr
}
regs = new Regs(usPrivacy: usPrivacyRandomString, gdpr: gdpr)
}

when: "Requesting PBS auction with ortb 2.6"
Expand Down Expand Up @@ -1140,7 +1138,7 @@ class OrtbConverterSpec extends BaseSpec {
def randomGpc = PBSUtils.randomNumber as String
def bidRequest = BidRequest.defaultBidRequest.tap {
regs = Regs.defaultRegs.tap {
ext.gpc = randomGpc
ext = new RegsExt(gpc: randomGpc)
}
}

Expand All @@ -1156,7 +1154,7 @@ class OrtbConverterSpec extends BaseSpec {
def randomGpc = PBSUtils.randomNumber as String
def bidRequest = BidRequest.defaultBidRequest.tap {
regs = Regs.defaultRegs.tap {
ext.gpc = randomGpc
ext = new RegsExt(gpc: randomGpc)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import org.prebid.server.functional.model.request.auction.BidRequest
import org.prebid.server.functional.model.request.auction.Condition
import org.prebid.server.functional.model.request.auction.Device
import org.prebid.server.functional.model.request.auction.Geo
import org.prebid.server.functional.model.request.auction.RegsExt
import org.prebid.server.functional.model.response.auction.ActivityInfrastructure
import org.prebid.server.functional.model.response.auction.ActivityInvocationPayload
import org.prebid.server.functional.model.response.auction.And
Expand Down Expand Up @@ -192,7 +193,7 @@ class ActivityTraceLogSpec extends PrivacyBaseSpec {
def bidRequest = BidRequest.defaultBidRequest.tap {
ext.prebid.trace = VERBOSE
device = new Device(geo: new Geo(country: USA, region: ALABAMA.abbreviation))
regs.ext.gpc = PBSUtils.randomString
regs.ext = new RegsExt(gpc: PBSUtils.randomString)
regs.gppSid = [US_CA_V1.intValue]
setAccountId(accountId)
}
Expand Down Expand Up @@ -298,7 +299,7 @@ class ActivityTraceLogSpec extends PrivacyBaseSpec {
def bidRequest = BidRequest.defaultBidRequest.tap {
ext.prebid.trace = VERBOSE
device = new Device(geo: new Geo(country: USA, region: ALABAMA.abbreviation))
regs.ext.gpc = PBSUtils.randomString
regs.ext = new RegsExt(gpc: PBSUtils.randomString)
regs.gppSid = [US_CA_V1.intValue]
regs.gpp = new UsNatV1Consent.Builder().setGpc(true).build()
setAccountId(accountId)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import org.prebid.server.functional.model.request.amp.AmpRequest
import org.prebid.server.functional.model.request.auction.BidRequest
import org.prebid.server.functional.model.request.auction.Dsa
import org.prebid.server.functional.model.request.auction.Dsa as RequestDsa
import org.prebid.server.functional.model.request.auction.RegsExt
import org.prebid.server.functional.model.response.auction.BidExt
import org.prebid.server.functional.model.response.auction.BidResponse
import org.prebid.server.functional.model.response.auction.DsaResponse
Expand Down Expand Up @@ -34,7 +35,7 @@ class DsaSpec extends PrivacyBaseSpec {

and: "Default stored request with DSA"
def ampStoredRequest = BidRequest.defaultBidRequest.tap {
regs.ext.dsa = dsa
regs.ext = new RegsExt(dsa: dsa)
setAccountId(ampRequest.account)
}

Expand Down Expand Up @@ -63,7 +64,7 @@ class DsaSpec extends PrivacyBaseSpec {

and: "Default stored request with DSA"
def ampStoredRequest = BidRequest.defaultBidRequest.tap {
regs.ext.dsa = dsa
regs.ext = new RegsExt(dsa: dsa)
setAccountId(ampRequest.account)
}

Expand Down Expand Up @@ -106,7 +107,7 @@ class DsaSpec extends PrivacyBaseSpec {

and: "Default stored request with DSA"
def ampStoredRequest = BidRequest.defaultBidRequest.tap {
regs.ext.dsa = dsa
regs.ext = new RegsExt(dsa: dsa)
setAccountId(ampRequest.account)
}

Expand Down Expand Up @@ -143,7 +144,7 @@ class DsaSpec extends PrivacyBaseSpec {

and: "Default stored bid request with DSA"
def ampStoredRequest = BidRequest.defaultBidRequest.tap {
regs.ext.dsa = dsa
regs.ext = new RegsExt(dsa: dsa)
setAccountId(ampRequest.account)
}

Expand Down Expand Up @@ -177,7 +178,7 @@ class DsaSpec extends PrivacyBaseSpec {
def "Auction request should always forward DSA to bidders"() {
given: "Default bid request with DSA"
def bidRequest = BidRequest.defaultBidRequest.tap {
regs.ext.dsa = dsa
regs.ext = new RegsExt(dsa: dsa)
}

when: "PBS processes auction request"
Expand All @@ -198,7 +199,7 @@ class DsaSpec extends PrivacyBaseSpec {
def "Auction request should always accept bids with DSA"() {
given: "Default bid request with DSA"
def bidRequest = BidRequest.defaultBidRequest.tap {
regs.ext.dsa = dsa
regs.ext = new RegsExt(dsa: dsa)
}

and: "Default bidder response with DSA"
Expand Down Expand Up @@ -235,7 +236,7 @@ class DsaSpec extends PrivacyBaseSpec {
def "Auction request should accept bids without DSA when dsarequired is #dsaRequired"() {
given: "Default bid request with DSA"
def bidRequest = BidRequest.defaultBidRequest.tap {
regs.ext.dsa = RequestDsa.getDefaultDsa(dsaRequired)
regs.ext = new RegsExt(dsa: RequestDsa.getDefaultDsa(dsaRequired))
}

and: "Default bidder response with DSA"
Expand Down Expand Up @@ -263,7 +264,7 @@ class DsaSpec extends PrivacyBaseSpec {
def "Auction request should reject bids without DSA when dsarequired is #dsaRequired"() {
given: "Default bid request with DSA"
def bidRequest = BidRequest.defaultBidRequest.tap {
regs.ext.dsa = RequestDsa.getDefaultDsa(dsaRequired)
regs.ext = new RegsExt(dsa: RequestDsa.getDefaultDsa(dsaRequired))
}

and: "Default bidder response without DSA"
Expand Down Expand Up @@ -293,7 +294,7 @@ class DsaSpec extends PrivacyBaseSpec {
given: "Default bid request with DSA"
def bidRequest = BidRequest.defaultBidRequest.tap {
ext.prebid.returnAllBidStatus = true
regs.ext.dsa = RequestDsa.getDefaultDsa(dsaRequired)
regs.ext = new RegsExt(dsa: RequestDsa.getDefaultDsa(dsaRequired))
}

and: "Default bidder response without DSA"
Expand Down Expand Up @@ -332,7 +333,7 @@ class DsaSpec extends PrivacyBaseSpec {
def accountId = PBSUtils.randomNumber.toString()
def bidRequest = BidRequest.defaultBidRequest.tap {
setAccountId(accountId)
regs.ext.dsa = null
regs.ext = new RegsExt(dsa: null)
}

and: "Account with default DSA config"
Expand All @@ -352,7 +353,7 @@ class DsaSpec extends PrivacyBaseSpec {
def accountId = PBSUtils.randomNumber.toString()
def bidRequest = BidRequest.defaultBidRequest.tap {
setAccountId(accountId)
regs.ext.dsa = requestDsa
regs.ext = new RegsExt(dsa: requestDsa)
}

and: "Account with default DSA config"
Expand All @@ -378,7 +379,7 @@ class DsaSpec extends PrivacyBaseSpec {
def accountId = PBSUtils.randomNumber.toString()
def bidRequest = BidRequest.defaultBidRequest.tap {
setAccountId(accountId)
regs.ext.dsa = null
regs.ext = new RegsExt(dsa: null)
}

and: "Account without default DSA config"
Expand All @@ -397,8 +398,8 @@ class DsaSpec extends PrivacyBaseSpec {
def accountId = PBSUtils.randomNumber.toString()
def bidRequest = BidRequest.defaultBidRequest.tap {
setAccountId(accountId)
regs.ext.dsa = null
regs.ext.gdpr = 0
regs.ext = new RegsExt(dsa: null)
regs.gdpr = 0
}

and: "Account with default DSA config"
Expand All @@ -424,7 +425,7 @@ class DsaSpec extends PrivacyBaseSpec {
def accountId = PBSUtils.randomNumber.toString()
def bidRequest = getGdprBidRequest(consentString).tap {
setAccountId(accountId)
regs.ext.dsa = null
regs.ext = new RegsExt(dsa: null)
}

and: "Account with default DSA config"
Expand All @@ -448,8 +449,8 @@ class DsaSpec extends PrivacyBaseSpec {
def accountId = PBSUtils.randomNumber.toString()
def bidRequest = BidRequest.defaultBidRequest.tap {
setAccountId(accountId)
regs.ext.dsa = null
regs.ext.gdpr = 0
regs.ext = new RegsExt(dsa: null)
regs.gdpr = 0
}

and: "Account with default DSA config"
Expand All @@ -471,9 +472,9 @@ class DsaSpec extends PrivacyBaseSpec {
given: "Default bid request with DSA pubRender"
def bidRequest = BidRequest.defaultBidRequest.tap {
ext.prebid.returnAllBidStatus = true
regs.ext.dsa = RequestDsa.getDefaultDsa(REQUIRED).tap {
regs.ext = new RegsExt(dsa: RequestDsa.getDefaultDsa(REQUIRED).tap {
it.pubRender = pubRender
}
})
}

and: "Default bidder response with incorrect DSA adRender"
Expand Down Expand Up @@ -513,7 +514,7 @@ class DsaSpec extends PrivacyBaseSpec {
given: "Default bid request with DSA pubRender"
def bidRequest = BidRequest.defaultBidRequest.tap {
ext.prebid.returnAllBidStatus = true
regs.ext.dsa = RequestDsa.getDefaultDsa(REQUIRED)
regs.ext = new RegsExt(dsa: RequestDsa.getDefaultDsa(REQUIRED))
}

and: "Default bidder response with incorrect DSA"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -505,7 +505,7 @@ class GdprAuctionSpec extends PrivacyBaseSpec {
given: "Default Generic bid requests with personal data"
def tcfConsent = new TcfConsent.Builder().build()
def bidRequest = bidRequestWithPersonalData.tap {
regs.ext = new RegsExt(gdpr: 1)
regs.gdpr = 1
user.ext.consent = tcfConsent
}

Expand Down Expand Up @@ -535,7 +535,7 @@ class GdprAuctionSpec extends PrivacyBaseSpec {
given: "Default Generic BidRequests with personal data"
def tcfConsent = new TcfConsent.Builder().build()
def bidRequest = bidRequestWithPersonalData.tap {
regs.ext = new RegsExt(gdpr: 1)
regs.gdpr = 1
user.ext.consent = tcfConsent
ext.prebid.trace = VERBOSE
}
Expand Down Expand Up @@ -613,7 +613,7 @@ class GdprAuctionSpec extends PrivacyBaseSpec {
given: "Default Generic BidRequests with personal data"
def tcfConsent = new TcfConsent.Builder().build()
def bidRequest = bidRequestWithPersonalData.tap {
regs.ext = new RegsExt(gdpr: 1)
regs.gdpr = 1
user.ext.consent = tcfConsent
ext.prebid.trace = BASIC
}
Expand Down Expand Up @@ -693,7 +693,7 @@ class GdprAuctionSpec extends PrivacyBaseSpec {
given: "Default Generic BidRequests with privacy data"
def tcfConsent = new TcfConsent.Builder().setSpecialFeatureOptIns(DEVICE_ACCESS).build()
def bidRequest = bidRequestWithPersonalData.tap {
regs.ext = new RegsExt(gdpr: 1)
regs.gdpr = 1
user.ext.consent = tcfConsent
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import org.prebid.server.functional.model.request.amp.AmpRequest
import org.prebid.server.functional.model.request.amp.ConsentType
import org.prebid.server.functional.model.request.auction.BidRequest
import org.prebid.server.functional.model.request.auction.Regs
import org.prebid.server.functional.model.request.auction.RegsExt
import org.prebid.server.functional.util.PBSUtils
import org.prebid.server.functional.util.privacy.gpp.TcfEuV2Consent
import org.prebid.server.functional.util.privacy.gpp.UsV1Consent
Expand Down Expand Up @@ -188,7 +189,7 @@ class GppAmpSpec extends PrivacyBaseSpec {

and: "Save storedRequest into DB"
def ampStoredRequest = BidRequest.defaultStoredRequest.tap {
regs.ext.gpc = null
regs.ext = new RegsExt(gpc: null)
}
def storedRequest = StoredRequest.getStoredRequest(ampRequest, ampStoredRequest)
storedRequestDao.save(storedRequest)
Expand All @@ -212,7 +213,7 @@ class GppAmpSpec extends PrivacyBaseSpec {

and: "Save storedRequest into DB"
def ampStoredRequest = BidRequest.defaultStoredRequest.tap {
regs.ext.gpc = null
regs.ext = new RegsExt(gpc: null)
}
def storedRequest = StoredRequest.getStoredRequest(ampRequest, ampStoredRequest)
storedRequestDao.save(storedRequest)
Expand All @@ -222,6 +223,6 @@ class GppAmpSpec extends PrivacyBaseSpec {

then: "Bidder request shouldn't contain gpc value from header"
def bidderRequest = bidder.getBidderRequest(ampStoredRequest.id)
assert !bidderRequest.regs.ext
assert !bidderRequest?.regs?.ext?.gpc
}
}
Loading

0 comments on commit 317621b

Please sign in to comment.