FIX: 'Discourse.isInternal' wasn't working with protocol-less URLs
This commit is contained in:
parent
71fe66c8c2
commit
6ee11adf58
|
@ -173,8 +173,9 @@ const DiscourseURL = Ember.Object.createWithMixins({
|
|||
* @method isInternal
|
||||
* @param {String} url
|
||||
**/
|
||||
isInternal: function(url) {
|
||||
isInternal(url) {
|
||||
if (url && url.length) {
|
||||
if (url.indexOf('//') === 0) { url = "http:" + url; }
|
||||
if (url.indexOf('#') === 0) { return true; }
|
||||
if (url.indexOf('/') === 0) { return true; }
|
||||
if (url.indexOf(this.origin()) === 0) { return true; }
|
||||
|
|
|
@ -7,8 +7,10 @@ test("isInternal with a HTTP url", function() {
|
|||
|
||||
not(DiscourseURL.isInternal(null), "a blank URL is not internal");
|
||||
ok(DiscourseURL.isInternal("/test"), "relative URLs are internal");
|
||||
ok(DiscourseURL.isInternal("//eviltrout.com"), "a url on the same host is internal (protocol-less)");
|
||||
ok(DiscourseURL.isInternal("http://eviltrout.com/tophat"), "a url on the same host is internal");
|
||||
ok(DiscourseURL.isInternal("https://eviltrout.com/moustache"), "a url on a HTTPS of the same host is internal");
|
||||
not(DiscourseURL.isInternal("//twitter.com.com"), "a different host is not internal (protocol-less)");
|
||||
not(DiscourseURL.isInternal("http://twitter.com"), "a different host is not internal");
|
||||
});
|
||||
|
||||
|
|
Loading…
Reference in New Issue