<!doctype html>
<meta name=timeout content=long>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/utils.js"></script>
<script src="resources/protected-audience-helper-module.js"></script>
<body>
<script>
'use strict';
promise_test(async test => {
const uuid = generateUuid();
const contribution = '{ bucket: 1n, value: 1 }';
await runReportTest(test, uuid,
{ scoreAd:
`privateAggregation.contributeToHistogram(${contribution});
forDebuggingOnly.reportAdAuctionWin('${createWritingURL(uuid)}');`
},
/*expectedNumReports=*/ 1);
}, 'contributeToHistogram() with positive bucket in scoreAd()');
promise_test(async test => {
const uuid = generateUuid();
const contribution = '{ bucket: 0n, value: 1 }';
await runReportTest(test, uuid,
{ reportResult:
`privateAggregation.contributeToHistogram(${contribution});
sendReportTo('${createWritingURL(uuid)}');`
},
/*expectedNumReports=*/ 1);
}, 'contributeToHistogram() with zero bucket in reportResult()');
promise_test(async test => {
const uuid = generateUuid();
const contribution = '{ bucket: 18446744073709551616n, value: 1 }';
await runReportTest(test, uuid,
{ generateBid:
`privateAggregation.contributeToHistogram(${contribution});
forDebuggingOnly.reportAdAuctionWin('${createWritingURL(uuid)}');`
},
/*expectedNumReports=*/ 1);
}, 'contributeToHistogram() with large bucket in generateBid()');
promise_test(async test => {
const uuid = generateUuid();
const contribution = '{ bucket: 340282366920938463463374607431768211455n, value: 1 }';
await runReportTest(test, uuid,
{ reportWin:
`privateAggregation.contributeToHistogram(${contribution});
sendReportTo('${createWritingURL(uuid)}');`
},
/*expectedNumReports=*/ 1);
}, 'contributeToHistogram() with max bucket in reportWin()');
promise_test(async test => {
const uuid = generateUuid();
const contribution = '{ bucket: 1n, value: 1 }';
await runReportTest(test, uuid,
{ scoreAd:
`privateAggregation.contributeToHistogram(${contribution});
forDebuggingOnly.reportAdAuctionWin('${createWritingURL(uuid)}');`
},
/*expectedNumReports=*/ 1);
}, 'contributeToHistogram() with positive value in scoreAd()');
promise_test(async test => {
const uuid = generateUuid();
const contribution = '{ bucket: 1n, value: 0 }';
await runReportTest(test, uuid,
{ reportResult:
`privateAggregation.contributeToHistogram(${contribution});
sendReportTo('${createWritingURL(uuid)}');`
},
/*expectedNumReports=*/ 1);
}, 'contributeToHistogram() with zero value in reportResult()');
promise_test(async test => {
const uuid = generateUuid();
const contribution = '{ bucket: 1n, value: 2.3 }';
await runReportTest(test, uuid,
{ generateBid:
`privateAggregation.contributeToHistogram(${contribution});
forDebuggingOnly.reportAdAuctionWin('${createWritingURL(uuid)}');`
},
/*expectedNumReports=*/ 1);
}, 'contributeToHistogram() with non-integer value in generateBid()');
</script>
</body>