From 582ad4dafe25beb20cba5803a928990649171d8a Mon Sep 17 00:00:00 2001 From: Evan Carothers Date: Thu, 7 Apr 2016 11:33:33 -0500 Subject: [PATCH] additional unit testing support for postMessage scenarios --- package.json | 2 +- src/xdomain_cookie.js | 5 ++--- test/test_page.html | 8 +++++++ test/test_suite.js | 50 ++++++++++++++++++++++++++++++++++++++++++- 4 files changed, 60 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 43cf856..5193d22 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "xdomain-cookies", - "version": "1.0.1", + "version": "1.0.2", "description": "JS class for cross-domain shared cookie (via iframe shim)", "scripts": { "test": "node_modules/.bin/mocha test/test_suite.js", diff --git a/src/xdomain_cookie.js b/src/xdomain_cookie.js index a4df551..8beb26a 100644 --- a/src/xdomain_cookie.js +++ b/src/xdomain_cookie.js @@ -18,6 +18,7 @@ //function called on inbound post message - filter/verify that message is for our consumption, then set ready data an fire callbacks function _inbound_postmessage( event ){ + if(typeof event.data !== 'string') return; //expected json string encoded payload try{ var data = JSON.parse(event.data); }catch(e){ @@ -140,7 +141,7 @@ } //bind postmessage listeners for incoming messages from iframe - window.addEventListener('message', _inbound_postmessage); + window.addEventListener('message', _inbound_postmessage ); //create hidden iframe on the page that loads from same domain as this script and is used for communication / cookie setting var ifr = document.createElement('iframe'); @@ -170,9 +171,7 @@ exports.xDomainCookie = xDomainCookie; })(this); - /* - //EXAMPLE OF USAGE var shared_cookie = xDomainSharedCookie( 'https://shared.contently.com', 'contently.ifsc' ); diff --git a/test/test_page.html b/test/test_page.html index dc58506..c24acf0 100644 --- a/test/test_page.html +++ b/test/test_page.html @@ -5,6 +5,14 @@