diff --git a/browser/components/loop/content/js/panel.js b/browser/components/loop/content/js/panel.js index 6e826f713889..33f91585d4ca 100644 --- a/browser/components/loop/content/js/panel.js +++ b/browser/components/loop/content/js/panel.js @@ -194,11 +194,16 @@ loop.panel = (function(_, mozL10n) { var ToSView = React.createClass({displayName: 'ToSView', getInitialState: function() { - return {seenToS: navigator.mozLoop.getLoopPref("seenToS")}; + var getPref = navigator.mozLoop.getLoopPref.bind(navigator.mozLoop); + + return { + seenToS: getPref("seenToS"), + gettingStartedSeen: getPref("gettingStarted.seen") + }; }, render: function() { - if (this.state.seenToS == "unseen") { + if (!this.state.gettingStartedSeen || this.state.seenToS == "unseen") { var locale = mozL10n.getLanguage(); var terms_of_use_url = navigator.mozLoop.getLoopPref('legal.ToS_url'); var privacy_notice_url = navigator.mozLoop.getLoopPref('legal.privacy_url'); diff --git a/browser/components/loop/content/js/panel.jsx b/browser/components/loop/content/js/panel.jsx index 1b7bab2783d2..de76cee6cc1d 100644 --- a/browser/components/loop/content/js/panel.jsx +++ b/browser/components/loop/content/js/panel.jsx @@ -194,11 +194,16 @@ loop.panel = (function(_, mozL10n) { var ToSView = React.createClass({ getInitialState: function() { - return {seenToS: navigator.mozLoop.getLoopPref("seenToS")}; + var getPref = navigator.mozLoop.getLoopPref.bind(navigator.mozLoop); + + return { + seenToS: getPref("seenToS"), + gettingStartedSeen: getPref("gettingStarted.seen") + }; }, render: function() { - if (this.state.seenToS == "unseen") { + if (!this.state.gettingStartedSeen || this.state.seenToS == "unseen") { var locale = mozL10n.getLanguage(); var terms_of_use_url = navigator.mozLoop.getLoopPref('legal.ToS_url'); var privacy_notice_url = navigator.mozLoop.getLoopPref('legal.privacy_url'); diff --git a/browser/components/loop/test/desktop-local/panel_test.js b/browser/components/loop/test/desktop-local/panel_test.js index 269f53dda89b..0608694cc4b6 100644 --- a/browser/components/loop/test/desktop-local/panel_test.js +++ b/browser/components/loop/test/desktop-local/panel_test.js @@ -979,6 +979,13 @@ describe("loop.panel", function() { describe('loop.panel.ToSView', function() { it("should render when the value of loop.seenToS is not set", function() { + navigator.mozLoop.getLoopPref = function(key) { + return { + "gettingStarted.seen": true, + "seenToS": "unseen" + }[key]; + }; + var view = TestUtils.renderIntoDocument(loop.panel.ToSView()); TestUtils.findRenderedDOMComponentWithClass(view, "terms-service"); @@ -986,15 +993,32 @@ describe("loop.panel", function() { it("should not render when the value of loop.seenToS is set to 'seen'", function(done) { - navigator.mozLoop.getLoopPref = function() { - return "seen"; + navigator.mozLoop.getLoopPref = function(key) { + return { + "gettingStarted.seen": true, + "seenToS": "seen" + }[key]; }; try { - TestUtils.findRenderedDOMComponentWithClass(view, "tos"); + TestUtils.findRenderedDOMComponentWithClass(view, "terms-service"); } catch (err) { done(); } }); + + it("should render when the value of loop.gettingStarted.seen is false", + function() { + navigator.mozLoop.getLoopPref = function(key) { + return { + "gettingStarted.seen": false, + "seenToS": "seen" + }[key]; + }; + var view = TestUtils.renderIntoDocument(loop.panel.ToSView()); + + TestUtils.findRenderedDOMComponentWithClass(view, "terms-service"); + }); + }); });