@rr0/cms
Version:
RR0 Content Management System (CMS)
61 lines (60 loc) • 2.95 kB
JavaScript
import { AnchorReplacer } from "./AnchorReplacer.js";
import { rr0TestUtil } from "../test/index.js";
import { JSDOM } from "jsdom";
import { beforeEach, describe, expect, test } from "@javarome/testscript";
describe("AnchorReplacer", () => {
let document;
beforeEach(async () => {
document = new JSDOM().window.document;
});
test("parse relative internal url", async () => {
const context = rr0TestUtil.newHtmlContext("science/crypto/ufo/enquete/dossier", "");
const replacer = new AnchorReplacer("https://rr0.org/", []);
const a = document.createElement("a");
a.href = "Roswell";
a.textContent = "Roswell";
const replaced = (await replacer.replacement(context, a));
expect(replaced.target).toBe("");
expect(replaced.href).toBe("Roswell/");
});
test("parse absolute internal file", async () => {
const context = rr0TestUtil.newHtmlContext("science/crypto/ufo/enquete/dossier", "");
const replacer = new AnchorReplacer("https://rr0.org/", []);
const a = document.createElement("a");
a.href = "/Contact.html";
a.textContent = "Contact";
const replaced = (await replacer.replacement(context, a));
expect(replaced.target).toBe("");
expect(replaced.href).toBe("/Contact.html");
});
test("parse absolute internal url", async () => {
const context = rr0TestUtil.newHtmlContext("science/crypto/ufo/enquete/dossier", "");
const replacer = new AnchorReplacer("https://rr0.org/", []);
const a = document.createElement("a");
a.href = "/time/pluies";
a.textContent = "pluies";
const replaced = (await replacer.replacement(context, a));
expect(replaced.target).toBe("");
expect(replaced.href).toBe("/time/pluies/");
});
test("parse absolute external url", async () => {
const context = rr0TestUtil.newHtmlContext("science/crypto/ufo/enquete/dossier", "");
const replacer = new AnchorReplacer("https://rr0.org/", []);
const a = document.createElement("a");
a.href = "https://wikipedia.org";
a.textContent = "Wikipedia";
const replaced = (await replacer.replacement(context, a));
expect(replaced.target).toBe("_blank");
expect(replaced.href).toBe("https://wikipedia.org/");
});
test("parse url with anchor", async () => {
const context = rr0TestUtil.newHtmlContext("science/crypto/ufo/enquete/dossier", "");
const replacer = new AnchorReplacer("https://rr0.org/", []);
const a = document.createElement("a");
a.href = "enquete/dossier/11Septembre/WTC/crashes#passeport";
a.textContent = "Passeports";
const replaced = (await replacer.replacement(context, a));
expect(replaced.href).toBe("enquete/dossier/11Septembre/WTC/crashes#passeport");
expect(replaced.target).toBe("");
});
});