blob: 3643e4466277144a389b08d3f029f294aa0a4480 [file] [log] [blame]
// META: script=/resources/testdriver.js
// META: script=/common/utils.js
// META: script=resources/fledge-util.sub.js
// META: script=/common/subset-tests.js
// META: timeout=long
// META: variant=?1-5
// META: variant=?6-10
// META: variant=?11-last
"use strict;"
subsetTest(promise_test, async test => {
const uuid = generateUuid(test);
await runReportTest(
test, uuid,
{ reportResult:
`registerAdBeacon({beacon: '${createSellerBeaconURL(uuid)}'});`,
reportWin:
'' },
// expectedReportURLs:
[`${createSellerBeaconURL(uuid)}, body: `],
// renderURLOverride:
createRenderURL(
uuid,
`window.fence.reportEvent({
eventType: "beacon",
eventData: "",
destination: ["seller"]
});`)
);
}, 'Seller calls registerAdBeacon().');
subsetTest(promise_test, async test => {
const uuid = generateUuid(test);
await runReportTest(
test, uuid,
{ reportResult:
'',
reportWin:
`registerAdBeacon({beacon: '${createBidderBeaconURL(uuid)}'});`
},
// expectedReportURLs:
[`${createBidderBeaconURL(uuid)}, body: `],
// renderURLOverride:
createRenderURL(
uuid,
`window.fence.reportEvent({
eventType: "beacon",
eventData: "",
destination: ["buyer"]
});`)
);
}, 'Buyer calls registerAdBeacon().');
subsetTest(promise_test, async test => {
const uuid = generateUuid(test);
await runReportTest(
test, uuid,
{ reportResult:
`registerAdBeacon({beacon: '${createSellerBeaconURL(uuid)}'});`,
reportWin:
'' },
// expectedReportURLs:
[`${createSellerBeaconURL(uuid)}, body: body`],
// renderURLOverride:
createRenderURL(
uuid,
`window.fence.reportEvent({
eventType: "beacon",
eventData: "body",
destination: ["seller"]
});`)
);
}, 'Seller calls registerAdBeacon(), beacon sent with body.');
subsetTest(promise_test, async test => {
const uuid = generateUuid(test);
await runReportTest(
test, uuid,
{ reportResult:
'',
reportWin:
`registerAdBeacon({beacon: '${createBidderBeaconURL(uuid)}'});` },
// expectedReportURLs:
[`${createBidderBeaconURL(uuid)}, body: body`],
// renderURLOverride:
createRenderURL(
uuid,
`window.fence.reportEvent({
eventType: "beacon",
eventData: "body",
destination: ["buyer"]
});`)
);
}, 'Buyer calls registerAdBeacon(), beacon sent with body.');
subsetTest(promise_test, async test => {
const uuid = generateUuid(test);
await runReportTest(
test, uuid,
{ reportResult:
`registerAdBeacon({beacon: '${createSellerBeaconURL(uuid)}'});`,
reportWin:
'' },
// expectedReportURLs:
[`${createSellerBeaconURL(uuid)}, body: body1`,
`${createSellerBeaconURL(uuid)}, body: body2`],
// renderURLOverride:
createRenderURL(
uuid,
`window.fence.reportEvent({
eventType: "beacon",
eventData: "body1",
destination: ["seller"]
});
window.fence.reportEvent({
eventType: "beacon",
eventData: "body2",
destination: ["seller"]
});`)
);
}, 'Seller calls registerAdBeacon(). reportEvent() called twice.');
subsetTest(promise_test, async test => {
const uuid = generateUuid(test);
await runReportTest(
test, uuid,
{ reportResult:
'',
reportWin:
`registerAdBeacon({beacon: '${createBidderBeaconURL(uuid)}'});` },
// expectedReportURLs:
[`${createBidderBeaconURL(uuid)}, body: body1`,
`${createBidderBeaconURL(uuid)}, body: body2`],
// renderURLOverride:
createRenderURL(
uuid,
`window.fence.reportEvent({
eventType: "beacon",
eventData: "body1",
destination: ["buyer"]
});
window.fence.reportEvent({
eventType: "beacon",
eventData: "body2",
destination: ["buyer"]
});`)
);
}, 'Buyer calls registerAdBeacon(). reportEvent() called twice.');
subsetTest(promise_test, async test => {
const uuid = generateUuid(test);
await runReportTest(
test, uuid,
{ reportResult:
`registerAdBeacon({beacon1: '${createSellerBeaconURL(uuid, '1')}',
beacon2: '${createSellerBeaconURL(uuid, '2')}'});`,
reportWin:
'' },
// expectedReportURLs:
[`${createSellerBeaconURL(uuid, '1')}, body: body1`,
`${createSellerBeaconURL(uuid, '2')}, body: body2`],
// renderURLOverride:
createRenderURL(
uuid,
`window.fence.reportEvent({
eventType: "beacon1",
eventData: "body1",
destination: ["seller"]
});
window.fence.reportEvent({
eventType: "beacon2",
eventData: "body2",
destination: ["seller"]
});`)
);
}, 'Seller calls registerAdBeacon() with multiple beacons.');
subsetTest(promise_test, async test => {
const uuid = generateUuid(test);
await runReportTest(
test, uuid,
{ reportResult:
'',
reportWin:
`registerAdBeacon({beacon1: '${createBidderBeaconURL(uuid, '1')}',
beacon2: '${createBidderBeaconURL(uuid, '2')}'});`
},
// expectedReportURLs:
[`${createBidderBeaconURL(uuid, '1')}, body: body1`,
`${createBidderBeaconURL(uuid, '2')}, body: body2`],
// renderURLOverride:
createRenderURL(
uuid,
`window.fence.reportEvent({
eventType: "beacon1",
eventData: "body1",
destination: ["buyer"]
});
window.fence.reportEvent({
eventType: "beacon2",
eventData: "body2",
destination: ["buyer"]
});`)
);
}, 'Buyer calls registerAdBeacon() with multiple beacons.');
subsetTest(promise_test, async test => {
const uuid = generateUuid(test);
await runReportTest(
test, uuid,
{ reportResult:
`registerAdBeacon({beacon: '${createSellerBeaconURL(uuid)}'});`,
reportWin:
`registerAdBeacon({beacon: '${createBidderBeaconURL(uuid)}'});` },
// expectedReportURLs:
[`${createSellerBeaconURL(uuid)}, body: body`,
`${createBidderBeaconURL(uuid)}, body: body`],
// renderURLOverride:
createRenderURL(
uuid,
`window.fence.reportEvent({
eventType: "beacon",
eventData: "body",
destination: ["seller","buyer"]
});`)
);
}, 'Seller and buyer call registerAdBeacon() with shared reportEvent() call.');
subsetTest(promise_test, async test => {
const uuid = generateUuid(test);
await runReportTest(
test, uuid,
{ reportResult:
`registerAdBeacon({beacon: '${createSellerBeaconURL(uuid)}'});`,
reportWin:
`registerAdBeacon({beacon: '${createBidderBeaconURL(uuid)}'});` },
// expectedReportURLs:
[`${createSellerBeaconURL(uuid)}, body: body1`,
`${createBidderBeaconURL(uuid)}, body: body2`],
// renderURLOverride:
createRenderURL(
uuid,
`window.fence.reportEvent({
eventType: "beacon",
eventData: "body1",
destination: ["seller"]
});
window.fence.reportEvent({
eventType: "beacon",
eventData: "body2",
destination: ["buyer"]
});`)
);
}, 'Seller and buyer call registerAdBeacon() with separate reportEvent() calls.');
subsetTest(promise_test, async test => {
const uuid = generateUuid(test);
await runReportTest(
test, uuid,
{ reportResult:
// Multiple registerAdBeacon() call should result in an exception,
// throwing away all beacons and other types of reports.
`sendReportTo('${createSellerReportURL(uuid)}');
registerAdBeacon({beacon: '${createSellerBeaconURL(uuid)}'});
registerAdBeacon({beacon1: '${createSellerBeaconURL(uuid)}'});`,
reportWinSuccessCondition:
'sellerSignals === null',
reportWin:
`registerAdBeacon({beacon: '${createBidderBeaconURL(uuid)}'});` },
// expectedReportURLs:
[`${createBidderBeaconURL(uuid)}, body: body`],
// renderURLOverride:
createRenderURL(
uuid,
`window.fence.reportEvent({
eventType: "beacon",
eventData: "body",
destination: ["seller","buyer"]
});`)
);
}, 'Seller calls registerAdBeacon() multiple times.');
subsetTest(promise_test, async test => {
const uuid = generateUuid(test);
await runReportTest(
test, uuid,
{ reportResult:
`registerAdBeacon({beacon: '${createSellerBeaconURL(uuid)}'});`,
reportWin:
// Multiple registerAdBeacon() call should result in an exception,
// throwing away all beacons and other types of reports.
`sendReportTo('${createBidderReportURL(uuid)}');
registerAdBeacon({beacon: '${createBidderBeaconURL(uuid)}'});
registerAdBeacon({beacon1: '${createBidderBeaconURL(uuid)}'});` },
// expectedReportURLs:
[`${createSellerBeaconURL(uuid)}, body: body`],
// renderURLOverride:
createRenderURL(
uuid,
`window.fence.reportEvent({
eventType: "beacon",
eventData: "body",
destination: ["seller","buyer"]
});`)
);
}, 'Buyer calls registerAdBeacon() multiple times.');