diff options
Diffstat (limited to 'testing/web-platform/tests/fledge/tentative/no-winner.https.window.js')
-rw-r--r-- | testing/web-platform/tests/fledge/tentative/no-winner.https.window.js | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/testing/web-platform/tests/fledge/tentative/no-winner.https.window.js b/testing/web-platform/tests/fledge/tentative/no-winner.https.window.js new file mode 100644 index 0000000000..6e02139c81 --- /dev/null +++ b/testing/web-platform/tests/fledge/tentative/no-winner.https.window.js @@ -0,0 +1,106 @@ +// 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-15 +// META: variant=?16-20 +// META: variant=?21-25 +// META: variant=?26-30 +// META: variant=?31-35 +// META: variant=?36-40 +// META: variant=?41-45 +// META: variant=?46-last + +"use strict;" + +// The tests in this file focus on simple auctions (one bidder, one seller, one +// origin, one frame) which have no winning bid, either due to errors or due to +// there being no bids, except where tests fit better with another set of tests. + +// Errors common to Protected Audiences network requests. These strings will be +// appended to URLs to make the Python scripts that generate responses respond +// with errors. +const COMMON_NETWORK_ERRORS = [ + 'error=close-connection', + 'error=http-error', + 'error=no-content-type', + 'error=wrong-content-type', + 'error=bad-allow-fledge', + 'error=fledge-not-allowed', + 'error=no-allow-fledge', + 'error=no-body', +]; + +const BIDDING_LOGIC_SCRIPT_ERRORS = [ + ...COMMON_NETWORK_ERRORS, + 'error=no-generateBid', + 'generateBid=throw 1;', + 'generateBid=This does not compile', + // Default timeout test. Doesn't check how long timing out takes. + 'generateBid=while(1);', + // Bad return values: + 'generateBid=return 5;', + 'generateBid=return "Foo";', + 'generateBid=return interestGroup.ads[0].renderURL;', + 'generateBid=return {bid: 1, render: "https://not-in-ads-array.test/"};', + 'generateBid=return {bid: 1};', + 'generateBid=return {render: interestGroup.ads[0].renderURL};', + // These are not bidding rather than errors. + 'generateBid=return {bid:0, render: interestGroup.ads[0].renderURL};', + 'generateBid=return {bid:-1, render: interestGroup.ads[0].renderURL};' +]; + +const DECISION_LOGIC_SCRIPT_ERRORS = [ + ...COMMON_NETWORK_ERRORS, + 'error=no-scoreAd', + 'scoreAd=throw 1;', + 'scoreAd=This does not compile', + // Default timeout test. Doesn't check how long timing out takes. + 'scoreAd=while(1);', + // Bad return values: + 'scoreAd=return "Foo";', + 'scoreAd=return {desirability: "Foo"};', + // These are rejecting the bid rather than errors. + 'scoreAd=return 0;', + 'scoreAd=return -1;', + 'scoreAd=return {desirability: 0};', + 'scoreAd=return {desirability: -1};' +]; + +const BIDDING_WASM_HELPER_ERRORS = [ + ...COMMON_NETWORK_ERRORS, + 'error=not-wasm' +]; + +for (error of BIDDING_LOGIC_SCRIPT_ERRORS) { + subsetTest(promise_test, (async (error, test) => { + let biddingLogicURL = `${BASE_URL}resources/bidding-logic.sub.py?${error}`; + await joinGroupAndRunBasicFledgeTestExpectingNoWinner( + test, + {interestGroupOverrides: {biddingLogicURL: biddingLogicURL}} + ); + }).bind(undefined, error), `Bidding logic script: ${error}`); +} + +for (error of DECISION_LOGIC_SCRIPT_ERRORS) { + subsetTest(promise_test, (async (error, test) => { + let decisionLogicURL = + `${BASE_URL}resources/decision-logic.sub.py?${error}`; + await joinGroupAndRunBasicFledgeTestExpectingNoWinner( + test, { auctionConfigOverrides: { decisionLogicURL: decisionLogicURL } } + ); + }).bind(undefined, error), `Decision logic script: ${error}`); +} + +for (error of BIDDING_WASM_HELPER_ERRORS) { + subsetTest(promise_test, (async (error, test) => { + let biddingWasmHelperURL = + `${BASE_URL}resources/wasm-helper.py?${error}`; + await joinGroupAndRunBasicFledgeTestExpectingNoWinner( + test, { interestGroupOverrides: { biddingWasmHelperURL: biddingWasmHelperURL } } + ); + }).bind(undefined, error), `Bidding WASM helper: ${error}`); +} |