aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/ng/browser.js9
-rw-r--r--test/ng/browserSpecs.js27
2 files changed, 5 insertions, 31 deletions
diff --git a/src/ng/browser.js b/src/ng/browser.js
index 39253483..9682cd28 100644
--- a/src/ng/browser.js
+++ b/src/ng/browser.js
@@ -276,14 +276,15 @@ function Browser(window, document, $log, $sniffer) {
} else {
if (isString(value)) {
cookieLength = (rawDocument.cookie = escape(name) + '=' + escape(value) + ';path=' + cookiePath).length + 1;
+
+ // per http://www.ietf.org/rfc/rfc2109.txt browser must allow at minimum:
+ // - 300 cookies
+ // - 20 cookies per unique domain
+ // - 4096 bytes per cookie
if (cookieLength > 4096) {
$log.warn("Cookie '"+ name +"' possibly not set or overflowed because it was too large ("+
cookieLength + " > 4096 bytes)!");
}
- if (lastCookies.length > 20) {
- $log.warn("Cookie '"+ name +"' possibly not set or overflowed because too many cookies " +
- "were already set (" + lastCookies.length + " > 20 )");
- }
}
}
} else {
diff --git a/test/ng/browserSpecs.js b/test/ng/browserSpecs.js
index 3f28c605..53ca2642 100644
--- a/test/ng/browserSpecs.js
+++ b/test/ng/browserSpecs.js
@@ -277,33 +277,6 @@ describe('browser', function() {
expect(browser.cookies().x).toEqual('shortVal');
});
-
- it('should log warnings when 20 cookies per domain storage limit is reached', function() {
- var i, str, cookieStr;
-
- for (i=0; i<20; i++) {
- str = '' + i;
- browser.cookies(str, str);
- }
-
- i=0;
- for (str in browser.cookies()) {
- i++;
- }
- expect(i).toEqual(20);
- expect(logs.warn).toEqual([]);
- cookieStr = document.cookie;
-
- browser.cookies('one', 'more');
- expect(logs.warn).toEqual([]);
-
- //if browser dropped a cookie (very likely), make sure that the cache is not out of sync
- if (document.cookie === cookieStr) {
- expect(size(browser.cookies())).toEqual(20);
- } else {
- expect(size(browser.cookies())).toEqual(21);
- }
- });
});