162 lines
5.4 KiB
JavaScript
162 lines
5.4 KiB
JavaScript
// META: script=/resources/testdriver.js
|
|
// META: script=/resources/testdriver-vendor.js
|
|
// META: script=/common/utils.js
|
|
// META: script=resources/fledge-util.sub.js
|
|
// META: timeout=long
|
|
|
|
"use strict";
|
|
|
|
promise_test(async test => {
|
|
const uuid = generateUuid(test);
|
|
await runReportTest(
|
|
test, uuid,
|
|
{ generateBid:
|
|
`return {'adCost': 1.99,
|
|
'bid': 9,
|
|
'render': interestGroup.ads[0].renderURL};`,
|
|
reportWinSuccessCondition:
|
|
// Possible stochastic rounding results for 1.99
|
|
`browserSignals.adCost === 1.9921875 || browserSignals.adCost === 1.984375`,
|
|
reportWin:
|
|
`sendReportTo('${createBidderReportURL(uuid)}');` },
|
|
// expectedReportURLs
|
|
[createBidderReportURL(uuid)]
|
|
);
|
|
}, 'Check adCost is stochastically rounded with 8 bit mantissa and exponent.');
|
|
|
|
promise_test(async test => {
|
|
const uuid = generateUuid(test);
|
|
await runReportTest(
|
|
test, uuid,
|
|
{ generateBid:
|
|
`return {'bid': 1.99,
|
|
'render': interestGroup.ads[0].renderURL};`,
|
|
reportWinSuccessCondition:
|
|
// Possible stochastic rounding results for 1.99
|
|
`browserSignals.bid === 1.9921875 || browserSignals.bid === 1.984375`,
|
|
reportWin:
|
|
`sendReportTo('${createBidderReportURL(uuid)}');` },
|
|
// expectedReportURLs
|
|
[createBidderReportURL(uuid)]
|
|
);
|
|
}, 'Check bid is stochastically rounded with 8 bit mantissa and exponent.');
|
|
|
|
promise_test(async test => {
|
|
const uuid = generateUuid(test);
|
|
await runReportTest(
|
|
test, uuid,
|
|
{ scoreAd:
|
|
`return {desirability: 1.99,
|
|
allowComponentAuction: false}`,
|
|
reportResultSuccessCondition:
|
|
// Possible stochastic rounding results for 1.99
|
|
`browserSignals.desirability === 1.9921875 || browserSignals.desirability === 1.984375`,
|
|
reportResult:
|
|
`sendReportTo('${createBidderReportURL(uuid)}');` },
|
|
// expectedReportURLs
|
|
[createBidderReportURL(uuid)]
|
|
);
|
|
}, 'Check desirability is stochastically rounded with 8 bit mantissa and exponent.');
|
|
|
|
promise_test(async test => {
|
|
const uuid = generateUuid(test);
|
|
await joinInterestGroup(test, uuid,
|
|
{
|
|
biddingLogicURL: createBiddingScriptURL({ bid: 1.99 }),
|
|
name: 'other interest group 1' });
|
|
await runReportTest(
|
|
test, uuid,
|
|
{ reportResultSuccessCondition:
|
|
// Possible stochastic rounding results for 1.99
|
|
`browserSignals.highestScoringOtherBid === 1.9921875 || browserSignals.highestScoringOtherBid === 1.984375`,
|
|
reportResult:
|
|
`sendReportTo('${createBidderReportURL(uuid)}');` },
|
|
// expectedReportURLs
|
|
[createBidderReportURL(uuid)]
|
|
);
|
|
}, 'Check highestScoringOtherBid is stochastically rounded with 8 bit mantissa and exponent.');
|
|
|
|
promise_test(async test => {
|
|
const uuid = generateUuid(test);
|
|
await runReportTest(
|
|
test, uuid,
|
|
{ generateBid:
|
|
`return {'adCost': 2,
|
|
'bid': 9,
|
|
'render': interestGroup.ads[0].renderURL};`,
|
|
reportWinSuccessCondition:
|
|
`browserSignals.adCost === 2`,
|
|
reportWin:
|
|
`sendReportTo('${createBidderReportURL(uuid)}');` },
|
|
// expectedReportURLs
|
|
[createBidderReportURL(uuid)]
|
|
);
|
|
}, 'Value is ignored as a non-valid floating-point number.');
|
|
|
|
promise_test(async test => {
|
|
const uuid = generateUuid(test);
|
|
await runReportTest(
|
|
test, uuid,
|
|
{ generateBid:
|
|
`return {'adCost': 1E-46,
|
|
'bid': 9,
|
|
'render': interestGroup.ads[0].renderURL};`,
|
|
reportWinSuccessCondition:
|
|
`browserSignals.adCost === 0`,
|
|
reportWin:
|
|
`sendReportTo('${createBidderReportURL(uuid)}');` },
|
|
// expectedReportURLs
|
|
[createBidderReportURL(uuid)]
|
|
);
|
|
}, 'Value is rounded to 0 if value is greater than 0 and its exponent is less than -128.');
|
|
|
|
promise_test(async test => {
|
|
const uuid = generateUuid(test);
|
|
await runReportTest(
|
|
test, uuid,
|
|
{ generateBid:
|
|
`return {'adCost': -1E-46,
|
|
'bid': 9,
|
|
'render': interestGroup.ads[0].renderURL};`,
|
|
reportWinSuccessCondition:
|
|
`browserSignals.adCost === -0`,
|
|
reportWin:
|
|
`sendReportTo('${createBidderReportURL(uuid)}');` },
|
|
// expectedReportURLs
|
|
[createBidderReportURL(uuid)]
|
|
);
|
|
}, 'Value is rounded to -0 if value is greater than 0 and its exponent is less than -128.');
|
|
|
|
promise_test(async test => {
|
|
const uuid = generateUuid(test);
|
|
await runReportTest(
|
|
test, uuid,
|
|
{ generateBid:
|
|
`return {'adCost': 1E+39,
|
|
'bid': 9,
|
|
'render': interestGroup.ads[0].renderURL};`,
|
|
reportWinSuccessCondition:
|
|
`browserSignals.adCost === Infinity`,
|
|
reportWin:
|
|
`sendReportTo('${createBidderReportURL(uuid)}');` },
|
|
// expectedReportURLs
|
|
[createBidderReportURL(uuid)]
|
|
);
|
|
}, 'Value is rounded to Infinity if value is greater than 0 and its exponent is greater than 127.');
|
|
|
|
promise_test(async test => {
|
|
const uuid = generateUuid(test);
|
|
await runReportTest(
|
|
test, uuid,
|
|
{ generateBid:
|
|
`return {'adCost': -1E+39,
|
|
'bid': 9,
|
|
'render': interestGroup.ads[0].renderURL};`,
|
|
reportWinSuccessCondition:
|
|
`browserSignals.adCost === -Infinity`,
|
|
reportWin:
|
|
`sendReportTo('${createBidderReportURL(uuid)}');` },
|
|
// expectedReportURLs
|
|
[createBidderReportURL(uuid)]
|
|
);
|
|
}, 'Value is rounded to -Infinity if value is less than 0 and its exponent is greater than 127.');
|