Skip to content

Commit

Permalink
Add WPTs for auctionReportBuyersDebugModeConfig, fix crash identified
Browse files Browse the repository at this point in the history
Adds Web Platform Tests for the feature that allows debug mode to be
specified for auctionReportBuyers reporting.

Also fixes a crash identified by these tests. When an
auctionReportBuyersDebugModeConfig is provided and enabled is false, but
a debugKey is still provided, a TypeError is correctly thrown. The
auction should also fail at that point, but before this change that did
not occur. Instead, a CHECK was later hit.

Bug: 41485586, 327247098
Change-Id: Ia843011ff1dd74a5e4ba48002f5bea1b77d074d0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5328953
Reviewed-by: Qingxin Wu <[email protected]>
Commit-Queue: Alex Turner <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1267083}
  • Loading branch information
alexmturner authored and chromium-wpt-export-bot committed Feb 29, 2024
1 parent 90ec003 commit 6156550
Showing 1 changed file with 158 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
<!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();

await runReportTest(
test, uuid, {reportResult: `sendReportTo('${createWritingURL(uuid)}');`},
/*expectedNumReports=*/ 1,
/*overrides=*/ {
runAdAuction: {
auctionReportBuyerKeys: [100n],
auctionReportBuyers: {interestGroupCount: {bucket: 0n, scale: 1}}
}
});
}, 'auctionReportBuyerDebugModeConfig missing');

promise_test(async test => {
const uuid = generateUuid();

await runReportTest(
test, uuid, {reportResult: `sendReportTo('${createWritingURL(uuid)}');`},
/*expectedNumReports=*/ 1,
/*overrides=*/ {
runAdAuction: {
auctionReportBuyerKeys: [100n],
auctionReportBuyers: {interestGroupCount: {bucket: 0n, scale: 1}},
auctionReportBuyerDebugModeConfig: {enabled: true}
}
});
}, 'auctionReportBuyerDebugModeConfig with enabled true');

promise_test(async test => {
const uuid = generateUuid();

await runReportTest(
test, uuid, {reportResult: `sendReportTo('${createWritingURL(uuid)}');`},
/*expectedNumReports=*/ 1,
/*overrides=*/ {
runAdAuction: {
auctionReportBuyerKeys: [100n],
auctionReportBuyers: {interestGroupCount: {bucket: 0n, scale: 1}},
auctionReportBuyerDebugModeConfig: {enabled: true, debugKey: 1234n}
}
});
}, 'auctionReportBuyerDebugModeConfig with enabled true and debug key');

promise_test(async test => {
const uuid = generateUuid();

await runReportTest(
test, uuid, {reportResult: `sendReportTo('${createWritingURL(uuid)}');`},
/*expectedNumReports=*/ 1,
/*overrides=*/ {
runAdAuction: {
auctionReportBuyerKeys: [100n],
auctionReportBuyers: {interestGroupCount: {bucket: 0n, scale: 1}},
auctionReportBuyerDebugModeConfig: {enabled: false}
}
});
}, 'auctionReportBuyerDebugModeConfig with enabled false');


promise_test(async test => {
const uuid = generateUuid();

await runReportTest(
test, uuid, {reportResult: `sendReportTo('${createWritingURL(uuid)}');`},
/*expectedNumReports=*/ 1,
/*overrides=*/ {
runAdAuction: {
auctionReportBuyerKeys: [100n],
auctionReportBuyers: {interestGroupCount: {bucket: 0n, scale: 1}},
auctionReportBuyerDebugModeConfig: {}
}
});
}, 'auctionReportBuyerDebugModeConfig empty');

promise_test(async test => {
const uuid = generateUuid();

await promise_rejects_js(
test, TypeError,
runReportTest(
test, uuid, {},
/*expectedNumReports=*/ 0,
/*overrides=*/ {
runAdAuction: {
auctionReportBuyerKeys: [100n],
auctionReportBuyers: {interestGroupCount: {bucket: 0n, scale: 1}},
auctionReportBuyerDebugModeConfig: {enabled: true, debugKey: -1n}
}
}));
}, 'auctionReportBuyerDebugModeConfig with negative debug key');

promise_test(async test => {
const uuid = generateUuid();

await promise_rejects_js(
test, TypeError,
runReportTest(
test, uuid, {},
/*expectedNumReports=*/ 0,
/*overrides=*/ {
runAdAuction: {
auctionReportBuyerKeys: [100n],
auctionReportBuyers: {interestGroupCount: {bucket: 0n, scale: 1}},
auctionReportBuyerDebugModeConfig:
{enabled: true, debugKey: 1n << 64n}
}
}));
}, 'auctionReportBuyerDebugModeConfig with too large debug key');

promise_test(async test => {
const uuid = generateUuid();

await promise_rejects_js(
test, TypeError,
runReportTest(
test, uuid, {},
/*expectedNumReports=*/ 0,
/*overrides=*/ {
runAdAuction: {
auctionReportBuyerKeys: [100n],
auctionReportBuyers: {interestGroupCount: {bucket: 0n, scale: 1}},
auctionReportBuyerDebugModeConfig:
{enabled: false, debugKey: 1234n}
}
}));
}, 'auctionReportBuyerDebugModeConfig with debug key and enabled false');

promise_test(async test => {
const uuid = generateUuid();

await promise_rejects_js(
test, TypeError,
runReportTest(
test, uuid, {},
/*expectedNumReports=*/ 0,
/*overrides=*/ {
runAdAuction: {
auctionReportBuyerKeys: [100n],
auctionReportBuyers: {interestGroupCount: {bucket: 0n, scale: 1}},
auctionReportBuyerDebugModeConfig: 123
}
}));
}, 'auctionReportBuyerDebugModeConfig not a dictionary');

</script>
</body>

0 comments on commit 6156550

Please sign in to comment.