From da2d1c5f151531503a3fbb01feed2211602ef2a6 Mon Sep 17 00:00:00 2001 From: Alex Gorbatchev Date: Tue, 3 Sep 2013 15:37:13 -0700 Subject: [PATCH 1/2] Fixed security exception being thrown when cookies are disabled --- bankersbox.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/bankersbox.js b/bankersbox.js index d3323b5..d29292c 100644 --- a/bankersbox.js +++ b/bankersbox.js @@ -31,6 +31,14 @@ window = {}; } + try { + // when cookies are disabled accessing `window.localStorage` throws ERR 18 + window.localStorage; + } + catch (e) { + return; + } + if (typeof(window.localStorage) === 'undefined' && ctx !== window) { // fake out localStorage functionality, mostly for testing purposes window.localStorage = {}; From 5c8fab36b104862251da50d96675f7dba3e4a7f3 Mon Sep 17 00:00:00 2001 From: Alex Gorbatchev Date: Tue, 3 Sep 2013 16:28:47 -0700 Subject: [PATCH 2/2] Added test for the disabled cookies test --- Makefile | 10 ++++++---- tests/bb_cookies_disabled.test_special.coffee | 8 ++++++++ 2 files changed, 14 insertions(+), 4 deletions(-) create mode 100644 tests/bb_cookies_disabled.test_special.coffee diff --git a/Makefile b/Makefile index 1414d96..815afad 100644 --- a/Makefile +++ b/Makefile @@ -16,14 +16,16 @@ min: bankersbox.min.js test: @echo "Testing bankersbox.js:" - @NODE_PATH=`pwd` expresso -s tests/* + @NODE_PATH=`pwd` ./node_modules/.bin/expresso -s tests/*.test.coffee + @NODE_PATH=`pwd` ./node_modules/.bin/expresso -s tests/*.test_special.coffee testmin: min @mkdir -p src-min-tmp @rm -f src-min-tmp/bankersbox.js @ln -s ../bankersbox.min.js src-min-tmp/bankersbox.js @echo "Testing MINIFIED file:" - @NODE_PATH=`pwd`/src-min-tmp expresso -s tests/* + @NODE_PATH=`pwd`/src-min-tmp ./node_modules/.bin/expresso -s tests/* + @NODE_PATH=`pwd`/src-min-tmp ./node_modules/.bin/expresso -s tests/*.test_special.coffee testall: test testmin @@ -32,7 +34,7 @@ coverage: rm -f src-tmp/bankersbox.js ln -s ../bankersbox.js src-tmp/bankersbox.js rm -rf src-cov - node-jscoverage src-tmp src-cov - NODE_PATH=`pwd`/src-cov expresso -s tests/* + ./node_modules/.bin/node-jscoverage src-tmp src-cov + NODE_PATH=`pwd`/src-cov ./node_modules/.bin/expresso -s tests/*.test.coffee .PHONY: all clean min test testmin testall coverage \ No newline at end of file diff --git a/tests/bb_cookies_disabled.test_special.coffee b/tests/bb_cookies_disabled.test_special.coffee new file mode 100644 index 0000000..7b0d96f --- /dev/null +++ b/tests/bb_cookies_disabled.test_special.coffee @@ -0,0 +1,8 @@ +GLOBAL.window = {} +Object.defineProperty window, 'localStorage', get: -> throw 'ERR' + +assert = require "assert" +{ BankersBox } = require "bankersbox" + +exports.testWithCookiesDisabled = -> + assert.equal BankersBox, undefined, "BankersBox is expected to be undefined"