Ver código fonte

Added if delete/backspace handling works with modifier keys.

Szymon Kupś 9 anos atrás
pai
commit
cfc3b9d132
1 arquivos alterados com 45 adições e 3 exclusões
  1. 45 3
      packages/ckeditor5-image/tests/widget/widget.js

+ 45 - 3
packages/ckeditor5-image/tests/widget/widget.js

@@ -163,6 +163,48 @@ describe( 'Widget', () => {
 			'<paragraph>foo</paragraph><paragraph>[]bar</paragraph>'
 		);
 
+		test(
+			'should work correctly with modifier key: backspace + ctrl',
+			'<widget></widget><paragraph>[]foo</paragraph>',
+			{ keyCode: keyCodes.backspace, ctrlKey: true, preventDefault: () => {} },
+			'[<widget></widget>]<paragraph>foo</paragraph>'
+		);
+
+		test(
+			'should work correctly with modifier key: backspace + alt',
+			'<widget></widget><paragraph>[]foo</paragraph>',
+			{ keyCode: keyCodes.backspace, altKey: true, preventDefault: () => {} },
+			'[<widget></widget>]<paragraph>foo</paragraph>'
+		);
+
+		test(
+			'should work correctly with modifier key: backspace + shift',
+			'<widget></widget><paragraph>[]foo</paragraph>',
+			{ keyCode: keyCodes.backspace, shiftKey: true, preventDefault: () => {} },
+			'[<widget></widget>]<paragraph>foo</paragraph>'
+		);
+
+		test(
+			'should work correctly with modifier key: delete + ctrl',
+			'<paragraph>foo[]</paragraph><widget></widget>',
+			{ keyCode: keyCodes.delete, ctrlKey: true, preventDefault: () => {} },
+			'<paragraph>foo</paragraph>[<widget></widget>]'
+		);
+
+		test(
+			'should work correctly with modifier key: delete + alt',
+			'<paragraph>foo[]</paragraph><widget></widget>',
+			{ keyCode: keyCodes.delete, altKey: true, preventDefault: () => {} },
+			'<paragraph>foo</paragraph>[<widget></widget>]'
+		);
+
+		test(
+			'should work correctly with modifier key: delete + shift',
+			'<paragraph>foo[]</paragraph><widget></widget>',
+			{ keyCode: keyCodes.delete, shiftKey: true, preventDefault: () => {} },
+			'<paragraph>foo</paragraph>[<widget></widget>]'
+		);
+
 		it( 'should prevent default behaviour and stop event propagation', () => {
 			const keydownHandler = sinon.spy();
 			const domEventDataMock = {
@@ -179,10 +221,10 @@ describe( 'Widget', () => {
 			sinon.assert.notCalled( keydownHandler );
 		} );
 
-		function test( name, data, keyCode, expected ) {
+		function test( name, data, keyCodeOrMock, expected ) {
 			it( name, () => {
-				const domEventDataMock = {
-					keyCode: keyCode,
+				const domEventDataMock = ( typeof keyCodeOrMock == 'object' ) ? keyCodeOrMock : {
+					keyCode: keyCodeOrMock,
 					preventDefault: () => {}
 				};