anki/ts/html-filter/index.test.ts

48 lines
1.7 KiB
TypeScript
Raw Normal View History

2021-04-13 10:57:08 +02:00
// Copyright: Ankitects Pty Ltd and contributors
// License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
2021-06-18 20:41:54 +02:00
import { filterHTML } from ".";
describe("filterHTML", () => {
test("zero input creates zero output", () => {
expect(filterHTML("", true, false)).toBe("");
expect(filterHTML("", true, false)).toBe("");
expect(filterHTML("", false, false)).toBe("");
});
test("internal filtering", () => {
// font-size is filtered, weight is not
expect(
filterHTML(
"<div style=\"font-weight: bold; font-size: 10px;\"></div>",
true,
true,
),
).toBe("<div style=\"font-weight: bold;\"></div>");
});
test("background color", () => {
// transparent is stripped, other colors are not
expect(
filterHTML(
"<span style=\"background-color: transparent;\"></span>",
false,
true,
),
).toBe("<span style=\"\"></span>");
expect(
filterHTML("<span style=\"background-color: blue;\"></span>", false, true),
).toBe("<span style=\"background-color: blue;\"></span>");
// except if extended mode is off
expect(
filterHTML("<span style=\"background-color: blue;\">x</span>", false, false),
).toBe("x");
// no filtering on internal paste
expect(
filterHTML(
"<span style=\"background-color: transparent;\"></span>",
true,
true,
),
).toBe("<span style=\"background-color: transparent;\"></span>");
});
});