summaryrefslogtreecommitdiffstats
path: root/browser/components/newtab/test/unit/asrouter/template-utils.test.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/newtab/test/unit/asrouter/template-utils.test.js')
-rw-r--r--browser/components/newtab/test/unit/asrouter/template-utils.test.js31
1 files changed, 31 insertions, 0 deletions
diff --git a/browser/components/newtab/test/unit/asrouter/template-utils.test.js b/browser/components/newtab/test/unit/asrouter/template-utils.test.js
new file mode 100644
index 0000000000..e5f4b5ef4d
--- /dev/null
+++ b/browser/components/newtab/test/unit/asrouter/template-utils.test.js
@@ -0,0 +1,31 @@
+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);
+ });
+});