mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-17 20:52:15 +03:00
Implements the secure, opt-in Video Bridge for issue #9760, including bounded FFmpeg frame extraction, capability-aware routing, telemetry, settings UI, localization, documentation, and regression coverage.
78 lines
2.5 KiB
TypeScript
78 lines
2.5 KiB
TypeScript
import assert from "node:assert/strict";
|
|
import test from "node:test";
|
|
|
|
import { fetchRemoteMedia } from "../../src/shared/network/remoteImageFetch.ts";
|
|
|
|
test("generic remote-media fetch reuses the public-only bounded download policy", async () => {
|
|
const result = await fetchRemoteMedia("https://cdn.example.test/video.mp4", {
|
|
fetchImpl: async () =>
|
|
new Response(Buffer.from("video-bytes"), {
|
|
headers: { "content-type": "video/mp4" },
|
|
}),
|
|
guard: "public-only",
|
|
lookup: async () => [{ address: "203.0.113.10", family: 4 }],
|
|
maxBytes: 1024,
|
|
});
|
|
|
|
assert.equal(result.buffer.toString(), "video-bytes");
|
|
assert.equal(result.contentType, "video/mp4");
|
|
});
|
|
|
|
test("generic remote-media fetch rejects private DNS answers before downloading", async () => {
|
|
let fetched = false;
|
|
await assert.rejects(
|
|
() =>
|
|
fetchRemoteMedia("https://cdn.example.test/video.mp4", {
|
|
fetchImpl: async () => {
|
|
fetched = true;
|
|
return new Response("unexpected");
|
|
},
|
|
guard: "public-only",
|
|
lookup: async () => [{ address: "127.0.0.1", family: 4 }],
|
|
}),
|
|
/blocked private address/
|
|
);
|
|
assert.equal(fetched, false);
|
|
});
|
|
|
|
test("HTTPS-only media mode rejects a redirect downgrade before following the hop", async () => {
|
|
const fetched: string[] = [];
|
|
await assert.rejects(
|
|
() =>
|
|
fetchRemoteMedia("https://cdn.example.test/video.mp4", {
|
|
enforceHttps: true,
|
|
fetchImpl: async (input) => {
|
|
fetched.push(String(input));
|
|
return new Response(null, {
|
|
status: 302,
|
|
headers: { location: "http://public.example.test/downgraded.mp4" },
|
|
});
|
|
},
|
|
guard: "public-only",
|
|
lookup: async () => [{ address: "203.0.113.10", family: 4 }],
|
|
}),
|
|
/HTTPS/
|
|
);
|
|
assert.deepEqual(fetched, ["https://cdn.example.test/video.mp4"]);
|
|
});
|
|
|
|
test("existing image/audio callers remain backwards-compatible when HTTPS-only mode is omitted", async () => {
|
|
const fetched: string[] = [];
|
|
const result = await fetchRemoteMedia("https://cdn.example.test/media", {
|
|
fetchImpl: async (input) => {
|
|
fetched.push(String(input));
|
|
if (fetched.length === 1) {
|
|
return new Response(null, {
|
|
status: 302,
|
|
headers: { location: "http://public.example.test/media" },
|
|
});
|
|
}
|
|
return new Response("media");
|
|
},
|
|
guard: "public-only",
|
|
lookup: async () => [{ address: "203.0.113.10", family: 4 }],
|
|
});
|
|
assert.equal(result.buffer.toString(), "media");
|
|
assert.equal(fetched.length, 2);
|
|
});
|