Checkpoint web parity through Chromium input tasks
This commit is contained in:
18
web/tests/e2e/script-manifest-budgets.spec.ts
Normal file
18
web/tests/e2e/script-manifest-budgets.spec.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
import { expect, test } from "@playwright/test";
|
||||
|
||||
test("M13-02A enforces bounded script manifest text, module, path, dependency and permission limits", async ({ page }) => {
|
||||
await page.goto("/");
|
||||
const result = await page.evaluate(() => new Promise<Record<string, unknown>>((resolve, reject) => {
|
||||
const worker = new Worker("/src/workers/scripting-manifest-budget-test.worker.ts", { type: "module" });
|
||||
worker.onmessage = (event: MessageEvent<Record<string, unknown>>) => { worker.terminate(); resolve(event.data); };
|
||||
worker.onerror = (event) => { worker.terminate(); reject(new Error(event.message)); };
|
||||
worker.postMessage({});
|
||||
}));
|
||||
expect(result.valid).toEqual([2, "scripts/base.py", "deps/base.py", 256]);
|
||||
expect(result.count).toContain("SCRIPT_BUDGET_EXCEEDED");
|
||||
expect(result.totalBytes).toContain("SCRIPT_BUDGET_EXCEEDED");
|
||||
expect(result.module).toContain("SCRIPT_POLICY_DENIED");
|
||||
expect(result.path).toContain("SCRIPT_MANIFEST_INVALID");
|
||||
expect(result.dependency).toContain("SCRIPT_MANIFEST_INVALID");
|
||||
expect(result.permission).toContain("SCRIPT_POLICY_DENIED");
|
||||
});
|
||||
Reference in New Issue
Block a user