From fdde55f6319d26984bd8f86d5f247f4e100aee51 Mon Sep 17 00:00:00 2001 From: Rohan Mitchell Date: Mon, 23 Feb 2015 10:03:03 +1100 Subject: [PATCH] Add spec for ext_url filter, refactor --- .../darkswarm/filters/ext_url.js.coffee | 10 ++++------ .../darkswarm/filters/ext_url_spec.js.coffee | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+), 6 deletions(-) create mode 100644 spec/javascripts/unit/darkswarm/filters/ext_url_spec.js.coffee diff --git a/app/assets/javascripts/darkswarm/filters/ext_url.js.coffee b/app/assets/javascripts/darkswarm/filters/ext_url.js.coffee index 8d4b8b90fe..38eed7c294 100644 --- a/app/assets/javascripts/darkswarm/filters/ext_url.js.coffee +++ b/app/assets/javascripts/darkswarm/filters/ext_url.js.coffee @@ -1,9 +1,7 @@ -Darkswarm.filter "ext_url", () -> +Darkswarm.filter "ext_url", -> urlPattern = /^https?:\/\// (url, prefix) -> - if (!url) - return url - if (url.match(urlPattern)) - return url + if !url || url.match(urlPattern) + url else - return prefix + url + prefix + url diff --git a/spec/javascripts/unit/darkswarm/filters/ext_url_spec.js.coffee b/spec/javascripts/unit/darkswarm/filters/ext_url_spec.js.coffee new file mode 100644 index 0000000000..1575d8c246 --- /dev/null +++ b/spec/javascripts/unit/darkswarm/filters/ext_url_spec.js.coffee @@ -0,0 +1,19 @@ +describe "ensuring absolute URL", -> + filter = null + + beforeEach -> + module 'Darkswarm' + inject ($filter) -> + filter = $filter 'ext_url' + + it "returns null when no URL given", -> + expect(filter(null, "http://")).toBeNull() + + it "returns the URL as-is for http URLs", -> + expect(filter("http://example.com", "http://")).toEqual "http://example.com" + + it "returns the URL as-is for https URLs", -> + expect(filter("https://example.com", "https://")).toEqual "https://example.com" + + it "returns with URL with prefix added when a relative URL is given", -> + expect(filter("example.com", "http://")).toEqual "http://example.com"