summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/fledge/tentative/resources
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/fledge/tentative/resources')
-rw-r--r--testing/web-platform/tests/fledge/tentative/resources/fledge-util.sub.js43
-rw-r--r--testing/web-platform/tests/fledge/tentative/resources/trusted-bidding-signals.py20
-rw-r--r--testing/web-platform/tests/fledge/tentative/resources/update-url.py6
3 files changed, 61 insertions, 8 deletions
diff --git a/testing/web-platform/tests/fledge/tentative/resources/fledge-util.sub.js b/testing/web-platform/tests/fledge/tentative/resources/fledge-util.sub.js
index 7be02e34ff..a7d0f63830 100644
--- a/testing/web-platform/tests/fledge/tentative/resources/fledge-util.sub.js
+++ b/testing/web-platform/tests/fledge/tentative/resources/fledge-util.sub.js
@@ -77,6 +77,15 @@ function createDirectFromSellerSignalsURL(origin = window.location.origin) {
return url.toString();
}
+function createUpdateURL(params = {}) {
+ let origin = window.location.origin;
+ let url = new URL(`${origin}${RESOURCE_PATH}update-url.py`);
+ url.searchParams.append('body', params.body);
+ url.searchParams.append('uuid', params.uuid);
+
+ return url.toString();
+}
+
// Generates a UUID and registers a cleanup method with the test fixture to
// request a URL from the request tracking script that clears all data
// associated with the generated uuid when requested.
@@ -142,19 +151,21 @@ async function waitForObservedRequests(uuid, expectedRequests, filter) {
trackedRequests = trackedRequests.filter(filter);
}
- // If expected number of requests have been observed, compare with list of
- // all expected requests and exit.
- if (trackedRequests.length >= expectedRequests.length) {
- assert_array_equals(trackedRequests, expectedRequests);
- break;
- }
-
// If fewer than total number of expected requests have been observed,
// compare what's been received so far, to have a greater chance to fail
// rather than hang on error.
for (const trackedRequest of trackedRequests) {
assert_in_array(trackedRequest, expectedRequests);
}
+
+ // If expected number of requests have been observed, compare with list of
+ // all expected requests and exit. This check was previously before the for loop,
+ // but was swapped in order to avoid flakiness with failing tests and their
+ // respective *-expected.txt.
+ if (trackedRequests.length >= expectedRequests.length) {
+ assert_array_equals(trackedRequests, expectedRequests);
+ break;
+ }
}
}
@@ -830,3 +841,21 @@ let additionalBidHelper = function() {
fetchAdditionalBids: fetchAdditionalBids
};
}();
+
+
+// DeprecatedRenderURLReplacements helper function.
+// Returns an object containing sample strings both before and after the
+// replacements in 'replacements' have been applied by
+// deprecatedRenderURLReplacements. All substitution strings will appear
+// only once in the output strings.
+function createStringBeforeAndAfterReplacements(deprecatedRenderURLReplacements) {
+ let beforeReplacements = '';
+ let afterReplacements = '';
+ if(deprecatedRenderURLReplacements){
+ for (const [match, replacement] of Object.entries(deprecatedRenderURLReplacements)) {
+ beforeReplacements += match + "/";
+ afterReplacements += replacement + "/";
+ }
+ }
+ return { beforeReplacements, afterReplacements };
+}
diff --git a/testing/web-platform/tests/fledge/tentative/resources/trusted-bidding-signals.py b/testing/web-platform/tests/fledge/tentative/resources/trusted-bidding-signals.py
index f9ca9031f1..955a7c0bdf 100644
--- a/testing/web-platform/tests/fledge/tentative/resources/trusted-bidding-signals.py
+++ b/testing/web-platform/tests/fledge/tentative/resources/trusted-bidding-signals.py
@@ -1,3 +1,4 @@
+import collections
import json
from urllib.parse import unquote_plus
@@ -47,7 +48,8 @@ def main(request, response):
response.status = (200, b"OK")
# The JSON representation of this is used as the response body. This does
- # not currently include a "perInterestGroupData" object.
+ # not currently include a "perInterestGroupData" object except for
+ # updateIfOlderThanMs.
responseBody = {"keys": {}}
# Set when certain special keys are observed, used in place of the JSON
@@ -117,6 +119,22 @@ def main(request, response):
if "data-version" in interestGroupNames:
dataVersion = "4"
+ per_interest_group_data = collections.defaultdict(dict)
+ for name in interestGroupNames:
+ if name == "use-update-if-older-than-ms":
+ # One hour in milliseconds.
+ per_interest_group_data[name]["updateIfOlderThanMs"] = 3_600_000
+ elif name == "use-update-if-older-than-ms-small":
+ # A value less than the minimum of 10 minutes.
+ per_interest_group_data[name]["updateIfOlderThanMs"] = 1
+ elif name == "use-update-if-older-than-ms-zero":
+ per_interest_group_data[name]["updateIfOlderThanMs"] = 0
+ elif name == "use-update-if-older-than-ms-negative":
+ per_interest_group_data[name]["updateIfOlderThanMs"] = -1
+
+ if per_interest_group_data:
+ responseBody["perInterestGroupData"] = dict(per_interest_group_data)
+
if contentType:
response.headers.set("Content-Type", contentType)
if adAuctionAllowed:
diff --git a/testing/web-platform/tests/fledge/tentative/resources/update-url.py b/testing/web-platform/tests/fledge/tentative/resources/update-url.py
new file mode 100644
index 0000000000..7de89e0f8f
--- /dev/null
+++ b/testing/web-platform/tests/fledge/tentative/resources/update-url.py
@@ -0,0 +1,6 @@
+def main(request, response):
+ response.status = (200, b"OK")
+ response.headers.set(b"Ad-Auction-Allowed", b"true")
+ response.headers.set(b"Content-Type", b"application/json")
+ body = request.GET.first(b"body", None)
+ return body \ No newline at end of file