Need tests for (likely not a complete list):
* Test how InterestGroup values affected
by k-anon checks are passed to generateBid.
* adSizes, sizeGroups, ads, and adComponents
all need such tests.
* adSizes and sizeGroups currently have no tests, since they are incorectly
currently not passed to generateBid at
all.
* Test empty ads array:
Maybe simplest to test its numBids is empty? Hard to test a script isn't run.
* directFromSellerSignals.
* The expected order when both responses use the same ad slot is currently
undefined. However, we are in the process of resolving this matter
by
implementing a LIFO approach,
as outlined in progress at
crrev.com/c/
4930438. Once this solution is in place, a test
case will be
created
by fetching two different URLs
with signals that share the same
ad slot.
* After adding new test
cases for the component auction, test the
directFromSellerSignals function
with component auctions. Consider to
set up one auction in the top frame and two component auctions. Send
three fetch requests to retrieve three different AdAuctionSignals
headers. Ensure that you use three different seller origins for the
auctions and a different one for the buyer origin.
*
All generateBid() and scoreAd() input parameters.
*
All interest group fields (passed to auction, have effect on auction).
Very few fields covered.
Should be sure to cover buyerAndSellerReportingId and buyerReportingId for
component ads,
as they should not be settable.
Already covered:
Validation when joining/leaving interest group.
renderURL and metadata for component ads (only integers covered, but
probably not worth covering
all types,
if we have coverage for the
main renderURL).
* Filtering/prioritization (including bidding signals influencing priorities)
* Size restrictions / ad and component ad sizes.
* additionalBids.
* adCost.
* bidCurrency.
* modellingSignals.
* Updates (both after auction and triggered).
*
All auctionConfig parameters (including invalid auctionConfigs, and ones
with no buyers).
* Joining interest group
with duration of
0 should just leave the IG (not
currently guaranteed to work, due to potential
time skew between processes).
* Multiple buyers.
* Multiple interest groups
with same owner.
* Multiple frame tests (including loading component
ad URNs in fenced frames of other frames, etc)
* adAuctionConfig passed to reportResult().
* Component auctions.
* Including cross-origin sellers.
* Timeouts (seller timeout, buyer timeout, reporting timeout).
* browserSignals fields in scoring/bidding methods.
* In reporting methods, browserSignals fields: topLevelSeller,
componentSeller, modifiedBid, adCost, madeHighestScoringOtherBid
(
with interest group from another origin).
* Loading ads in iframes.
* In fencedframes window.fence.setReportEventDataForAutomaticBeacons()
* Automatic beacons (e.g., reserved.top_navigation)
* Network timeouts.
* Validate specific escaping behavior logic (still under discussion). There
are a number of different rules for which characters are escaped, and
whether spaces are escaped
as "%20" or
"+".
* Reports not sent
if ad not used.
* Interactions
with local network access API, which requires public
networks to send CORS preflights for requests made over
local networks.
Needs testing
with public publisher pages running auctions
with
sellers / buyers / update URLs on
local networks.
* Calling FLEDGE APIs (or at least leaveAdInterestGroup()
with no args)
in a non-ad FencedFrame.
* Promise AuctionConfig parameters
* Test network requests in terms of fetch behavior
* Network partition (not yet specced).
* Test that await is not needed for same-origin interest groups
* Verify that's still in the spec/explainer first.
* executionMode
* Including cross-origin join/leave behavior
with "group-by-origin" mode.
* Make sure state is not shared.
* Across scoreAd() / generateBid() calls, and
with report calls.
* In
"group-by-origin" execution mode across IGs joined from different
origins, and between generateBid() and reportWin().
* Test Content-
Type headers allowed in responess for script/wasm/JSON fetches.
* Test WASM support, updating createBiddingWasmHelperURL().
* Remaining interest group updates.
*
Check that an update
with one valid field and one invalid one fails.
* Test that an update works
if owner and/or name
match those in the interest group.
* Test updating the update URL and bidding script URL so they are
all the
same origin (requires updating test fixture to handle multiple updates).
* Test when Ads is null.
* Test updating a cross origin interest group.
* Test fields that are updatable but do not make it to 'generateBid'.
If possible:
* Aggregate reporting.
* Join/leave permission delegation via .well-known files
* Including tests for clearOriginJoinedInterestGroups().
* Include tests for HTTP-y/fetch-y things (e.g., whether they have cookies)
* k-anonymity.
* Signals request batching. This is an optional feature, so can't
require it,
but maybe a test
where batching could be used, and make sure things work,
whether batching is used or not?
* reporting timeout being
0.
* Test input
with invalid https origin in web platform tests for both trusted bidding
and scoring signals coordinators.
* Test selectable buyer and seller reporting ids
with k-anonymity enforcement.
* Test that service workers cannot see update urls.
* This was attempted in [here](
https://chromium-review.googlesource.com/c/chromium/src/+/5512083),
but needed to be reverted because it kept timing out, [see here](
https://g-issues.chromium.org/issues/339048485)