import { safeURI } from "content-src/asrouter/template-utils";

describe("safeURI", () => {
  let warnStub;
  beforeEach(() => {
    warnStub = sinon.stub(console, "warn");
  });
  afterEach(() => {
    warnStub.restore();
  });
  it("should allow http: URIs", () => {
    assert.equal(safeURI("http://foo.com"), "http://foo.com");
  });
  it("should allow https: URIs", () => {
    assert.equal(safeURI("https://foo.com"), "https://foo.com");
  });
  it("should allow data URIs", () => {
    assert.equal(
      safeURI("data:image/png;base64,iVBO"),
      "data:image/png;base64,iVBO"
    );
  });
  it("should not allow javascript: URIs", () => {
    assert.equal(safeURI("javascript:foo()"), ""); // eslint-disable-line no-script-url
    assert.calledOnce(warnStub);
  });
  it("should not warn if the URL is falsey ", () => {
    assert.equal(safeURI(), "");
    assert.notCalled(warnStub);
  });
});
