diff --git a/resources/static/dialog/controllers/pick_email.js b/resources/static/dialog/controllers/pick_email.js index ce39bd9fde150e60c7595c6f1056a8f3c75fd969..71afe58f40d826a63ad1239d4f8a2f45fdcc20c0 100644 --- a/resources/static/dialog/controllers/pick_email.js +++ b/resources/static/dialog/controllers/pick_email.js @@ -65,6 +65,13 @@ BrowserID.Modules.PickEmail = (function() { return identities; } + function selectEmail(event) { + var target = dom.getAttr(event.currentTarget, "for"); + if(target) { + dom.setAttr("#" + target, "checked", "checked"); + } + } + var Module = bid.Modules.PageModule.extend({ start: function(options) { var origin = user.getOrigin(), @@ -91,6 +98,7 @@ BrowserID.Modules.PickEmail = (function() { } self.bind("#useNewEmail", "click", cancelEvent(addEmail)); + self.bind("#selectEmail label", "click", selectEmail); sc.start.call(self, options); diff --git a/resources/static/test/cases/controllers/pick_email.js b/resources/static/test/cases/controllers/pick_email.js index b11e116dcc8b22bbba20bfc37e3eb3d3ffaa8b1c..749047ca42b1ceb76c71422acc2d38d58f529235 100644 --- a/resources/static/test/cases/controllers/pick_email.js +++ b/resources/static/test/cases/controllers/pick_email.js @@ -155,5 +155,17 @@ controller.addEmail(); }); + test("click on an email label - select corresponding radio button", function() { + storage.addEmail("testuser@testuser.com", {}); + storage.addEmail("testuser2@testuser.com", {}); + + createController(false); + + equal($("#testuser_testuser_com").is(":checked"), false, "radio button is not selected before click."); + $("label[for=testuser_testuser_com]").trigger("click"); + + equal($("#testuser_testuser_com").is(":checked"), true, "radio button is correctly selected"); + }); + }());