|
|
@@ -3582,344 +3582,141 @@ describe('uri', function() {
|
|
|
$('#uriForm').bootstrapValidator('destroy').remove();
|
|
|
});
|
|
|
|
|
|
- it('Valid URIs', function() {
|
|
|
- this.$uri.val('http://foo.com/blah_blah');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://foo.com/blah_blah');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://foo.com/blah_blah/');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://foo.com/blah_blah_(wikipedia)');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://foo.com/blah_blah_(wikipedia)_(again)');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://www.example.com/wpstyle/?p=364');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('https://www.example.com/foo/?bar=baz&inga=42&quux');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://✪df.ws/123');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://userid:password@example.com:8080');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://userid:password@example.com:8080/');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://userid@example.com');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://userid@example.com/');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://userid@example.com:8080');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://userid@example.com:8080/');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://userid:password@example.com');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://userid:password@example.com/');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://142.42.1.1/');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://142.42.1.1:8080/');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://➡.ws/䨹');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://⌘.ws');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://⌘.ws/');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://foo.com/blah_(wikipedia)#cite-1');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://foo.com/blah_(wikipedia)_blah#cite-1');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://foo.com/unicode_(✪)_in_parens');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://foo.com/(something)?after=parens');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://☺.damowmow.com/');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://code.google.com/events/#&product=browser');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://j.mp');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('ftp://foo.bar/baz');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://foo.bar/?q=Test%20URL-encoded%20stuff');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://مثال.إختبار');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://例子.测试');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://उदाहरण.परीक्षा');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val("http://-.~_!$&'()*+,;=:%40:80%2f::::::@example.com");
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://1337.net');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://a.b-c.de');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://223.255.255.254');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://intranetsite');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://intranetsite/test');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://intranetsite:80');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://intranetsite:80/test');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://user:pass@intranetsite');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://user:pass@intranetsite/test');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://user:pass@intranetsite:80');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
-
|
|
|
- this.$uri.val('http://user:pass@intranetsite:80/test');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toBeTruthy();
|
|
|
+ var validGlobalURIs = [
|
|
|
+ 'http://foo.com/blah_blah',
|
|
|
+ 'http://foo.com/blah_blah',
|
|
|
+ 'http://foo.com/blah_blah/',
|
|
|
+ 'http://foo.com/blah_blah_(wikipedia)',
|
|
|
+ 'http://foo.com/blah_blah_(wikipedia)_(again)',
|
|
|
+ 'http://www.example.com/wpstyle/?p=364',
|
|
|
+ 'https://www.example.com/foo/?bar=baz&inga=42&quux',
|
|
|
+ 'http://✪df.ws/123',
|
|
|
+ 'http://userid:password@example.com:8080',
|
|
|
+ 'http://userid:password@example.com:8080/',
|
|
|
+ 'http://userid@example.com',
|
|
|
+ 'http://userid@example.com/',
|
|
|
+ 'http://userid@example.com:8080',
|
|
|
+ 'http://userid@example.com:8080/',
|
|
|
+ 'http://userid:password@example.com',
|
|
|
+ 'http://userid:password@example.com/',
|
|
|
+ 'http://142.42.1.1/',
|
|
|
+ 'http://142.42.1.1:8080/',
|
|
|
+ 'http://➡.ws/䨹',
|
|
|
+ 'http://⌘.ws',
|
|
|
+ 'http://⌘.ws/',
|
|
|
+ 'http://foo.com/blah_(wikipedia)#cite-1',
|
|
|
+ 'http://foo.com/blah_(wikipedia)_blah#cite-1',
|
|
|
+ 'http://foo.com/unicode_(✪)_in_parens',
|
|
|
+ 'http://foo.com/(something)?after=parens',
|
|
|
+ 'http://☺.damowmow.com/',
|
|
|
+ 'http://code.google.com/events/#&product=browser',
|
|
|
+ 'http://j.mp',
|
|
|
+ 'ftp://foo.bar/baz',
|
|
|
+ 'http://foo.bar/?q=Test%20URL-encoded%20stuff',
|
|
|
+ 'http://مثال.إختبار',
|
|
|
+ 'http://例子.测试',
|
|
|
+ 'http://उदाहरण.परीक्षा',
|
|
|
+ "http://-.~_!$&'()*+,;=:%40:80%2f::::::@example.com",
|
|
|
+ 'http://1337.net',
|
|
|
+ 'http://a.b-c.de',
|
|
|
+ 'http://223.255.255.254'
|
|
|
+ ];
|
|
|
+
|
|
|
+ var invalidGlobalURIs = [
|
|
|
+ 'http://',
|
|
|
+ 'http://.',
|
|
|
+ 'http://..',
|
|
|
+ 'http://../',
|
|
|
+ 'http://?',
|
|
|
+ 'http://??',
|
|
|
+ 'http://??/',
|
|
|
+ 'http://#',
|
|
|
+ 'http://##',
|
|
|
+ 'http://##/',
|
|
|
+ 'http://foo.bar?q=Spaces should be encoded',
|
|
|
+ '//',
|
|
|
+ '//a',
|
|
|
+ '///a',
|
|
|
+ '///',
|
|
|
+ 'http:///a',
|
|
|
+ 'foo.com',
|
|
|
+ 'rdar://1234',
|
|
|
+ 'h://test',
|
|
|
+ 'http:// shouldfail.com',
|
|
|
+ ':// should fail',
|
|
|
+ 'http://foo.bar/foo(bar)baz quux',
|
|
|
+ 'ftps://foo.bar/',
|
|
|
+ 'http://-error-.invalid/',
|
|
|
+ 'http://a.b--c.de/',
|
|
|
+ 'http://-a.b.co',
|
|
|
+ 'http://a.b-.co',
|
|
|
+ 'http://.www.foo.bar/',
|
|
|
+ 'http://www.foo.bar./',
|
|
|
+ 'http://.www.foo.bar./'
|
|
|
+ ];
|
|
|
+
|
|
|
+ var localURIs = [
|
|
|
+ 'http://intranetsite',
|
|
|
+ 'http://intranetsite/test',
|
|
|
+ 'http://intranetsite:80',
|
|
|
+ 'http://intranetsite:80/test',
|
|
|
+ 'http://user:pass@intranetsite',
|
|
|
+ 'http://user:pass@intranetsite/test',
|
|
|
+ 'http://user:pass@intranetsite:80',
|
|
|
+ 'http://user:pass@intranetsite:80/test',
|
|
|
+ 'http://10.1.1.0',
|
|
|
+ 'http://10.1.1.255',
|
|
|
+ 'http://10.1.1.1',
|
|
|
+ 'http://10.1.1.254',
|
|
|
+ 'http://127.0.0.1',
|
|
|
+ 'http://192.168.0.1',
|
|
|
+ 'http://0.0.0.0',
|
|
|
+ 'http://224.1.1.1',
|
|
|
+ 'http://1.1.1.1.1',
|
|
|
+ 'http://123.123.123',
|
|
|
+ 'http://3628126748'
|
|
|
+ ];
|
|
|
+
|
|
|
+ it('Valid URIs (allowLocal=false)', function() {
|
|
|
+ var me = this;
|
|
|
+ $.each(validGlobalURIs, function(index, uri) {
|
|
|
+ me.bv.resetForm();
|
|
|
+ me.$uri.val(uri);
|
|
|
+ me.bv.validate();
|
|
|
+ expect(me.bv.isValid()).toBeTruthy();
|
|
|
+ });
|
|
|
});
|
|
|
|
|
|
- it('Invalid URIs', function() {
|
|
|
- this.$uri.val('http://');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('http://.');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('http://..');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('http://../');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('http://?');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('http://??');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('http://??/');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('http://#');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('http://##');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('http://##/');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('http://foo.bar?q=Spaces should be encoded');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('//');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('//a');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('///a');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('///');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('http:///a');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('foo.com');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('rdar://1234');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('h://test');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('http:// shouldfail.com');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val(':// should fail');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('http://foo.bar/foo(bar)baz quux');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('ftps://foo.bar/');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('http://-error-.invalid/');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('http://a.b--c.de/');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('http://-a.b.co');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('http://a.b-.co');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('http://0.0.0.0');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('http://10.1.1.0');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('http://10.1.1.255');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('http://224.1.1.1');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('http://1.1.1.1.1');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('http://123.123.123');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('http://3628126748');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('http://.www.foo.bar/');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('http://www.foo.bar./');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
-
|
|
|
- this.$uri.val('http://.www.foo.bar./');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
+ it('Invalid URIs (allowLocal=false)', function() {
|
|
|
+ var me = this;
|
|
|
+ $.each(invalidGlobalURIs.concat(localURIs), function(index, uri) {
|
|
|
+ me.bv.resetForm();
|
|
|
+ me.$uri.val(uri);
|
|
|
+ me.bv.validate();
|
|
|
+ expect(me.bv.isValid()).toEqual(false);
|
|
|
+ });
|
|
|
+ });
|
|
|
|
|
|
- this.$uri.val('http://10.1.1.1');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
+ it('Valid URIs (allowLocal=true)', function() {
|
|
|
+ var me = this;
|
|
|
+ me.bv.updateOption('uri', 'uri', 'allowLocal', true);
|
|
|
+ $.each(validGlobalURIs.concat(localURIs), function(index, uri) {
|
|
|
+ me.bv.resetForm();
|
|
|
+ me.$uri.val(uri);
|
|
|
+ me.bv.validate();
|
|
|
+ expect(me.bv.isValid()).toBeTruthy();
|
|
|
+ });
|
|
|
+ });
|
|
|
|
|
|
- this.$uri.val('http://10.1.1.254');
|
|
|
- this.bv.validate();
|
|
|
- expect(this.bv.isValid()).toEqual(false);
|
|
|
+ it('Invalid URIs (allowLocal=true)', function() {
|
|
|
+ var me = this;
|
|
|
+ me.bv.updateOption('uri', 'uri', 'allowLocal', true);
|
|
|
+ $.each(invalidGlobalURIs, function(index, uri) {
|
|
|
+ me.bv.resetForm();
|
|
|
+ me.$uri.val(uri);
|
|
|
+ me.bv.validate();
|
|
|
+ expect(me.bv.isValid()).toEqual(false);
|
|
|
+ });
|
|
|
});
|
|
|
});
|
|
|
|