diff options
Diffstat (limited to 'testing/web-platform/tests/fledge/tentative/resources')
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 |