summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/fledge/tentative/no-winner.https.window.js
diff options
context:
space:
mode:
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.js106
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}`);
+}