aboutsummaryrefslogtreecommitdiffstats
path: root/test/ng/browserSpecs.js
diff options
context:
space:
mode:
authorMisko Hevery2012-05-03 14:52:26 -0700
committerMisko Hevery2012-05-04 15:50:39 -0700
commitd0159454dfa2e1cee4dd4ab7a41c2fcf9e121a64 (patch)
tree053d7cdd1e0501a28ce0cb30992aa4a2e7cdf15f /test/ng/browserSpecs.js
parent7f0eb1516165fcb73f1c9953018b7c9b70acfae1 (diff)
downloadangular.js-d0159454dfa2e1cee4dd4ab7a41c2fcf9e121a64.tar.bz2
bug($cookie): set on app base path rather the current path.
Diffstat (limited to 'test/ng/browserSpecs.js')
-rw-r--r--test/ng/browserSpecs.js71
1 files changed, 45 insertions, 26 deletions
diff --git a/test/ng/browserSpecs.js b/test/ng/browserSpecs.js
index 77894d43..bd3feed7 100644
--- a/test/ng/browserSpecs.js
+++ b/test/ng/browserSpecs.js
@@ -46,15 +46,39 @@ function MockWindow() {
};
}
+function MockDocument() {
+ var self = this;
+
+ this[0] = window.document
+ this.basePath = '/';
+
+ this.find = function(name) {
+ if (name == 'base') {
+ return {
+ attr: function(name){
+ if (name == 'href') {
+ return self.basePath;
+ } else {
+ throw new Error(name);
+ }
+ }
+ }
+ } else {
+ throw new Error(name);
+ }
+ }
+}
+
describe('browser', function() {
- var browser, fakeWindow, logs, scripts, removedScripts, sniffer;
+ var browser, fakeWindow, fakeDocument, logs, scripts, removedScripts, sniffer;
beforeEach(function() {
scripts = [];
removedScripts = [];
sniffer = {history: true, hashchange: true};
fakeWindow = new MockWindow();
+ fakeDocument = new MockDocument();
var fakeBody = [{appendChild: function(node){scripts.push(node);},
removeChild: function(node){removedScripts.push(node);}}];
@@ -66,7 +90,7 @@ describe('browser', function() {
info: function() { logs.info.push(slice.call(arguments)); },
error: function() { logs.error.push(slice.call(arguments)); }};
- browser = new Browser(fakeWindow, jqLite(window.document), fakeBody, fakeLog, sniffer);
+ browser = new Browser(fakeWindow, fakeDocument, fakeLog, sniffer);
});
it('should contain cookie cruncher', function() {
@@ -137,12 +161,17 @@ describe('browser', function() {
function deleteAllCookies() {
var cookies = document.cookie.split(";");
+ var path = location.pathname;
for (var i = 0; i < cookies.length; i++) {
var cookie = cookies[i];
var eqPos = cookie.indexOf("=");
var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
- document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
+ var parts = path.split('/');
+ while (parts.length) {
+ document.cookie = name + "=;path=" + (parts.join('/') || '/') + ";expires=Thu, 01 Jan 1970 00:00:00 GMT";
+ parts.pop();
+ }
}
}
@@ -171,7 +200,7 @@ describe('browser', function() {
describe('remove via cookies(cookieName, undefined)', function() {
it('should remove a cookie when it is present', function() {
- document.cookie = 'foo=bar';
+ document.cookie = 'foo=bar;path=/';
browser.cookies('foo', undefined);
@@ -198,7 +227,7 @@ describe('browser', function() {
it('should overwrite an existing unsynced cookie', function() {
- document.cookie = "cookie=new";
+ document.cookie = "cookie=new;path=/";
var oldVal = browser.cookies('cookie', 'newer');
@@ -220,7 +249,7 @@ describe('browser', function() {
it('should log warnings when 4kb per cookie storage limit is reached', function() {
var i, longVal = '', cookieStr;
- for(i=0; i<4091; i++) {
+ for(i=0; i<4083; i++) {
longVal += '+';
}
@@ -286,13 +315,13 @@ describe('browser', function() {
it ('should return a value for an existing cookie', function() {
- document.cookie = "foo=bar=baz";
+ document.cookie = "foo=bar=baz;path=/";
expect(browser.cookies().foo).toEqual('bar=baz');
});
it ('should unescape cookie values that were escaped by puts', function() {
- document.cookie = "cookie2%3Dbar%3Bbaz=val%3Due";
+ document.cookie = "cookie2%3Dbar%3Bbaz=val%3Due;path=/";
expect(browser.cookies()['cookie2=bar;baz']).toEqual('val=ue');
});
@@ -308,8 +337,8 @@ describe('browser', function() {
describe('getAll via cookies()', function() {
it('should return cookies as hash', function() {
- document.cookie = "foo1=bar1";
- document.cookie = "foo2=bar2";
+ document.cookie = "foo1=bar1;path=/";
+ document.cookie = "foo2=bar2;path=/";
expect(browser.cookies()).toEqual({'foo1':'bar1', 'foo2':'bar2'});
});
@@ -324,13 +353,13 @@ describe('browser', function() {
browser.cookies('oatmealCookie', 'drool');
expect(browser.cookies()).toEqual({'oatmealCookie':'drool'});
- document.cookie = 'oatmealCookie=changed';
+ document.cookie = 'oatmealCookie=changed;path=/';
expect(browser.cookies().oatmealCookie).toEqual('changed');
});
it('should initialize cookie cache with existing cookies', function() {
- document.cookie = "existingCookie=existingValue";
+ document.cookie = "existingCookie=existingValue;path=/";
expect(browser.cookies()).toEqual({'existingCookie':'existingValue'});
});
@@ -530,35 +559,25 @@ describe('browser', function() {
describe('baseHref', function() {
var jqDocHead;
- function setDocumentBaseHrefTo(href) {
- clearDocumentBaseHref();
- jqDocHead.append('<base href="' + href +'" />');
- }
-
- function clearDocumentBaseHref() {
- jqDocHead.find('base').remove();
- }
-
beforeEach(function() {
jqDocHead = jqLite(document).find('head');
});
- afterEach(clearDocumentBaseHref);
-
it('should return value from <base href>', function() {
- setDocumentBaseHrefTo('/base/path/');
+ fakeDocument.basePath = '/base/path/';
expect(browser.baseHref()).toEqual('/base/path/');
});
it('should return undefined if no <base href>', function() {
+ fakeDocument.basePath = undefined;
expect(browser.baseHref()).toBeUndefined();
});
it('should remove domain from <base href>', function() {
- setDocumentBaseHrefTo('http://host.com/base/path/');
+ fakeDocument.basePath = 'http://host.com/base/path/';
expect(browser.baseHref()).toEqual('/base/path/');
- setDocumentBaseHrefTo('http://host.com/base/path/index.html');
+ fakeDocument.basePath = 'http://host.com/base/path/index.html';
expect(browser.baseHref()).toEqual('/base/path/index.html');
});
});