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); }); });