From 5f9517ba601f7fac7b025be7ebb23881840e93a6 Mon Sep 17 00:00:00 2001 From: Mark Banner Date: Tue, 28 Apr 2015 13:51:27 +0100 Subject: [PATCH] Bug 1159199 - Clicking the context indicator in the Loop panel should close the panel after opening the url. r=mikedeboer --- browser/components/loop/content/js/panel.js | 3 +++ browser/components/loop/content/js/panel.jsx | 3 +++ .../loop/test/desktop-local/panel_test.js | 14 ++++++++++++++ 3 files changed, 20 insertions(+) diff --git a/browser/components/loop/content/js/panel.js b/browser/components/loop/content/js/panel.js index 7f4874a9cc2..b18bcc0e485 100644 --- a/browser/components/loop/content/js/panel.js +++ b/browser/components/loop/content/js/panel.js @@ -432,6 +432,8 @@ loop.panel = (function(_, mozL10n) { }); var RoomEntryContextItem = React.createClass({displayName: "RoomEntryContextItem", + mixins: [loop.shared.mixins.WindowCloseMixin], + propTypes: { mozLoop: React.PropTypes.object.isRequired, roomUrls: React.PropTypes.object @@ -441,6 +443,7 @@ loop.panel = (function(_, mozL10n) { event.stopPropagation(); event.preventDefault(); this.props.mozLoop.openURL(event.currentTarget.href); + this.closeWindow(); }, render: function() { diff --git a/browser/components/loop/content/js/panel.jsx b/browser/components/loop/content/js/panel.jsx index db1b5545ca1..7d0e8b84ca6 100644 --- a/browser/components/loop/content/js/panel.jsx +++ b/browser/components/loop/content/js/panel.jsx @@ -432,6 +432,8 @@ loop.panel = (function(_, mozL10n) { }); var RoomEntryContextItem = React.createClass({ + mixins: [loop.shared.mixins.WindowCloseMixin], + propTypes: { mozLoop: React.PropTypes.object.isRequired, roomUrls: React.PropTypes.object @@ -441,6 +443,7 @@ loop.panel = (function(_, mozL10n) { event.stopPropagation(); event.preventDefault(); this.props.mozLoop.openURL(event.currentTarget.href); + this.closeWindow(); }, render: function() { diff --git a/browser/components/loop/test/desktop-local/panel_test.js b/browser/components/loop/test/desktop-local/panel_test.js index ad8828bb713..6c89c675178 100644 --- a/browser/components/loop/test/desktop-local/panel_test.js +++ b/browser/components/loop/test/desktop-local/panel_test.js @@ -614,6 +614,20 @@ describe("loop.panel", function() { sinon.assert.calledOnce(fakeMozLoop.openURL); sinon.assert.calledWithExactly(fakeMozLoop.openURL, "http://invalid/"); }); + + it("should call close the panel after opening a url", function() { + roomData.decryptedContext.urls = [{ + description: "invalid entry", + location: "http://invalid/", + thumbnail: "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" + }]; + + roomEntry = mountEntryForContext(); + + TestUtils.Simulate.click(roomEntry.getDOMNode().querySelector("a")); + + sinon.assert.calledOnce(fakeWindow.close); + }); }); describe("Room Entry click", function() {