PHP Classes

File: public/js/tinymce/src/plugins/link/src/test/js/browser/AllowUnsafeLinkTargetTest.js

Recommend this page to a friend!
  Classes of Abed Nego Ragil Putra   GoLavaCMS   public/js/tinymce/src/plugins/link/src/test/js/browser/AllowUnsafeLinkTargetTest.js   Download  
File: public/js/tinymce/src/plugins/link/src/test/js/browser/AllowUnsafeLinkTargetTest.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: GoLavaCMS
Publish content on Web pages with SEO support
Author: By
Last change:
Date: 6 years ago
Size: 4,920 bytes
 

Contents

Class file image Download
asynctest( 'browser.tinymce.plugins.link.AllowUnsafeLinkTargetTest', [ 'ephox.agar.api.Assertions', 'ephox.agar.api.Chain', 'ephox.agar.api.GeneralSteps', 'ephox.agar.api.Logger', 'ephox.agar.api.Pipeline', 'ephox.agar.api.Step', 'ephox.katamari.api.Arr', 'ephox.katamari.api.Merger', 'ephox.mcagar.api.TinyApis', 'ephox.mcagar.api.TinyLoader', 'ephox.mcagar.api.TinyUi', 'global!document', 'tinymce.core.dom.DOMUtils', 'tinymce.plugins.link.Plugin', 'tinymce.themes.modern.Theme' ], function (Assertions, Chain, GeneralSteps, Logger, Pipeline, Step, Arr, Merger, TinyApis, TinyLoader, TinyUi, document, DOMUtils, LinkPlugin, ModernTheme) { var success = arguments[arguments.length - 2]; var failure = arguments[arguments.length - 1]; ModernTheme(); LinkPlugin(); TinyLoader.setup(function (editor, onSuccess, onFailure) { var ui = TinyUi(editor); var api = TinyApis(editor); var sEnterUrl = function (url) { return Step.sync(function () { var input = document.activeElement; input.value = url; DOMUtils.DOM.fire(input, 'change'); }); }; var sInsertLink = function (url) { return GeneralSteps.sequence([ ui.sClickOnToolbar('click link button', 'div[aria-label="Insert/edit link"] > button'), ui.sWaitForPopup('wait for link dialog', 'div[aria-label="Insert link"][role="dialog"]'), sEnterUrl(url), ui.sClickOnUi('click ok button', 'button:contains("Ok")') ]); }; var getDialogByElement = function (element) { return Arr.find(editor.windowManager.getWindows(), function (win) { return element.dom().id === win._id; }); }; var cAssertDialogContents = function (data) { return Chain.on(function (element, next, die) { getDialogByElement(element).fold(die, function (win) { Assertions.assertEq('asserting dialog contents', data, win.toJSON()); next(Chain.wrap(element)); }); }); }; Pipeline.async({}, [ Logger.t("doesn't add rel noopener stuff with allow_unsafe_link_target: true", GeneralSteps.sequence([ api.sSetSetting('allow_unsafe_link_target', true), sInsertLink(ui, 'http://www.google.com'), api.sAssertContentPresence({ 'a[rel="noopener"]': 0, 'a': 1 }), api.sSetContent('') ])), Logger.t("adds if allow_unsafe_link_target: false", GeneralSteps.sequence([ api.sSetSetting('allow_unsafe_link_target', false), sInsertLink(ui, 'http://www.google.com'), api.sAssertContentPresence({ 'a[rel="noopener"]': 1 }), api.sSetContent('') ])), Logger.t("...and if it's undefined", GeneralSteps.sequence([ api.sSetSetting('allow_unsafe_link_target', undefined), sInsertLink(ui, 'http://www.google.com'), api.sAssertContentPresence({ 'a[rel="noopener"]': 1 }) ])), Logger.t("allow_unsafe_link_target=false: node filter normalizes and secures rel on SetContent", GeneralSteps.sequence([ api.sSetSetting('allow_unsafe_link_target', false), api.sSetContent('<a href="http://www.google.com" target="_blank" rel="nofollow alternate">Google</a>'), api.sAssertContent('<p><a href="http://www.google.com" target="_blank" rel="alternate nofollow noopener">Google</a></p>'), api.sSetContent('') ])), Logger.t("allow_unsafe_link_target=false: proper option selected for defined rel_list", GeneralSteps.sequence([ api.sSetSetting('allow_unsafe_link_target', false), api.sSetSetting('rel_list', [ { title: 'Lightbox', value: 'lightbox' }, { title: 'Test rel', value: 'alternate nofollow' }, { title: 'Table of contents', value: 'toc' } ]), api.sSetContent('<a href="http://www.google.com" target="_blank" rel="nofollow alternate">Google</a>'), api.sSelect('p', [0]), ui.sClickOnToolbar('click link button', 'div[aria-label="Insert/edit link"] > button'), Chain.asStep({}, [ ui.cWaitForPopup('wait for link dialog', 'div[aria-label="Insert link"][role="dialog"]'), cAssertDialogContents({ text: "Google", title: "", href: "http://www.google.com", target: "_blank", rel: "alternate nofollow noopener" }) ]), ui.sClickOnUi('click ok button', 'button:contains("Ok")') ])) ], onSuccess, onFailure); }, { plugins: 'link', toolbar: 'link', skin_url: '/project/src/skins/lightgray/dist/lightgray', target_list: [ { title: 'New page', value: '_blank' } ] }, success, failure); } );