summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/fledge/tentative/reporting-arguments.https.sub.window.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
commit36d22d82aa202bb199967e9512281e9a53db42c9 (patch)
tree105e8c98ddea1c1e4784a60a5a6410fa416be2de /testing/web-platform/tests/fledge/tentative/reporting-arguments.https.sub.window.js
parentInitial commit. (diff)
downloadfirefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz
firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip
Adding upstream version 115.7.0esr.upstream/115.7.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/fledge/tentative/reporting-arguments.https.sub.window.js')
-rw-r--r--testing/web-platform/tests/fledge/tentative/reporting-arguments.https.sub.window.js291
1 files changed, 291 insertions, 0 deletions
diff --git a/testing/web-platform/tests/fledge/tentative/reporting-arguments.https.sub.window.js b/testing/web-platform/tests/fledge/tentative/reporting-arguments.https.sub.window.js
new file mode 100644
index 0000000000..262e0eb87e
--- /dev/null
+++ b/testing/web-platform/tests/fledge/tentative/reporting-arguments.https.sub.window.js
@@ -0,0 +1,291 @@
+// META: script=/resources/testdriver.js
+// META: script=/common/utils.js
+// META: script=resources/fledge-util.js
+// META: timeout=long
+
+"use strict;"
+
+// Simplified version of reportTest() for validating arguments to reporting
+// methods. Only takes expressions to check in reporting methods. "uuid" is
+// optional, and one is generated if not passed one.
+async function runReportArgumentValidationTest(
+ test, reportResultSuccessCondition, reportWinSuccessCondition, uuid) {
+ if (!uuid)
+ uuid = generateUuid(test);
+ await runReportTest(
+ test, uuid,
+ // reportResult:
+ reportResultSuccessCondition,
+ `sendReportTo('${createSellerReportUrl(uuid)}');`,
+ // reportWin:
+ reportWinSuccessCondition,
+ `sendReportTo('${createBidderReportUrl(uuid)}');`,
+ [createSellerReportUrl(uuid), createBidderReportUrl(uuid)]
+ );
+}
+
+/////////////////////////////////////////////////////////////////////
+// reportResult() to reportWin() message passing tests
+/////////////////////////////////////////////////////////////////////
+
+promise_test(async test => {
+ const uuid = generateUuid(test);
+ await runReportTest(
+ test, uuid,
+ // reportResult:
+ null,
+ `sendReportTo('${createSellerReportUrl(uuid)}');
+ return 45;`,
+ // reportWin:
+ 'sellerSignals === 45',
+ `sendReportTo('${createBidderReportUrl(uuid)}');`,
+ // expectedReportUrls:
+ [createSellerReportUrl(uuid), createBidderReportUrl(uuid)]
+ );
+}, 'Seller passes number to bidder.');
+
+promise_test(async test => {
+ const uuid = generateUuid(test);
+ await runReportTest(
+ test, uuid,
+ // reportResult:
+ null,
+ `sendReportTo('${createSellerReportUrl(uuid)}');
+ return 'foo';`,
+ // reportWin:
+ 'sellerSignals === "foo"',
+ `sendReportTo('${createBidderReportUrl(uuid)}');`,
+ // expectedReportUrls:
+ [createSellerReportUrl(uuid), createBidderReportUrl(uuid)]
+ );
+}, 'Seller passes string to bidder.');
+
+promise_test(async test => {
+ const uuid = generateUuid(test);
+ await runReportTest(
+ test, uuid,
+ // reportResult:
+ null,
+ `sendReportTo('${createSellerReportUrl(uuid)}');
+ return [3, 1, 2];`,
+ // reportWin:
+ 'JSON.stringify(sellerSignals) === "[3,1,2]"',
+ `sendReportTo('${createBidderReportUrl(uuid)}');`,
+ // expectedReportUrls:
+ [createSellerReportUrl(uuid), createBidderReportUrl(uuid)]
+ );
+}, 'Seller passes array to bidder.');
+
+promise_test(async test => {
+ const uuid = generateUuid(test);
+ await runReportTest(
+ test, uuid,
+ // reportResult:
+ null,
+ `sendReportTo('${createSellerReportUrl(uuid)}');
+ return {a: 4, b:['c', null, {}]};`,
+ // reportWin:
+ `JSON.stringify(sellerSignals) === '{"a":4,"b":["c",null,{}]}'`,
+ `sendReportTo('${createBidderReportUrl(uuid)}');`,
+ // expectedReportUrls:
+ [createSellerReportUrl(uuid), createBidderReportUrl(uuid)]
+ );
+}, 'Seller passes object to bidder.');
+
+/////////////////////////////////////////////////////////////////////
+// reportResult() / reportWin() browserSignals tests.
+/////////////////////////////////////////////////////////////////////
+
+promise_test(async test => {
+ await runReportArgumentValidationTest(
+ test,
+ // reportResultSuccessCondition:
+ `browserSignals.topWindowHostname === "${window.location.hostname}"`,
+ // reportWinSuccessCondition:
+ `browserSignals.topWindowHostname === "${window.location.hostname}"`
+ );
+}, 'browserSignals.topWindowHostname test.');
+
+promise_test(async test => {
+ await runReportArgumentValidationTest(
+ test,
+ // reportResultSuccessCondition:
+ `browserSignals.seller === undefined`,
+ // reportWinSuccessCondition:
+ `browserSignals.seller === "${window.location.origin}"`
+ );
+}, 'browserSignals.seller test.');
+
+promise_test(async test => {
+ await runReportArgumentValidationTest(
+ test,
+ // reportResultSuccessCondition:
+ `browserSignals.topLevelSeller === undefined &&
+ browserSignals.componentSeller === undefined`,
+ // reportWinSuccessCondition:
+ `browserSignals.topLevelSeller === undefined &&
+ browserSignals.componentSeller === undefined`
+ );
+}, 'browserSignals.topLevelSeller and browserSignals.componentSeller test.');
+
+promise_test(async test => {
+ const uuid = generateUuid(test);
+ await runReportArgumentValidationTest(
+ test,
+ // reportResultSuccessCondition:
+ `browserSignals.renderUrl === "${createRenderUrl(uuid)}"`,
+ // reportWinSuccessCondition:
+ `browserSignals.renderUrl === "${createRenderUrl(uuid)}"`,
+ uuid
+ );
+}, 'browserSignals.renderUrl test.');
+
+promise_test(async test => {
+ await runReportArgumentValidationTest(
+ test,
+ // reportResultSuccessCondition:
+ `browserSignals.bid === 9`,
+ // reportWinSuccessCondition:
+ `browserSignals.bid === 9`
+ );
+}, 'browserSignals.bid test.');
+
+promise_test(async test => {
+ await runReportArgumentValidationTest(
+ test,
+ // reportResultSuccessCondition:
+ `browserSignals.desirability === 18`,
+ // reportWinSuccessCondition:
+ `browserSignals.desirability === undefined`
+ );
+}, 'browserSignals.desirability test.');
+
+promise_test(async test => {
+ await runReportArgumentValidationTest(
+ test,
+ // reportResultSuccessCondition:
+ `browserSignals.topLevelSellerSignals === undefined`,
+ // reportWinSuccessCondition:
+ `browserSignals.topLevelSellerSignals === undefined`
+ );
+}, 'browserSignals.topLevelSellerSignals test.');
+
+promise_test(async test => {
+ await runReportArgumentValidationTest(
+ test,
+ // reportResultSuccessCondition:
+ `browserSignals.dataVersion === undefined`,
+ // reportWinSuccessCondition:
+ `browserSignals.dataVersion === undefined`
+ );
+}, 'browserSignals.dataVersion test.');
+
+promise_test(async test => {
+ await runReportArgumentValidationTest(
+ test,
+ // reportResultSuccessCondition:
+ `browserSignals.modifiedBid === undefined`,
+ // reportWinSuccessCondition:
+ `browserSignals.modifiedBid === undefined`
+ );
+}, 'browserSignals.modifiedBid test.');
+
+promise_test(async test => {
+ const uuid = generateUuid(test);
+ await runReportArgumentValidationTest(
+ test,
+ // reportResultSuccessCondition:
+ `browserSignals.highestScoringOtherBid === 0`,
+ // reportWinSuccessCondition:
+ `browserSignals.highestScoringOtherBid === 0`,
+ uuid
+ );
+}, 'browserSignals.highestScoringOtherBid with no other interest groups test.');
+
+promise_test(async test => {
+ const uuid = generateUuid(test);
+ await joinInterestGroup(test, uuid,
+ { biddingLogicUrl: createBiddingScriptUrl({bid: -2}),
+ name: 'other interest group 1' });
+ await joinInterestGroup(test, uuid,
+ { biddingLogicUrl: createBiddingScriptUrl({bid: -1}),
+ name: 'other interest group 2' });
+ await runReportArgumentValidationTest(
+ test,
+ // reportResultSuccessCondition:
+ `browserSignals.highestScoringOtherBid === 0`,
+ // reportWinSuccessCondition:
+ `browserSignals.highestScoringOtherBid === 0`,
+ uuid
+ );
+}, 'browserSignals.highestScoringOtherBid with other groups that do not bid.');
+
+promise_test(async test => {
+ const uuid = generateUuid(test);
+ await joinInterestGroup(test, uuid,
+ { biddingLogicUrl: createBiddingScriptUrl({bid: 2}),
+ name: 'other interest group 1' });
+ await joinInterestGroup(test, uuid,
+ { biddingLogicUrl: createBiddingScriptUrl({bid: 5}),
+ name: 'other interest group 2' });
+ await joinInterestGroup(test, uuid,
+ { biddingLogicUrl: createBiddingScriptUrl({bid: 2}),
+ name: 'other interest group 3' });
+ await runReportArgumentValidationTest(
+ test,
+ // reportResultSuccessCondition:
+ `browserSignals.highestScoringOtherBid === 5`,
+ // reportWinSuccessCondition:
+ `browserSignals.highestScoringOtherBid === 5`,
+ uuid
+ );
+}, 'browserSignals.highestScoringOtherBid with other bids.');
+
+promise_test(async test => {
+ await runReportArgumentValidationTest(
+ test,
+ // reportResultSuccessCondition:
+ `browserSignals.interestGroupName === undefined`,
+ // reportWinSuccessCondition:
+ `browserSignals.interestGroupName === "default name"`
+ );
+}, 'browserSignals.interestGroupName test.');
+
+promise_test(async test => {
+ await runReportArgumentValidationTest(
+ test,
+ // reportResultSuccessCondition:
+ `browserSignals.madeHighestScoringOtherBid === undefined`,
+ // reportWinSuccessCondition:
+ `browserSignals.madeHighestScoringOtherBid === false`
+ );
+}, 'browserSignals.madeHighestScoringOtherBid with no other bids.');
+
+promise_test(async test => {
+ const uuid = generateUuid(test);
+ await joinInterestGroup(test, uuid,
+ { biddingLogicUrl: createBiddingScriptUrl({bid: -1}),
+ name: 'other interest group 2' });
+ await runReportArgumentValidationTest(
+ test,
+ // reportResultSuccessCondition:
+ `browserSignals.madeHighestScoringOtherBid === undefined`,
+ // reportWinSuccessCondition:
+ `browserSignals.madeHighestScoringOtherBid === false`
+ );
+}, 'browserSignals.madeHighestScoringOtherBid with group that did not bid.');
+
+promise_test(async test => {
+ const uuid = generateUuid(test);
+ await joinInterestGroup(test, uuid,
+ { biddingLogicUrl: createBiddingScriptUrl({bid: 1}),
+ name: 'other interest group 2' });
+await runReportArgumentValidationTest(
+ test,
+ // reportResultSuccessCondition:
+ `browserSignals.madeHighestScoringOtherBid === undefined`,
+ // reportWinSuccessCondition:
+ `browserSignals.madeHighestScoringOtherBid === true`,
+ uuid
+ );
+}, 'browserSignals.madeHighestScoringOtherBid with other bid.');