<!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: 340282366920938463463374607431768211456n, value: 1 }';
await runReportTest(test, uuid,
{ scoreAd:
`try {
privateAggregation.contributeToHistogram(${contribution});
} catch {
forDebuggingOnly.reportAdAuctionWin('${createWritingURL(uuid)}');
}`},
/*expectedNumReports=*/ 1);
}, 'contributeToHistogram() with too large bucket in scoreAd()');
promise_test(async test => {
const uuid = generateUuid();
const contribution = '{ bucket: -1n, value: 1 }';
await runReportTest(test, uuid,
{ reportResult:
`try {
privateAggregation.contributeToHistogram(${contribution});
} catch {
sendReportTo('${createWritingURL(uuid)}');
}`},
/*expectedNumReports=*/ 1);
}, 'contributeToHistogram() with negative bucket in reportResult()');
promise_test(async test => {
const uuid = generateUuid();
const contribution = '{ bucket: 1, value: 1 }';
await runReportTest(test, uuid,
{ generateBid:
`try {
privateAggregation.contributeToHistogram(${contribution});
} catch {
forDebuggingOnly.reportAdAuctionWin('${createWritingURL(uuid)}');
}`},
/*expectedNumReports=*/ 1);
}, 'contributeToHistogram() with non-BigInt bucket in generateBid()');
promise_test(async test => {
const uuid = generateUuid();
const contribution = '{ bucket: 1n, value: -1 }';
await runReportTest(test, uuid,
{ reportWin:
`try {
privateAggregation.contributeToHistogram(${contribution});
} catch {
sendReportTo('${createWritingURL(uuid)}');
}`},
/*expectedNumReports=*/ 1);
}, 'contributeToHistogram() with negative value in reportWin()');
</script>
</body>