From 1a2c215461b48cb74f5ea486aa0358b015c8cf71 Mon Sep 17 00:00:00 2001 From: Shane Tomlinson <stomlinson@mozilla.com> Date: Thu, 31 May 2012 10:24:57 +0100 Subject: [PATCH] Send server timestamp along with KPI data. * Add tests to make sure all expected fields are present. issue #1660 --- .../static/shared/models/interaction_data.js | 7 +++--- .../cases/shared/models/interaction_data.js | 24 ++++++++++++++++--- resources/static/test/testHelpers/helpers.js | 2 +- 3 files changed, 26 insertions(+), 7 deletions(-) diff --git a/resources/static/shared/models/interaction_data.js b/resources/static/shared/models/interaction_data.js index ed948c203..5b91bb6ee 100644 --- a/resources/static/shared/models/interaction_data.js +++ b/resources/static/shared/models/interaction_data.js @@ -99,10 +99,11 @@ BrowserID.Models.InteractionData = (function() { _.each(data, function(obj) { filtered.push(whitelistFilter(obj, [ 'event_stream', - 'lang', + 'lang', 'screen_size', - 'sample_rate'] - )); + 'sample_rate', + 'timestamp' + ])); }); network.sendInteractionData(filtered, function() { diff --git a/resources/static/test/cases/shared/models/interaction_data.js b/resources/static/test/cases/shared/models/interaction_data.js index b66ce318a..740a3d676 100644 --- a/resources/static/test/cases/shared/models/interaction_data.js +++ b/resources/static/test/cases/shared/models/interaction_data.js @@ -87,7 +87,16 @@ // When the interaction_data next completes, this will be the only data // that is pushed. - model.push({ lang: "bar", secret: "Attack at dawn!!!" }); + var now = new Date().getTime(); + + model.push({ + event_stream: [], + sample_rate: 1, + timestamp: now, + local_timestamp: now, + lang: "bar", + secret: "Attack at dawn!!!" + }); model.stageCurrent(); xhr.useResult("valid"); @@ -97,8 +106,17 @@ previousSessionsData = JSON.parse(request.data).data; equal(previousSessionsData.length, 1, "sending correct result sets"); - equal(previousSessionsData[0].lang, "bar", "correct data sent"); - equal(typeof previousSessionsData[0].secret, "undefined", "non-whitelisted valued stripped"); + + var mostRecentSessionData = previousSessionsData[0]; + testObjectValuesEqual(mostRecentSessionData, { + event_stream: [], + sample_rate: 1, + timestamp: now, + lang: "bar" + }); + + equal(typeof mostRecentSessionData.local_timestamp, "undefined", "non-whitelisted valued stripped"); + equal(typeof mostRecentSessionData.secret, "undefined", "non-whitelisted valued stripped"); start(); }); }); diff --git a/resources/static/test/testHelpers/helpers.js b/resources/static/test/testHelpers/helpers.js index d7909c38e..2c77f4201 100644 --- a/resources/static/test/testHelpers/helpers.js +++ b/resources/static/test/testHelpers/helpers.js @@ -216,7 +216,7 @@ BrowserID.TestHelpers = (function() { testObjectValuesEqual: function(objToTest, expected, msg) { for(var key in expected) { - equal(objToTest[key], expected[key], key + " set to: " + expected[key] + (msg ? " - " + msg : "")); + deepEqual(objToTest[key], expected[key], key + " set to: " + expected[key] + (msg ? " - " + msg : "")); } }, -- GitLab