Checkpoint web parity through Chromium input tasks
This commit is contained in:
17
web/tests/unit/server-job-network-policy.test.mjs
Normal file
17
web/tests/unit/server-job-network-policy.test.mjs
Normal file
@@ -0,0 +1,17 @@
|
||||
import assert from "node:assert/strict";
|
||||
import test from "node:test";
|
||||
import { parseServerJobNetworkPolicy, resolveServerJobNetwork } from "../../../tools/web/server-job-network-policy.mjs";
|
||||
|
||||
test("M13-04D defaults to deny and admits only declared safe origins", () => {
|
||||
const policy = parseServerJobNetworkPolicy({ schemaVersion: 1, allowedOrigins: ["https://example.com", "http://127.0.0.1:8787", "https://example.com"] });
|
||||
assert.deepEqual(policy, { schemaVersion: 1, defaultNetwork: "DENY", allowedOrigins: ["http://127.0.0.1:8787", "https://example.com"] });
|
||||
assert.deepEqual(resolveServerJobNetwork(policy), { status: "DENIED", code: "SERVER_NETWORK_DENIED", origin: null, network: "DISABLED" });
|
||||
assert.equal(resolveServerJobNetwork(policy, "https://example.com").status, "ALLOWED");
|
||||
assert.equal(resolveServerJobNetwork(policy, "https://other.example").code, "SERVER_NETWORK_DENIED");
|
||||
});
|
||||
|
||||
test("M13-04D rejects unsafe or non-canonical origins", () => {
|
||||
for (const origin of ["http://example.com", "file:///tmp/x", "https://example.com/path", "https://user:pass@example.com"]) {
|
||||
assert.throws(() => parseServerJobNetworkPolicy({ schemaVersion: 1, allowedOrigins: [origin] }), /SERVER_NETWORK_/);
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user