53 lines
2.2 KiB
JavaScript
53 lines
2.2 KiB
JavaScript
// This is a helper file used for the attribution-reporting-*.https.html tests.
|
|
// To use this, make sure you import these scripts:
|
|
// <script src="/resources/testharness.js"></script>
|
|
// <script src="/resources/testharnessreport.js"></script>
|
|
// <script src="/common/utils.js"></script>
|
|
// <script src="/common/dispatcher/dispatcher.js"></script>
|
|
// <script src="resources/utils.js"></script>
|
|
// <script src="/common/get-host-info.sub.js"></script>
|
|
|
|
async function runDefaultEnabledFeaturesTest(t, should_load, fenced_origin,
|
|
generator_api="fledge", allow="") {
|
|
const fencedframe = await attachFencedFrameContext({
|
|
generator_api: generator_api,
|
|
attributes: [["allow", allow]],
|
|
origin: fenced_origin});
|
|
|
|
if (!should_load) {
|
|
const fencedframe_blocked = new Promise(r => t.step_timeout(r, 1000));
|
|
const fencedframe_loaded = fencedframe.execute(() => {});
|
|
assert_equals(await Promise.any([
|
|
fencedframe_blocked.then(() => "blocked"),
|
|
fencedframe_loaded.then(() => "loaded"),
|
|
]), "blocked", "The fenced frame should not be loaded.");
|
|
return;
|
|
}
|
|
|
|
await fencedframe.execute((generator_api) => {
|
|
assert_true(
|
|
document.featurePolicy.allowsFeature('attribution-reporting'),
|
|
"Attribution reporting should be allowed if the fenced " +
|
|
"frame loaded using FLEDGE or shared storage.");
|
|
|
|
if (generator_api == "fledge") {
|
|
assert_true(
|
|
document.featurePolicy.allowsFeature('shared-storage'),
|
|
"Shared Storage should be allowed if the fenced " +
|
|
"frame loaded using FLEDGE.");
|
|
assert_true(
|
|
document.featurePolicy.allowsFeature('private-aggregation'),
|
|
"Private Aggregation should be allowed if the fenced " +
|
|
"frame loaded using FLEDGE.");
|
|
} else {
|
|
assert_true(
|
|
document.featurePolicy.allowsFeature('shared-storage'),
|
|
"Shared Storage should be allowed if the fenced " +
|
|
"frame loaded using Shared Storage.");
|
|
assert_false(
|
|
document.featurePolicy.allowsFeature('private-aggregation'),
|
|
"Private Aggregation should be disabled if the fenced " +
|
|
"frame loaded using Shared Storage.");
|
|
}
|
|
}, [generator_api]);
|
|
}
|