UNPKG

@rr0/cms

Version:

RR0 Content Management System (CMS)

61 lines (60 loc) 2.95 kB
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(""); }); });