diff --git a/core/js/sharedialoglinkshareview.js b/core/js/sharedialoglinkshareview.js index beb8b01c8a8934d75ed416f9f400b07648e5ddfe..74afbc9fe0229b12623d102020fe99d445ffee52 100644 --- a/core/js/sharedialoglinkshareview.js +++ b/core/js/sharedialoglinkshareview.js @@ -151,8 +151,9 @@ }, onLinkTextClick: function() { - this.focus(); - this.select(); + var $el = this.$el.find('.linkText'); + $el.focus(); + $el.select(); }, onShowPasswordClick: function() { diff --git a/core/js/tests/specs/sharedialogviewSpec.js b/core/js/tests/specs/sharedialogviewSpec.js index 1c05bf219684e7570824edabfc9874e81957262b..a557ff6f03b19de9d33dde471d3008d5a638d6e2 100644 --- a/core/js/tests/specs/sharedialogviewSpec.js +++ b/core/js/tests/specs/sharedialogviewSpec.js @@ -237,6 +237,29 @@ describe('OC.Share.ShareDialogView', function() { expect(dialog.$el.find('.linkCheckbox').prop('checked')).toEqual(true); expect(dialog.$el.find('.linkText').val()).toEqual(link); }); + it('autofocus link text when clicked', function() { + $('#allowShareWithLink').val('yes'); + + dialog.render(); + + // Toggle linkshare + dialog.$el.find('.linkCheckbox').click(); + fakeServer.requests[0].respond( + 200, + { 'Content-Type': 'application/json' }, + JSON.stringify({data: {token: 'xyz'}, status: 'success'}) + ); + + var focusStub = sinon.stub($.fn, 'focus'); + var selectStub = sinon.stub($.fn, 'select'); + dialog.$el.find('.linkText').click(); + + expect(focusStub.calledOnce).toEqual(true); + expect(selectStub.calledOnce).toEqual(true); + + focusStub.restore(); + selectStub.restore(); + }); describe('password', function() { var slideToggleStub;