PHP Classes

File: public/js/tinymce/src/core/src/test/js/browser/init/InitCspTest.js

Recommend this page to a friend!
  Classes of Abed Nego Ragil Putra   GoLavaCMS   public/js/tinymce/src/core/src/test/js/browser/init/InitCspTest.js   Download  
File: public/js/tinymce/src/core/src/test/js/browser/init/InitCspTest.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: 2,986 bytes
 

Contents

Class file image Download
asynctest( 'browser.tinymce.core.init.InitCspTest', [ 'ephox.agar.api.Assertions', 'ephox.agar.api.GeneralSteps', 'ephox.agar.api.Logger', 'ephox.agar.api.Pipeline', 'ephox.agar.api.Step', 'global!document', 'global!navigator', 'global!window', 'tinymce.core.EditorManager', 'tinymce.core.test.ViewBlock', 'tinymce.themes.modern.Theme' ], function (Assertions, GeneralSteps, Logger, Pipeline, Step, document, navigator, window, EditorManager, ViewBlock, Theme) { var success = arguments[arguments.length - 2]; var failure = arguments[arguments.length - 1]; var viewBlock = new ViewBlock(); var csp = "default-src 'none'; script-src 'self'; connect-src 'self'; img-src 'self' data: blob:; style-src 'self' 'unsafe-inline'; font-src 'self';"; var tinymceScriptUrl = '/project/js/tinymce/tinymce.js'; var tinymceInitUrl = '/project/src/core/src/test/js/browser/init/InitCspIframeScript.js'; Theme(); var mCreateIframeSandbox = Step.stateful(function (state, next, die) { window.cspInitInstanceCallback = function (editor) { delete window.cspInitInstanceCallback; next({ editor: editor }); }; var ifr = document.createElement('iframe'); viewBlock.get().appendChild(ifr); ifr.contentWindow.document.open(); ifr.contentWindow.document.write([ '<!DOCTYPE html>', '<html>', '<head>', '<meta http-equiv="Content-Security-Policy" content="' + csp + '" />', '</head>', '<body>', '<textarea></textarea>', '<script src="' + tinymceScriptUrl + '"></script>', '<script src="' + tinymceInitUrl + '"></script>', '</body>', '</html>' ].join('')); ifr.contentWindow.document.close(); }); var mSetContent = function (html) { return Step.stateful(function (state, next, die) { state.editor.setContent(html); next(state); }); }; var mAssertContent = function (expectedContent) { return Step.stateful(function (state, next, die) { var actualContent = state.editor.getContent(); Assertions.assertHtml('Should be expected contents', expectedContent, actualContent); next(state); }); }; var mDestoryEditor = Step.stateful(function (state, next, die) { state.editor.remove(); next(state); }); viewBlock.attach(); // Disables the csp test on Firefox since an iframe will change the sandbox of the parent document Pipeline.async({}, navigator.userAgent.indexOf('Firefox/') === -1 ? [ Logger.t('Load editor into csp restricted iframe and do some basic operations', GeneralSteps.sequence([ mCreateIframeSandbox, mSetContent('<p>test</p>'), mAssertContent('<p>test</p>'), mDestoryEditor ])) ] : [], function () { EditorManager.remove(); viewBlock.detach(); success(); }, failure); } );