Skip to content

Commit 1100266

Browse files
ENGCOM-6476: Fixed keyboard arrow keys behavior for number fields in AdobeStock grid #26029
- Merge Pull Request #26029 from rogyar/magento2:846-adobestock-arrow-keys-number - Merged commits: 1. ed5dc87 2. 526817c 3. c037301
2 parents 10ab84e + c037301 commit 1100266

File tree

2 files changed

+79
-1
lines changed

2 files changed

+79
-1
lines changed
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
/**
2+
* Copyright © Magento, Inc. All rights reserved.
3+
* See COPYING.txt for license details.
4+
*/
5+
6+
define([
7+
'jquery',
8+
'jquery/jstree/jquery.hotkeys'
9+
], function ($) {
10+
'use strict';
11+
12+
describe('Test for jquery/jstree/jquery.hotkeys', function () {
13+
var divElement = $('<div></div>'),
14+
divBodyAfterTrigger = 'pressed',
15+
inputNumberElement = $('<input type="number">');
16+
17+
beforeAll(function () {
18+
/**
19+
* Insert text to the divElement
20+
*/
21+
var addHtmlToDivElement = function () {
22+
divElement.html(divBodyAfterTrigger);
23+
};
24+
25+
$(document).bind('keyup', 'right', addHtmlToDivElement);
26+
$(document).bind('keyup', 'left', addHtmlToDivElement);
27+
28+
});
29+
30+
beforeEach(function () {
31+
inputNumberElement.appendTo(document.body);
32+
divElement.appendTo(document.body);
33+
});
34+
35+
afterEach(function () {
36+
divElement.remove();
37+
inputNumberElement.remove();
38+
});
39+
40+
it('Check "left key" hotkey is not being processed when number input is focused', function () {
41+
var keypress = $.Event('keyup');
42+
43+
keypress.which = 37; // "left arrow" key
44+
inputNumberElement.trigger(keypress);
45+
46+
expect(divElement.html()).toEqual('');
47+
});
48+
49+
it('Check "right key" hotkey is not being processed when number input is focused', function () {
50+
var keypress = $.Event('keyup');
51+
52+
keypress.which = 39; // "right arrow" key
53+
inputNumberElement.trigger(keypress);
54+
55+
expect(divElement.html()).toEqual('');
56+
});
57+
58+
it('Check "left key" hotkey is being processed when registered on the page', function () {
59+
var keypress = $.Event('keyup');
60+
61+
keypress.which = 37; // "left arrow" key
62+
divElement.trigger(keypress);
63+
64+
expect(divElement.html()).toEqual(divBodyAfterTrigger);
65+
});
66+
67+
it('Check "right key" hotkey is being processed when registered on the page', function () {
68+
var keypress = $.Event('keyup');
69+
70+
keypress.which = 39; // "right arrow" key
71+
$('body').trigger(keypress);
72+
73+
expect(divElement.html()).toEqual(divBodyAfterTrigger);
74+
});
75+
76+
});
77+
});

lib/web/jquery/jstree/jquery.hotkeys.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,8 @@
5353
* longer maintained by its author however we require content editable to behave as expected.
5454
*/
5555
if ( this !== event.target && (/textarea|select/i.test( event.target.nodeName ) ||
56-
event.target.type === "text" || jQuery(event.target).attr('contenteditable')) ) {
56+
event.target.type === "text" || event.target.type === "number" ||
57+
jQuery(event.target).attr('contenteditable')) ) {
5758
return;
5859
}
5960

0 commit comments

Comments
 (0)