diff --git a/src/ng/browser.js b/src/ng/browser.js index 9682cd28a0c8..fa050d54511f 100644 --- a/src/ng/browser.js +++ b/src/ng/browser.js @@ -237,7 +237,7 @@ function Browser(window, document, $log, $sniffer) { */ self.baseHref = function() { var href = baseElement.attr('href'); - return href ? href.replace(/^https?\:\/\/[^\/]*/, '') : href; + return href ? href.replace(/^https?\:\/\/[^\/]*/, '') : ''; }; ////////////////////////////////////////////////////////////// diff --git a/test/ng/browserSpecs.js b/test/ng/browserSpecs.js index 53ca26429493..e989330bbee8 100644 --- a/test/ng/browserSpecs.js +++ b/test/ng/browserSpecs.js @@ -279,6 +279,18 @@ describe('browser', function() { }); }); + describe('put via cookies(cookieName, string), if no ', function () { + beforeEach(function () { + fakeDocument.basePath = undefined; + }); + + it('should default path in cookie to "" (empty string)', function () { + browser.cookies('cookie', 'bender'); + // This only fails in Safari and IE when cookiePath returns undefined + // Where it now succeeds since baseHref return '' instead of undefined + expect(document.cookie).toEqual('cookie=bender'); + }); + }); describe('get via cookies()[cookieName]', function() { @@ -555,9 +567,9 @@ describe('browser', function() { expect(browser.baseHref()).toEqual('/base/path/'); }); - it('should return undefined if no ', function() { + it('should return \'\' (empty string) if no ', function() { fakeDocument.basePath = undefined; - expect(browser.baseHref()).toBeUndefined(); + expect(browser.baseHref()).toEqual(''); }); it('should remove domain from ', function() {