diff options
Diffstat (limited to 'test/ng/urlUtilsSpec.js')
| -rw-r--r-- | test/ng/urlUtilsSpec.js | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/test/ng/urlUtilsSpec.js b/test/ng/urlUtilsSpec.js new file mode 100644 index 00000000..57043a5a --- /dev/null +++ b/test/ng/urlUtilsSpec.js @@ -0,0 +1,31 @@ +'use strict'; + +describe('$$urlUtils', function() { + describe('parse', function() { + it('should normalize a relative url', inject(function($$urlUtils) { + expect($$urlUtils.resolve("foo")).toMatch(/^https?:\/\/[^/]+\/foo$/); + })); + + it('should parse relative URL into component pieces', inject(function($$urlUtils) { + var parsed = $$urlUtils.resolve("foo", true); + expect(parsed.href).toMatch(/https?:\/\//); + expect(parsed.protocol).toMatch(/^https?:/); + expect(parsed.host).not.toBe(""); + })); + }); + + describe('isSameOrigin', function() { + it('should support various combinations of urls', inject(function($$urlUtils, $document) { + expect($$urlUtils.isSameOrigin('path')).toBe(true); + var origin = $$urlUtils.resolve($document[0].location.href, true); + expect($$urlUtils.isSameOrigin('//' + origin.host + '/path')).toBe(true); + // Different domain. + expect($$urlUtils.isSameOrigin('http://example.com/path')).toBe(false); + // Auto fill protocol. + expect($$urlUtils.isSameOrigin('//example.com/path')).toBe(false); + // Should not match when the ports are different. + // This assumes that the test is *not* running on port 22 (very unlikely). + expect($$urlUtils.isSameOrigin('//' + origin.hostname + ':22/path')).toBe(false); + })); + }); +}); |
