Skip to content
Merged
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
@@ -0,0 +1,6 @@
package org.prebid.server.functional.model.request.auction

class Adrino {

Integer hash
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ class Bidder {
Ix ix
@JsonProperty("openxalias")
Openx openxAlias
Adrino adrino
Generic nativo

static Bidder getDefaultBidder() {
new Bidder().tap {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,25 +89,25 @@ LIMIT 1
}

static Map<String, String> getMySqlConfig(MySQLContainer mysql = Dependencies.mysqlContainer) {
["settings.database.type" : "mysql",
"settings.database.host" : mysql.getNetworkAliases().get(0),
"settings.database.port" : mysql.exposedPorts.get(0) as String,
"settings.database.dbname" : mysql.databaseName,
"settings.database.user" : mysql.username,
"settings.database.password" : mysql.password,
"settings.database.pool-size" : "2", // setting 2 here to leave some slack for the PBS
["settings.database.type" : "mysql",
"settings.database.host" : mysql.getNetworkAliases().get(0),
"settings.database.port" : mysql.exposedPorts.get(0) as String,
"settings.database.dbname" : mysql.databaseName,
"settings.database.user" : mysql.username,
"settings.database.password" : mysql.password,
"settings.database.pool-size" : "2", // setting 2 here to leave some slack for the PBS
"settings.database.idle-connection-timeout": "300"
].asImmutable()
}

static Map<String, String> getPostgreSqlConfig(PostgreSQLContainer postgres = Dependencies.postgresqlContainer) {
["settings.database.type" : "postgres",
"settings.database.host" : postgres.getNetworkAliases().get(0),
"settings.database.port" : postgres.exposedPorts.get(0) as String,
"settings.database.dbname" : postgres.databaseName,
"settings.database.user" : postgres.username,
"settings.database.password" : postgres.password,
"settings.database.pool-size" : "2", // setting 2 here to leave some slack for the PBS
["settings.database.type" : "postgres",
"settings.database.host" : postgres.getNetworkAliases().get(0),
"settings.database.port" : postgres.exposedPorts.get(0) as String,
"settings.database.dbname" : postgres.databaseName,
"settings.database.user" : postgres.username,
"settings.database.password" : postgres.password,
"settings.database.pool-size" : "2", // setting 2 here to leave some slack for the PBS
"settings.database.idle-connection-timeout": "300"
].asImmutable()
}
Expand All @@ -119,6 +119,7 @@ LIMIT 1
// due to a config validation we'll need to circumvent all future aliases this way
static Map<String, String> getBidderAliasConfig() {
["adapters.generic.aliases.cwire.meta-info.site-media-types" : "",
"adapters.generic.aliases.cwire.meta-info.app-media-types" : "",
"adapters.generic.aliases.blue.meta-info.app-media-types" : "",
"adapters.generic.aliases.blue.meta-info.site-media-types" : "",
"adapters.generic.aliases.adsinteractive.meta-info.app-media-types" : "",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import org.prebid.server.functional.model.db.Account
import org.prebid.server.functional.model.db.StoredImp
import org.prebid.server.functional.model.db.StoredRequest
import org.prebid.server.functional.model.request.amp.AmpRequest
import org.prebid.server.functional.model.request.auction.Adrino
import org.prebid.server.functional.model.request.auction.AuctionEnvironment
import org.prebid.server.functional.model.request.auction.Banner
import org.prebid.server.functional.model.request.auction.BidRequest
Expand Down Expand Up @@ -1298,4 +1299,66 @@ class BidderParamsSpec extends BaseSpec {
assert bidderRequest.imp[0].ext.auctionEnvironment == extAuctionEnv
assert bidderRequest.imp[0].ext.interestGroupAuctionSupports.auctionEnvironment == extIgsAuctionEnv
}

def "PBS should reject alias bidders when bidder params from request doesn't satisfy own json-schema"() {
given: "Default bid request"
def bidRequest = BidRequest.defaultBidRequest.tap {
imp[0].ext.prebid.bidder.tap {
it.generic.exampleProperty = PBSUtils.randomNumber
//Adrino hard coded bidder alias in generic.yaml
it.adrino = new Adrino(hash: PBSUtils.randomNumber)
}
}

when: "PBS processes auction request"
def response = defaultPbsService.sendAuctionRequest(bidRequest)

then: "Bidder should be dropped"
assert response.ext?.warnings[PREBID]*.code == [999, 999, 999]
assert response.ext?.warnings[PREBID]*.message ==
["WARNING: request.imp[0].ext.prebid.bidder.generic was dropped with a reason: " +
"request.imp[0].ext.prebid.bidder.generic failed validation.\n" +
"\$.exampleProperty: integer found, string expected",
"WARNING: request.imp[0].ext.prebid.bidder.adrino was dropped with a reason: " +
"request.imp[0].ext.prebid.bidder.adrino failed validation.\n" +
"\$.hash: integer found, string expected",
"WARNING: request.imp[0].ext must contain at least one valid bidder"]

and: "PBS should not call bidder"
assert bidder.getRequestCount(bidRequest.id) == 0

and: "targeting should be empty"
assert response.seatbid.isEmpty()
}

def "PBS should reject alias bidders when bidder params from request doesn't satisfy aliased json-schema"() {
given: "Default basic generic BidRequest"
def bidRequest = BidRequest.defaultBidRequest.tap {
imp[0].ext.prebid.bidder.tap {
it.generic.exampleProperty = PBSUtils.randomNumber
//Nativo hard coded bidder alias in generic.yaml
it.nativo = new Generic(exampleProperty: PBSUtils.randomNumber)
}
}

when: "PBS processes auction request"
def response = defaultPbsService.sendAuctionRequest(bidRequest)

then: "Bidder should be dropped"
assert response.ext?.warnings[PREBID]*.code == [999, 999, 999]
assert response.ext?.warnings[PREBID]*.message ==
["WARNING: request.imp[0].ext.prebid.bidder.generic was dropped with a reason: " +
"request.imp[0].ext.prebid.bidder.generic failed validation.\n" +
"\$.exampleProperty: integer found, string expected",
"WARNING: request.imp[0].ext.prebid.bidder.nativo was dropped with a reason: " +
"request.imp[0].ext.prebid.bidder.nativo failed validation.\n" +
"\$.exampleProperty: integer found, string expected",
"WARNING: request.imp[0].ext must contain at least one valid bidder"]

and: "PBS should not call bidder"
assert bidder.getRequestCount(bidRequest.id) == 0

and: "targeting should be empty"
assert response.seatbid.isEmpty()
}
}
Loading