43 lines
1.4 KiB
JavaScript
43 lines
1.4 KiB
JavaScript
|
|
defineSuite([
|
||
|
|
'Core/isCrossOriginUrl',
|
||
|
|
'Core/getAbsoluteUri',
|
||
|
|
'ThirdParty/Uri'
|
||
|
|
], function(
|
||
|
|
isCrossOriginUrl,
|
||
|
|
getAbsoluteUri,
|
||
|
|
Uri) {
|
||
|
|
'use strict';
|
||
|
|
|
||
|
|
it('returns false for relative urls', function() {
|
||
|
|
expect(isCrossOriginUrl('/some/url.jpg')).toEqual(false);
|
||
|
|
expect(isCrossOriginUrl('some/url.jpg')).toEqual(false);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('returns false for absolute urls that are not cross-origin', function() {
|
||
|
|
|
||
|
|
var absoluteUrl = getAbsoluteUri('/some/url.jpg');
|
||
|
|
expect(isCrossOriginUrl(absoluteUrl)).toEqual(false);
|
||
|
|
|
||
|
|
absoluteUrl = getAbsoluteUri('some/url.jpg');
|
||
|
|
expect(isCrossOriginUrl(absoluteUrl)).toEqual(false);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('returns true for absolute urls that are cross-origin', function() {
|
||
|
|
expect(isCrossOriginUrl('http://example.invalid/some/url.jpg')).toEqual(true);
|
||
|
|
|
||
|
|
// a different scheme counts as cross-origin
|
||
|
|
var pageUri = new Uri(location.href);
|
||
|
|
pageUri.scheme = location.protocol === 'https:' ? 'http' : 'https';
|
||
|
|
|
||
|
|
var absoluteUrl = pageUri.toString();
|
||
|
|
expect(isCrossOriginUrl(absoluteUrl)).toEqual(true);
|
||
|
|
|
||
|
|
// so does a different port
|
||
|
|
pageUri = new Uri(location.href);
|
||
|
|
pageUri.authority = location.hostname + ':' + (+location.port + 1);
|
||
|
|
|
||
|
|
absoluteUrl = pageUri.toString();
|
||
|
|
expect(isCrossOriginUrl(absoluteUrl)).toEqual(true);
|
||
|
|
});
|
||
|
|
});
|