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() {