Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -34,16 +34,17 @@ class VendorListResponse {
List<Integer> features
List<Integer> specialFeatures
String policyUrl
ZonedDateTime deletedDate
Overflow overflow
String cookieMaxAgeSeconds
Boolean usesCookies
Boolean cookieRefresh
Boolean usesNonCookieAccess
Boolean deviceStorageDisclosureUrl

static Vendor getDefaultVendor(int id) {
static Vendor getDefaultVendor(int vendorId) {
new Vendor().tap {
it.id = id
it.id = vendorId
it.name = PBSUtils.randomString
it.purposes = [1, 3, 4, 5]
it.legIntPurposes = [2, 7, 10]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import org.mockserver.matchers.TimeToLive
import org.mockserver.matchers.Times
import org.mockserver.model.Delay
import org.mockserver.model.HttpRequest
import org.mockserver.model.HttpResponse
import org.prebid.server.functional.util.privacy.TcfConsent
import org.testcontainers.containers.MockServerContainer

import static org.mockserver.model.HttpRequest.request
Expand All @@ -20,10 +20,13 @@ import static org.prebid.server.functional.util.privacy.TcfConsent.TcfPolicyVers

class VendorList extends NetworkScaffolding {

private static final String VENDOR_LIST_ENDPOINT = "/v{TCF_POLICY}/vendor-list.json"
private static final String ENDPOINT_TEMPLATE = "/v{TCF_POLICY}/{FILE_NAME}"

VendorList(MockServerContainer mockServerContainer) {
super(mockServerContainer, VENDOR_LIST_ENDPOINT)
private final String fileName

VendorList(MockServerContainer mockServerContainer, String fileName = "vendor-list.json") {
super(mockServerContainer, ENDPOINT_TEMPLATE.replace("{FILE_NAME}", fileName))
this.fileName = fileName
}

@Override
Expand All @@ -33,29 +36,39 @@ class VendorList extends NetworkScaffolding {

@Override
protected HttpRequest getRequest() {
request().withPath(VENDOR_LIST_ENDPOINT)
request().withPath(endpoint)
}

@Override
void reset() {
TcfPolicyVersion.values().each { version -> super.reset("/v${version.vendorListVersion}/vendor-list.json") }
TcfPolicyVersion.values().each {
super.reset("/v${it.vendorListVersion}/${fileName}")
}
}

void setResponse(TcfPolicyVersion tcfPolicyVersion = TCF_POLICY_V2,
Delay delay = null,
Map<Integer, Vendor> vendors = [(GENERIC_VENDOR_ID): Vendor.getDefaultVendor(GENERIC_VENDOR_ID)]) {
Map<Integer, Vendor> vendors = [(GENERIC_VENDOR_ID): Vendor.getDefaultVendor(GENERIC_VENDOR_ID)],
vendorListVersion = TcfConsent.VENDOR_LIST_VERSION) {

def prepareEndpoint = endpoint.replace("{TCF_POLICY}", tcfPolicyVersion.vendorListVersion.toString())
def prepareEncodeResponseBody = encode(defaultVendorListResponse.tap {
it.tcfPolicyVersion = tcfPolicyVersion.vendorListVersion
it.vendors = vendors
it.vendorListVersion = vendorListVersion
it.gvlSpecificationVersion = tcfPolicyVersion >= TcfPolicyVersion.TCF_POLICY_V4 ? V3 : V2
})

mockServerClient.when(request().withPath(prepareEndpoint), Times.unlimited(), TimeToLive.unlimited(), -10)
.respond { request ->
request.withPath(endpoint)
? response().withStatusCode(OK_200.code()).withDelay(delay).withBody(prepareEncodeResponseBody)
: HttpResponse.notFoundResponse()
}
def mockResponse = response()
.withStatusCode(OK_200.code())
.withBody(prepareEncodeResponseBody)

if (delay != null) {
mockResponse.withDelay(delay)
}

mockServerClient
.when(request().withPath(prepareEndpoint), Times.unlimited(), TimeToLive.unlimited(), -10)
.respond(mockResponse)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,8 @@ import org.prebid.server.functional.model.config.AccountDsaConfig
import org.prebid.server.functional.model.config.AccountGdprConfig
import org.prebid.server.functional.model.config.AccountGppConfig
import org.prebid.server.functional.model.config.AccountPrivacyConfig
import org.prebid.server.functional.model.config.Purpose
import org.prebid.server.functional.model.db.Account
import org.prebid.server.functional.model.mock.services.vendorlist.VendorListResponse
import org.prebid.server.functional.model.privacy.EnforcementRequirement
import org.prebid.server.functional.model.privacy.gpp.GppDataActivity
import org.prebid.server.functional.model.privacy.gpp.UsCaliforniaV1ChildSensitiveData
import org.prebid.server.functional.model.privacy.gpp.UsCaliforniaV1SensitiveData
Expand Down Expand Up @@ -55,12 +53,9 @@ import org.prebid.server.functional.util.privacy.gpp.v1.UsVaV1Consent

import static org.prebid.server.functional.model.bidder.BidderName.GENERIC
import static org.prebid.server.functional.model.bidder.BidderName.OPENX
import static org.prebid.server.functional.model.config.PurposeEnforcement.BASIC
import static org.prebid.server.functional.model.config.PurposeEnforcement.FULL
import static org.prebid.server.functional.model.config.PurposeEnforcement.NO
import static org.prebid.server.functional.model.mock.services.vendorlist.VendorListResponse.getDefaultVendorListResponse
import static org.prebid.server.functional.model.pricefloors.Country.USA
import static org.prebid.server.functional.model.pricefloors.Country.BULGARIA
import static org.prebid.server.functional.model.pricefloors.Country.USA
import static org.prebid.server.functional.model.request.GppSectionId.US_CA_V1
import static org.prebid.server.functional.model.request.GppSectionId.US_CO_V1
import static org.prebid.server.functional.model.request.GppSectionId.US_CT_V1
Expand All @@ -74,10 +69,6 @@ import static org.prebid.server.functional.model.request.auction.TraceLevel.VERB
import static org.prebid.server.functional.model.response.cookiesync.UserSyncInfo.Type.REDIRECT
import static org.prebid.server.functional.testcontainers.Dependencies.getNetworkServiceContainer
import static org.prebid.server.functional.util.privacy.TcfConsent.GENERIC_VENDOR_ID
import static org.prebid.server.functional.util.privacy.TcfConsent.PurposeId.BASIC_ADS
import static org.prebid.server.functional.util.privacy.TcfConsent.RestrictionType.REQUIRE_CONSENT
import static org.prebid.server.functional.util.privacy.TcfConsent.RestrictionType.REQUIRE_LEGITIMATE_INTEREST
import static org.prebid.server.functional.util.privacy.TcfConsent.RestrictionType.UNDEFINED
import static org.prebid.server.functional.util.privacy.TcfConsent.TcfPolicyVersion.TCF_POLICY_V2
import static org.prebid.server.functional.util.privacy.model.State.ALABAMA

Expand All @@ -90,7 +81,7 @@ abstract class PrivacyBaseSpec extends BaseSpec {
"adapters.${GENERIC.value}.ortb-version" : "2.6"]
private static final Map<String, String> OPENX_CONFIG = ["adaptrs.${OPENX.value}.enabled" : "true",
"adapters.${OPENX.value}.usersync.cookie-family-name": OPENX.value,
"adapters.${OPENX}.ortb-version" : "2.6",
"adapters.${OPENX.value}.ortb-version" : "2.6",
"adapters.${OPENX.value}.endpoint" : "$networkServiceContainer.rootUri/auction".toString(),
"adapters.${OPENX.value}.enabled" : 'true']
protected static final Map<String, String> GDPR_VENDOR_LIST_CONFIG = ["gdpr.vendorlist.v2.http-endpoint-template": "$networkServiceContainer.rootUri/v2/vendor-list.json".toString(),
Expand Down
Loading
Loading