-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Bug 1921337 [wpt PR 48352] - Web platform tests for Fledge Deal suppo…
…rt., a=testonly Automatic update from web-platform-tests Web platform tests for Fledge Deal support. This tests that all of the following receive the expected reporting ids in every major scenario possible involving the `selectableBuyerAndSellerReportingIds`. These do not test anything with k-anon enforcement on, but a TODO was added for that. Bug: 356654297 Change-Id: Iaec6d54141abb33b0a43382736dc5d197d66f60e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5868409 Reviewed-by: Orr Bernstein <orrb@google.com> Commit-Queue: Youssef Bourouphael <ybourouphael@google.com> Reviewed-by: Daniel Cheng <dcheng@chromium.org> Cr-Commit-Position: refs/heads/main@{#1360755} -- wpt-commits: 8d500adf7d6937060f1195e63ea02f17700be14b wpt-pr: 48352
- Loading branch information
1 parent
844d2e8
commit 69765c4
Showing
2 changed files
with
310 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
309 changes: 309 additions & 0 deletions
309
testing/web-platform/tests/fledge/tentative/reporting-ids.https.window.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,309 @@ | ||
// 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-last | ||
|
||
|
||
"use strict;" | ||
|
||
const makeTest = ({ | ||
// Name of the test. | ||
name, | ||
// The value of the selectableReportingIds to be used in the test. | ||
selectableBuyerAndSellerReportingIds = undefined, | ||
// The value of the buyerAndSellerReportingId to be used in the test. | ||
buyerAndSellerReportingId = undefined, | ||
// The value of the buyerReportingId to be used in the test. | ||
buyerReportingId = undefined, | ||
// The javascript comparison to be used in generateBid() | ||
generateBidComparison, | ||
// what gets returned by generateBid() | ||
generateBidReturn, | ||
// The javascript comparison to be used in scoreAd() | ||
scoreAdComparison, | ||
// The javascript comparison to be used in reportWin() | ||
reportWinComparison, | ||
// The javascript comparison to be used in reportResult() | ||
reportResultComparison, | ||
// Whether we expect the auction to have a winner or not. | ||
expectWinner = true, | ||
}) => { | ||
subsetTest(promise_test, async test => { | ||
const uuid = generateUuid(test); | ||
let renderURL = createRenderURL(uuid); | ||
const bidderReportURL = createBidderReportURL(uuid); | ||
const sellerReportURL = createSellerReportURL(uuid); | ||
|
||
let interestGroupOverrides = {}; | ||
interestGroupOverrides.ads = [{ | ||
renderURL: renderURL, | ||
selectableBuyerAndSellerReportingIds: selectableBuyerAndSellerReportingIds, | ||
buyerAndSellerReportingId: buyerAndSellerReportingId, | ||
buyerReportingId: buyerReportingId, | ||
}]; | ||
interestGroupOverrides.biddingLogicURL = createBiddingScriptURL( | ||
{ | ||
generateBid: | ||
` | ||
if(${(generateBidComparison)}){ | ||
return ${generateBidReturn}; | ||
} | ||
throw "Failed comparison in generateBid: " + interestGroup["ads"][0]; | ||
`, | ||
reportWin: | ||
` | ||
if(${reportWinComparison}) | ||
sendReportTo('${bidderReportURL}') | ||
else | ||
throw "Failed comparison in reportWin"; | ||
` | ||
}); | ||
|
||
let auctionConfigOverrides = {}; | ||
auctionConfigOverrides.decisionLogicURL = createDecisionScriptURL( | ||
uuid, | ||
{ | ||
scoreAd: | ||
` | ||
if (${scoreAdComparison}){ | ||
return {desirability: 10, bid: 10} | ||
} | ||
throw "Failed comparison in scoreAd "; | ||
`, | ||
reportResult: | ||
` | ||
if(${reportResultComparison}) | ||
sendReportTo("${sellerReportURL}"); | ||
else | ||
throw "Failed comparison in reportResult"; | ||
` | ||
}); | ||
|
||
await joinInterestGroup(test, uuid, interestGroupOverrides); | ||
|
||
if (expectWinner) { | ||
await runBasicFledgeAuctionAndNavigate(test, uuid, auctionConfigOverrides); | ||
await waitForObservedRequests( | ||
uuid, | ||
[bidderReportURL, sellerReportURL]); | ||
} | ||
else { | ||
await runBasicFledgeTestExpectingNoWinner(test, uuid, auctionConfigOverrides); | ||
} | ||
}, name); | ||
}; | ||
|
||
// Verify that basic form of selectableReportingIds and selectedReportingId are where they should be. | ||
makeTest({ | ||
name: "selectableBuyerAndSellerReportingIds", | ||
selectableBuyerAndSellerReportingIds: ["selectable_id1", "selectable_id2"], | ||
generateBidComparison: `deepEquals(interestGroup["ads"][0].selectableBuyerAndSellerReportingIds, ["selectable_id1", "selectable_id2"])`, | ||
generateBidReturn: `{bid:10, render: interestGroup.ads[0].renderURL, | ||
selectedBuyerAndSellerReportingId:interestGroup.ads[0].selectableBuyerAndSellerReportingIds[0]}`, | ||
scoreAdComparison: `browserSignals.selectedBuyerAndSellerReportingId === "selectable_id1" && | ||
browserSignals.buyerAndSellerReportingId === undefined && | ||
browserSignals.buyerReportingId === undefined`, | ||
reportWinComparison: `browserSignals.selectedBuyerAndSellerReportingId === "selectable_id1" && | ||
browserSignals.buyerAndSellerReportingId === undefined && | ||
browserSignals.buyerReportingId === undefined`, | ||
reportResultComparison: `browserSignals.selectedBuyerAndSellerReportingId === "selectable_id1" && | ||
browserSignals.buyerAndSellerReportingId === undefined && | ||
browserSignals.buyerReportingId === undefined`, | ||
}); | ||
|
||
// Verify the buyer and seller reporting id is where we expect it when it is present alongside the selected reporting id. | ||
makeTest({ | ||
name: "selectableBuyerAndSellerReportingIds and buyerAndSellerReportingId", | ||
selectableBuyerAndSellerReportingIds: ["selectable_id1", "selectable_id2"], | ||
buyerAndSellerReportingId: "buyer_and_seller_reporting_id", | ||
generateBidComparison: `deepEquals(interestGroup["ads"][0].selectableBuyerAndSellerReportingIds, ["selectable_id1", "selectable_id2"]) && | ||
interestGroup["ads"][0].buyerAndSellerReportingId === "buyer_and_seller_reporting_id"`, | ||
generateBidReturn: `{bid:10, render: interestGroup.ads[0].renderURL, | ||
selectedBuyerAndSellerReportingId:interestGroup.ads[0].selectableBuyerAndSellerReportingIds[0]}`, | ||
scoreAdComparison: `browserSignals.selectedBuyerAndSellerReportingId === "selectable_id1" && | ||
browserSignals.buyerAndSellerReportingId === "buyer_and_seller_reporting_id" && | ||
browserSignals.buyerReportingId === undefined`, | ||
reportWinComparison: `browserSignals.selectedBuyerAndSellerReportingId === "selectable_id1" && | ||
browserSignals.buyerAndSellerReportingId === "buyer_and_seller_reporting_id" && | ||
browserSignals.buyerReportingId === undefined`, | ||
reportResultComparison: `browserSignals.selectedBuyerAndSellerReportingId === "selectable_id1" && | ||
browserSignals.buyerAndSellerReportingId === "buyer_and_seller_reporting_id" && | ||
browserSignals.buyerReportingId === undefined`, | ||
}); | ||
|
||
// Verify the buyer reporting id is where we expect it when it is present alongside the selected reporting id. | ||
makeTest({ | ||
name: "selectableBuyerAndSellerReportingIds and buyerReportingId", | ||
selectableBuyerAndSellerReportingIds: ["selectable_id1", "selectable_id2"], | ||
buyerReportingId: "buyer_reporting_id", | ||
generateBidComparison: `deepEquals(interestGroup["ads"][0].selectableBuyerAndSellerReportingIds, ["selectable_id1", "selectable_id2"]) && | ||
interestGroup["ads"][0].buyerReportingId === "buyer_reporting_id"`, | ||
generateBidReturn: `{bid:10, render: interestGroup.ads[0].renderURL, | ||
selectedBuyerAndSellerReportingId:interestGroup.ads[0].selectableBuyerAndSellerReportingIds[0]}`, | ||
scoreAdComparison: `browserSignals.selectedBuyerAndSellerReportingId === "selectable_id1" && | ||
browserSignals.buyerAndSellerReportingId === undefined && | ||
browserSignals.buyerReportingId === undefined`, | ||
reportWinComparison: `browserSignals.selectedBuyerAndSellerReportingId === "selectable_id1" && | ||
browserSignals.buyerAndSellerReportingId === undefined && | ||
browserSignals.buyerReportingId === "buyer_reporting_id"`, | ||
reportResultComparison: `browserSignals.selectedBuyerAndSellerReportingId === "selectable_id1" && | ||
browserSignals.buyerAndSellerReportingId === undefined && | ||
browserSignals.buyerReportingId === undefined`, | ||
}); | ||
|
||
// Verify all reporting ids are where we expect when they are all present alongside the selected reporting id. | ||
makeTest({ | ||
name: "selectableBuyerAndSellerReportingIds, buyerAndSellerReportingId, and buyerReportingId", | ||
selectableBuyerAndSellerReportingIds: ["selectable_id1", "selectable_id2"], | ||
buyerAndSellerReportingId: "buyer_and_seller_reporting_id", | ||
buyerReportingId: "buyer_reporting_id", | ||
generateBidComparison: `deepEquals(interestGroup["ads"][0].selectableBuyerAndSellerReportingIds, ["selectable_id1", "selectable_id2"]) && | ||
interestGroup["ads"][0].buyerAndSellerReportingId === "buyer_and_seller_reporting_id" && | ||
interestGroup["ads"][0].buyerReportingId === "buyer_reporting_id"`, | ||
generateBidReturn: `{bid:10, render: interestGroup.ads[0].renderURL, | ||
selectedBuyerAndSellerReportingId:interestGroup.ads[0].selectableBuyerAndSellerReportingIds[0]}`, | ||
scoreAdComparison: `browserSignals.selectedBuyerAndSellerReportingId === "selectable_id1" && | ||
browserSignals.buyerAndSellerReportingId === "buyer_and_seller_reporting_id" && | ||
browserSignals.buyerReportingId === undefined`, | ||
reportWinComparison: `browserSignals.selectedBuyerAndSellerReportingId === "selectable_id1" && | ||
browserSignals.buyerAndSellerReportingId === "buyer_and_seller_reporting_id" && | ||
browserSignals.buyerReportingId === "buyer_reporting_id"`, | ||
reportResultComparison: `browserSignals.selectedBuyerAndSellerReportingId === "selectable_id1" && | ||
browserSignals.buyerAndSellerReportingId === "buyer_and_seller_reporting_id" && | ||
browserSignals.buyerReportingId === undefined`, | ||
}); | ||
|
||
// Verify old behavior occurs when no id was selected, even though there was selectable ids. | ||
makeTest({ | ||
name: "selectableBuyerAndSellerReportingIds but none selected, buyerAndSellerReportingId, and buyerReportingId", | ||
selectableBuyerAndSellerReportingIds: ["selectable_id1", "selectable_id2"], | ||
buyerAndSellerReportingId: "buyer_and_seller_reporting_id", | ||
buyerReportingId: "buyer_reporting_id", | ||
generateBidComparison: `deepEquals(interestGroup["ads"][0].selectableBuyerAndSellerReportingIds, ["selectable_id1", "selectable_id2"]) && | ||
interestGroup["ads"][0].buyerAndSellerReportingId === "buyer_and_seller_reporting_id" && | ||
interestGroup["ads"][0].buyerReportingId === "buyer_reporting_id"`, | ||
generateBidReturn: `{bid:10, render: interestGroup.ads[0].renderURL}`, | ||
scoreAdComparison: `browserSignals.selectedBuyerAndSellerReportingId === undefined && | ||
browserSignals.buyerAndSellerReportingId === undefined && | ||
browserSignals.buyerReportingId === undefined`, | ||
reportWinComparison: `browserSignals.selectedBuyerAndSellerReportingId === undefined && | ||
browserSignals.buyerAndSellerReportingId === "buyer_and_seller_reporting_id" && | ||
browserSignals.buyerReportingId === undefined`, | ||
reportResultComparison: `browserSignals.selectedBuyerAndSellerReportingId === undefined && | ||
browserSignals.buyerAndSellerReportingId === "buyer_and_seller_reporting_id" && | ||
browserSignals.buyerReportingId === undefined`, | ||
}); | ||
|
||
// Make sure if there was a selectedReportingId that's not within the selectables, | ||
// that the worklet throws an error and the auction does not have a winner. | ||
makeTest({ | ||
name: "selected not included selectables", | ||
selectableBuyerAndSellerReportingIds: ["selectable_id1", "selectable_id2"], | ||
buyerAndSellerReportingId: "buyer_and_seller_reporting_id", | ||
buyerReportingId: "buyer_reporting_id", | ||
generateBidComparison: `deepEquals(interestGroup["ads"][0].selectableBuyerAndSellerReportingIds, ["selectable_id1", "selectable_id2"]) && | ||
interestGroup["ads"][0].buyerAndSellerReportingId === "buyer_and_seller_reporting_id" && | ||
interestGroup["ads"][0].buyerReportingId === "buyer_reporting_id"`, | ||
generateBidReturn: `{bid:10, render: interestGroup.ads[0].renderURL, selectedBuyerAndSellerReportingId:"invalid_id"}`, | ||
scoreAdComparison: `browserSignals.selectedBuyerAndSellerReportingId === undefined && | ||
browserSignals.buyerAndSellerReportingId === undefined && | ||
browserSignals.buyerReportingId === undefined`, | ||
reportWinComparison: `false`, | ||
reportResultComparison: `false"`, | ||
expectWinner: false | ||
}); | ||
|
||
// Make sure if there was a selectedReportingId but no selectables, | ||
// that the worklet throws an error and the auction does not have a winner | ||
makeTest({ | ||
name: "selected without selectables", | ||
buyerAndSellerReportingId: "buyer_and_seller_reporting_id", | ||
buyerReportingId: "buyer_reporting_id", | ||
generateBidComparison: `interestGroup["ads"][0].selectableBuyerAndSellerReportingIds === undefined && | ||
interestGroup["ads"][0].buyerAndSellerReportingId === undefined && | ||
interestGroup["ads"][0].buyerReportingId === undefined`, | ||
generateBidReturn: `{bid:10, render: interestGroup.ads[0].renderURL, selectedBuyerAndSellerReportingId:"invalid_id"}`, | ||
scoreAdComparison: `browserSignals.selectedBuyerAndSellerReportingId === undefined && | ||
browserSignals.buyerAndSellerReportingId === undefined && | ||
browserSignals.buyerReportingId === undefined`, | ||
reportWinComparison: `false`, | ||
reportResultComparison: `false`, | ||
expectWinner: false | ||
}); | ||
|
||
// Verify old behavior occurs when there are no present selectable ids. | ||
makeTest({ | ||
name: "buyerAndSellerReportingId, and buyerReportingId, but no selectables present", | ||
buyerAndSellerReportingId: "buyer_and_seller_reporting_id", | ||
buyerReportingId: "buyer_reporting_id", | ||
generateBidComparison: `interestGroup["ads"][0].selectableBuyerAndSellerReportingIds === undefined && | ||
interestGroup["ads"][0].buyerAndSellerReportingId === undefined && | ||
interestGroup["ads"][0].buyerReportingId === undefined`, | ||
generateBidReturn: `{bid:10, render: interestGroup.ads[0].renderURL}`, | ||
scoreAdComparison: `browserSignals.selectedBuyerAndSellerReportingId === undefined && | ||
browserSignals.buyerAndSellerReportingId === undefined && | ||
browserSignals.buyerReportingId === undefined`, | ||
reportWinComparison: `browserSignals.selectedBuyerAndSellerReportingId === undefined && | ||
browserSignals.buyerAndSellerReportingId === "buyer_and_seller_reporting_id" && | ||
browserSignals.buyerReportingId === undefined`, | ||
reportResultComparison: `browserSignals.selectedBuyerAndSellerReportingId === undefined && | ||
browserSignals.buyerAndSellerReportingId === "buyer_and_seller_reporting_id" && | ||
browserSignals.buyerReportingId === undefined`, | ||
}); | ||
|
||
makeTest({ | ||
name: "only buyerAndSellerReportingId", | ||
buyerAndSellerReportingId: "buyer_and_seller_reporting_id", | ||
generateBidComparison: `interestGroup["ads"][0].selectableBuyerAndSellerReportingIds === undefined && | ||
interestGroup["ads"][0].buyerAndSellerReportingId === undefined && | ||
interestGroup["ads"][0].buyerReportingId === undefined`, | ||
generateBidReturn: `{bid:10, render: interestGroup.ads[0].renderURL}`, | ||
scoreAdComparison: `browserSignals.selectedBuyerAndSellerReportingId === undefined && | ||
browserSignals.buyerAndSellerReportingId === undefined && | ||
browserSignals.buyerReportingId === undefined`, | ||
reportWinComparison: `browserSignals.selectedBuyerAndSellerReportingId === undefined && | ||
browserSignals.buyerAndSellerReportingId === "buyer_and_seller_reporting_id" && | ||
browserSignals.buyerReportingId === undefined`, | ||
reportResultComparison: `browserSignals.selectedBuyerAndSellerReportingId === undefined && | ||
browserSignals.buyerAndSellerReportingId === "buyer_and_seller_reporting_id" && | ||
browserSignals.buyerReportingId === undefined`, | ||
}); | ||
|
||
makeTest({ | ||
name: "only buyerReportingId", | ||
buyerReportingId: "buyer_reporting_id", | ||
generateBidComparison: `interestGroup["ads"][0].selectableBuyerAndSellerReportingIds === undefined && | ||
interestGroup["ads"][0].buyerAndSellerReportingId === undefined && | ||
interestGroup["ads"][0].buyerReportingId === undefined`, | ||
generateBidReturn: `{bid:10, render: interestGroup.ads[0].renderURL}`, | ||
scoreAdComparison: `browserSignals.selectedBuyerAndSellerReportingId === undefined && | ||
browserSignals.buyerAndSellerReportingId === undefined && | ||
browserSignals.buyerReportingId === undefined`, | ||
reportWinComparison: `browserSignals.selectedBuyerAndSellerReportingId === undefined && | ||
browserSignals.buyerAndSellerReportingId === undefined && | ||
browserSignals.buyerReportingId === "buyer_reporting_id"`, | ||
reportResultComparison: `browserSignals.selectedBuyerAndSellerReportingId === undefined && | ||
browserSignals.buyerAndSellerReportingId === undefined && | ||
browserSignals.buyerReportingId === undefined`, | ||
}); | ||
|
||
makeTest({ | ||
name: "no reporting ids, expect IG name", | ||
generateBidComparison: `interestGroup["ads"][0].selectableBuyerAndSellerReportingIds === undefined && | ||
interestGroup["ads"][0].buyerAndSellerReportingId === undefined && | ||
interestGroup["ads"][0].buyerReportingId === undefined`, | ||
generateBidReturn: `{bid:10, render: interestGroup.ads[0].renderURL}`, | ||
scoreAdComparison: `browserSignals.selectedBuyerAndSellerReportingId === undefined && | ||
browserSignals.buyerAndSellerReportingId === undefined && | ||
browserSignals.buyerReportingId === undefined`, | ||
reportWinComparison: `browserSignals.selectedBuyerAndSellerReportingId === undefined && | ||
browserSignals.buyerAndSellerReportingId === undefined && | ||
browserSignals.buyerReportingId === undefined && | ||
browserSignals.interestGroupName === "default name"`, | ||
reportResultComparison: `browserSignals.selectedBuyerAndSellerReportingId === undefined && | ||
browserSignals.buyerAndSellerReportingId === undefined && | ||
browserSignals.buyerReportingId === undefined`, | ||
}); |