import { Pipeline } from '@ephox/agar'; import { LegacyUnit, TinyLoader } from '@ephox/mcagar'; import Env from 'tinymce/core/api/Env'; import Plugin from 'tinymce/plugins/autolink/Plugin'; import KeyUtils from '../module/test/KeyUtils'; import Theme from 'tinymce/themes/modern/Theme'; import { UnitTest } from '@ephox/bedrock'; UnitTest.asynctest('browser.tinymce.plugins.autolink.AutoLinkPluginTest', function () { const success = arguments[arguments.length - 2]; const failure = arguments[arguments.length - 1]; const suite = LegacyUnit.createSuite(); Theme(); Plugin(); const typeUrl = function (editor, url) { editor.setContent('
' + url + '
'); LegacyUnit.setSelection(editor, 'p', url.length); KeyUtils.type(editor, ' '); return editor.getContent(); }; const typeAnEclipsedURL = function (editor, url) { url = '(' + url; editor.setContent('' + url + '
'); LegacyUnit.setSelection(editor, 'p', url.length); KeyUtils.type(editor, ')'); return editor.getContent(); }; const typeNewlineURL = function (editor, url) { editor.setContent('' + url + '
'); LegacyUnit.setSelection(editor, 'p', url.length); KeyUtils.type(editor, '\n'); return editor.getContent(); }; suite.test('Urls ended with space', function (editor) { editor.focus(); LegacyUnit.equal(typeUrl(editor, 'http://www.domain.com'), ''); LegacyUnit.equal(typeUrl(editor, 'https://www.domain.com'), ''); LegacyUnit.equal(typeUrl(editor, 'ssh://www.domain.com'), ''); LegacyUnit.equal(typeUrl(editor, 'ftp://www.domain.com'), ''); LegacyUnit.equal(typeUrl(editor, 'www.domain.com'), ''); LegacyUnit.equal(typeUrl(editor, 'www.domain.com.'), ''); LegacyUnit.equal(typeUrl(editor, 'user@domain.com'), ''); LegacyUnit.equal(typeUrl(editor, 'mailto:user@domain.com'), ''); LegacyUnit.equal(typeUrl(editor, 'first-last@domain.com'), ''); }); suite.test('Urls ended with )', function (editor) { LegacyUnit.equal( typeAnEclipsedURL(editor, 'http://www.domain.com'), '' ); LegacyUnit.equal( typeAnEclipsedURL(editor, 'https://www.domain.com'), '' ); LegacyUnit.equal( typeAnEclipsedURL(editor, 'ssh://www.domain.com'), '' ); LegacyUnit.equal( typeAnEclipsedURL(editor, 'ftp://www.domain.com'), '' ); LegacyUnit.equal(typeAnEclipsedURL(editor, 'www.domain.com'), ''); LegacyUnit.equal(typeAnEclipsedURL(editor, 'www.domain.com.'), ''); }); suite.test('Urls ended with new line', function (editor) { LegacyUnit.equal( typeNewlineURL(editor, 'http://www.domain.com'), '' ); LegacyUnit.equal( typeNewlineURL(editor, 'https://www.domain.com'), '
' ); LegacyUnit.equal( typeNewlineURL(editor, 'ssh://www.domain.com'), '
' ); LegacyUnit.equal( typeNewlineURL(editor, 'ftp://www.domain.com'), '
' ); LegacyUnit.equal( typeNewlineURL(editor, 'www.domain.com'), '
' ); LegacyUnit.equal( typeNewlineURL(editor, 'www.domain.com.'), '
' ); }); suite.test('Url inside blank formatting wrapper', function (editor) { editor.focus(); editor.setContent('