Skip to content

Commit d0e0fb9

Browse files
authored
Tests: TCF 2.3 support (#4445)
1 parent 269d78d commit d0e0fb9

33 files changed

Lines changed: 1478 additions & 767 deletions

src/test/groovy/org/prebid/server/functional/model/config/AccountGdprConfig.groovy

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import com.fasterxml.jackson.databind.PropertyNamingStrategies
55
import com.fasterxml.jackson.databind.annotation.JsonNaming
66
import groovy.transform.ToString
77
import org.prebid.server.functional.model.ChannelType
8+
import org.prebid.server.functional.model.bidder.BidderName
89

910
@ToString(includeNames = true, ignoreNulls = true)
1011
@JsonNaming(PropertyNamingStrategies.KebabCaseStrategy)
@@ -22,7 +23,7 @@ class AccountGdprConfig {
2223
PurposeOneTreatmentInterpretation purposeOneTreatmentInterpretation
2324
@JsonProperty("purpose_one_treatment_interpretation")
2425
PurposeOneTreatmentInterpretation purposeOneTreatmentInterpretationSnakeCase
25-
List<String> basicEnforcementVendors
26+
List<BidderName> basicEnforcementVendors
2627
@JsonProperty("basic_enforcement_vendors")
27-
List<String> basicEnforcementVendorsSnakeCase
28+
List<BidderName> basicEnforcementVendorsSnakeCase
2829
}

src/test/groovy/org/prebid/server/functional/model/config/SpecialFeatureConfig.groovy

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty
44
import com.fasterxml.jackson.databind.PropertyNamingStrategies
55
import com.fasterxml.jackson.databind.annotation.JsonNaming
66
import groovy.transform.ToString
7+
import org.prebid.server.functional.model.bidder.BidderName
78

89
@ToString(includeNames = true, ignoreNulls = true)
910
@JsonNaming(PropertyNamingStrategies.KebabCaseStrategy)
@@ -12,5 +13,5 @@ class SpecialFeatureConfig {
1213
Boolean enforce
1314
List<String> vendorExceptions
1415
@JsonProperty("vendor_exceptions")
15-
List<String> vendorExceptionsSnakeCase
16+
List<BidderName> vendorExceptionsSnakeCase
1617
}

src/test/groovy/org/prebid/server/functional/model/privacy/EnforcementRequirement.groovy

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@ import org.prebid.server.functional.model.config.Purpose
99
import org.prebid.server.functional.model.config.PurposeEnforcement
1010
import org.prebid.server.functional.util.privacy.TcfConsent
1111

12+
import java.time.ZonedDateTime
13+
14+
import static org.prebid.server.functional.util.privacy.TcfConsent.RestrictionType.REQUIRE_CONSENT
15+
import static org.prebid.server.functional.util.privacy.TcfConsent.RestrictionType.UNDEFINED
16+
1217
@ToString(includeNames = true, ignoreNulls = true)
1318
@JsonNaming(PropertyNamingStrategies.KebabCaseStrategy)
1419
class EnforcementRequirement {
@@ -27,4 +32,32 @@ class EnforcementRequirement {
2732
List<TcfConsent.RestrictionType> restrictionType
2833
Integer vendorIdGvl
2934
Integer vendorListVersion
35+
List<Integer> disclosedVendorsId
36+
ZonedDateTime created = ZonedDateTime.now()
37+
ZonedDateTime updated = ZonedDateTime.now()
38+
39+
static EnforcementRequirement getDefaultBase(Integer disclosedVendorsId, Purpose purpose = Purpose.P2) {
40+
new EnforcementRequirement().tap {
41+
it.purpose = purpose
42+
it.enforcePurpose = PurposeEnforcement.BASIC
43+
it.enforceVendor = false
44+
it.disclosedVendorsId = [disclosedVendorsId]
45+
}
46+
}
47+
48+
static EnforcementRequirement getDefaultFull(Integer vendorId,
49+
Integer vendorListVersion,
50+
Purpose purpose = Purpose.P2) {
51+
52+
new EnforcementRequirement().tap {
53+
it.enforcePurpose = PurposeEnforcement.FULL
54+
it.purpose = purpose
55+
it.enforceVendor = true
56+
it.vendorIdGvl = vendorId
57+
it.restrictionType = [REQUIRE_CONSENT, UNDEFINED]
58+
it.vendorConsentBitField = vendorId
59+
it.vendorListVersion = vendorListVersion
60+
it.disclosedVendorsId = [vendorId]
61+
}
62+
}
3063
}

src/test/groovy/org/prebid/server/functional/testcontainers/PbsServiceFactory.groovy

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import org.prebid.server.functional.service.PrebidServerService
44
import org.prebid.server.functional.testcontainers.container.NetworkServiceContainer
55
import org.prebid.server.functional.testcontainers.container.PrebidServerContainer
66
import org.prebid.server.functional.util.SystemProperties
7+
import org.testcontainers.images.builder.Transferable
78

89
import static org.prebid.server.functional.util.SystemProperties.USE_FIXED_CONTAINER_PORTS
910

@@ -19,7 +20,7 @@ class PbsServiceFactory {
1920
this.networkServiceContainer = networkServiceContainer
2021
}
2122

22-
static PrebidServerService getService(Map<String, String> config) {
23+
static PrebidServerService getService(Map<String, String> config, Map<String, Transferable> additionalFiles = [:]) {
2324
if (containers.containsKey(config)) {
2425
def container = containers.get(config)
2526
container.refresh()
@@ -33,6 +34,9 @@ class PbsServiceFactory {
3334
remove([(container.key): container.value])
3435
}
3536
def pbsContainer = new PrebidServerContainer(config)
37+
if (!additionalFiles.isEmpty()) {
38+
additionalFiles.each { k, v -> pbsContainer.withCopyToContainer(v, k) }
39+
}
3640
pbsContainer.start()
3741
containers.put(config, pbsContainer)
3842
return new PrebidServerService(pbsContainer)

0 commit comments

Comments
 (0)