Skip to content

Commit

Permalink
Add test for Cross Origin Embedder Policy require-corp (#19)
Browse files Browse the repository at this point in the history
  • Loading branch information
mikemherron authored Nov 25, 2024
1 parent ea145a6 commit 8a9943b
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 0 deletions.
12 changes: 12 additions & 0 deletions sdktest/test/coep/body.tmpl.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<main>
<form>
<p>Cross Origin Embedder Policy of 'require-corp' can complete widget.</p>

<input type="textarea"/>
<div class="frc-captcha" data-sitekey="{{ .Config.Sitekey }}"></div>
<input type="submit"/>
</form>
</main>

<script defer src="{{ .SiteJSPath }}"></script>
<script defer src="main.tmpl.ts"></script>
3 changes: 3 additions & 0 deletions sdktest/test/coep/config.tmpl.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
headers:
cross-origin-embedder-policy: "require-corp"

20 changes: 20 additions & 0 deletions sdktest/test/coep/main.tmpl.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/*!
* Copyright (c) Friendly Captcha GmbH 2023.
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
import { sdktest } from "../../sdktestlib/sdk.js";

sdktest.test({ name: "widget completes after starting" }, async (t) => {
t.require.numberOfWidgets(1);
const w = t.getWidget()!;
const completePromise = t.assert.widgetCompletes(w)
w.start();

await completePromise;

// We destroy the widget to check the cleanup may trigger a CSP violation.
w.destroy();
});

0 comments on commit 8a9943b

Please sign in to comment.