import { Keys } from '@ephox/agar'; import { describe, it } from '@ephox/bedrock-client'; import { TinyHooks, TinySelections, TinyContentActions } from '@ephox/wrap-mcagar'; import { assert } from 'chai'; import Editor from 'tinymce/core/api/Editor'; import Plugin from 'tinymce/plugins/link/Plugin'; import { TestLinkUi } from '../module/TestLinkUi'; describe('browser.tinymce.plugins.link.PreventDefaultTest', () => { const hook = TinyHooks.bddSetupLight({ plugins: 'link', toolbar: 'link openlink unlink', base_url: '/project/tinymce/js/tinymce', setup: (ed: Editor) => { const hasOnlyAltModifier = (e: KeyboardEvent) => { return ( e.altKey === true && e.shiftKey === false && e.ctrlKey === false && e.metaKey === false ); }; ed.on('keydown', (event) => { if (event.keyCode === 13 && hasOnlyAltModifier(event)) { event.preventDefault(); } }, true); }, }, [ Plugin ]); it('TINY-8661: links should not open when using alt+enter (option+enter on Mac) when preventDefault() is called', () => { TestLinkUi.clearHistory(); const editor = hook.editor(); editor.setContent(`

foo anchor

long p

foo

`); const pos = editor.getWin().scrollY; assert.equal(pos, 0); TinySelections.setCursor(editor, [ 0, 0, 0 ], 3); TinyContentActions.keydown(editor, Keys.enter(), { altKey: true, }); assert.equal(editor.getWin().scrollY, pos); }); });