PHP Classes

File: public/js/tinymce/src/plugins/paste/src/test/js/browser/ImagePasteTest.js

Recommend this page to a friend!
  Classes of Abed Nego Ragil Putra   GoLavaCMS   public/js/tinymce/src/plugins/paste/src/test/js/browser/ImagePasteTest.js   Download  
File: public/js/tinymce/src/plugins/paste/src/test/js/browser/ImagePasteTest.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: 6,437 bytes
 

Contents

Class file image Download
asynctest( 'tinymce.plugins.paste.browser.ImagePasteTest', [ 'ephox.agar.api.Pipeline', 'ephox.agar.api.Step', 'ephox.katamari.api.Arr', 'ephox.mcagar.api.LegacyUnit', 'ephox.mcagar.api.TinyLoader', 'ephox.sand.api.Blob', 'ephox.sand.api.Uint8Array', 'ephox.sand.api.Window', 'tinymce.core.util.Delay', 'tinymce.core.util.Promise', 'tinymce.plugins.paste.core.Clipboard', 'tinymce.plugins.paste.Plugin', 'tinymce.themes.modern.Theme' ], function (Pipeline, Step, Arr, LegacyUnit, TinyLoader, Blob, Uint8Array, Window, Delay, Promise, Clipboard, Plugin, Theme) { var success = arguments[arguments.length - 2]; var failure = arguments[arguments.length - 1]; var suite = LegacyUnit.createSuite(); Plugin(); Theme(); var base64ImgSrc = [ 'R0lGODdhZABkAHcAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQECgAAACwAAAAAZABkAIEAAAD78jY/', 'P3SsMjIC/4SPqcvtD6OctNqLs968+w+G4kiW5ommR8C27gvHrxrK9g3TIM7f+tcL5n4doZFFLB6F', 'Sc6SCRFIp9SqVTp6BiPXbjer5XG95Ck47IuWy2e0bLz2tt3DR5w8p7vgd2tej6TW5ycCGMM3aFZo', 'OCOYqFjDuOf4KPAHiPh4qZeZuEnXOfjpFto3ilZ6dxqWGreq1br2+hTLtigZaFcJuYOb67DLC+Qb', 'UIt3i2sshyzZtEFc7JwBLT1NXI2drb3N3e39DR4uPk5ebn6Onq6+zu488A4fLz9P335Aj58fb2+g', '71/P759AePwADBxY8KDAhAr9MWyY7yFEgPYmRgxokWK7jEYa2XGcJ/HjgJAfSXI0mRGlRZUTWUJ0', '2RCmQpkHaSLEKPKdzYU4c+78VzCo0KFEixo9ijSp0qVMmzp9CjWq1KlUq1q9eqEAADs=' ].join(''); var sTeardown = function (editor) { return Step.sync(function () { delete editor.settings.paste_data_images; delete editor.settings.images_dataimg_filter; editor.editorUpload.destroy(); }); }; var appendTeardown = function (editor, steps) { return Arr.bind(steps, function (step) { return [step, sTeardown(editor)]; }); }; var base64ToBlob = function (base64, type) { var buff = Window.atob(base64); var bytes = new Uint8Array(buff.length); for (var i = 0; i < bytes.length; i++) { bytes[i] = buff.charCodeAt(i); } return new Blob([bytes], { type: type }); }; var noop = function () { }; var mockEvent = function (type) { var event, transferName; event = { type: type, preventDefault: noop }; transferName = type === 'drop' ? 'dataTransfer' : 'clipboardData'; event[transferName] = { files: [ base64ToBlob(base64ImgSrc, 'image/gif') ] }; return event; }; var setupContent = function (editor) { editor.setContent('<p>a</p>'); LegacyUnit.setSelection(editor, 'p', 0); return editor.selection.getRng(); }; var waitForSelector = function (editor, selector) { return new Promise(function (resolve, reject) { var check = function (time, count) { var result = editor.dom.select(selector); if (result.length > 0) { resolve(result); } else { if (count === 0) { reject(); } else { Delay.setTimeout(function () { check(time, count--); }, time); } } }; check(10, 100); }); }; suite.asyncTest('dropImages', function (editor, done, die) { var rng, event, clipboard = new Clipboard(editor); editor.settings.paste_data_images = true; rng = setupContent(editor); event = mockEvent('drop'); clipboard.pasteImageData(event, rng); waitForSelector(editor, 'img').then(function () { LegacyUnit.equal(editor.getContent(), '<p><img src=\"data:image/gif;base64,' + base64ImgSrc + '" />a</p>'); LegacyUnit.strictEqual(editor.dom.select('img')[0].src.indexOf('blob:'), 0); done(); })["catch"](die); }); suite.asyncTest('pasteImages', function (editor, done, die) { var rng, event, clipboard = new Clipboard(editor); editor.settings.paste_data_images = true; rng = setupContent(editor); event = mockEvent('paste'); clipboard.pasteImageData(event, rng); waitForSelector(editor, 'img').then(function () { LegacyUnit.equal(editor.getContent(), '<p><img src=\"data:image/gif;base64,' + base64ImgSrc + '" />a</p>'); LegacyUnit.strictEqual(editor.dom.select('img')[0].src.indexOf('blob:'), 0); done(); })["catch"](die); }); suite.asyncTest('dropImages - images_dataimg_filter', function (editor, done, die) { var rng, event, clipboard = new Clipboard(editor); editor.settings.paste_data_images = true; editor.settings.images_dataimg_filter = function (img) { LegacyUnit.strictEqual(img.src, 'data:image/gif;base64,' + base64ImgSrc); return false; }; rng = setupContent(editor); event = mockEvent('drop'); clipboard.pasteImageData(event, rng); waitForSelector(editor, 'img').then(function () { LegacyUnit.equal(editor.getContent(), '<p><img src=\"data:image/gif;base64,' + base64ImgSrc + '" />a</p>'); LegacyUnit.strictEqual(editor.dom.select('img')[0].src.indexOf('data:'), 0); done(); })["catch"](die); }); suite.asyncTest('pasteImages - images_dataimg_filter', function (editor, done, die) { var rng, event, clipboard = new Clipboard(editor); editor.settings.paste_data_images = true; editor.settings.images_dataimg_filter = function (img) { LegacyUnit.strictEqual(img.src, 'data:image/gif;base64,' + base64ImgSrc); return false; }; rng = setupContent(editor); event = mockEvent('paste'); clipboard.pasteImageData(event, rng); waitForSelector(editor, 'img').then(function () { LegacyUnit.equal(editor.getContent(), '<p><img src=\"data:image/gif;base64,' + base64ImgSrc + '" />a</p>'); LegacyUnit.strictEqual(editor.dom.select('img')[0].src.indexOf('data:'), 0); done(); })["catch"](die); }); TinyLoader.setup(function (editor, onSuccess, onFailure) { Pipeline.async({}, appendTeardown(editor, suite.toSteps(editor)), onSuccess, onFailure); }, { add_unload_trigger: false, disable_nodechange: true, entities: 'raw', indent: false, automatic_uploads: false, plugins: "paste", skin_url: '/project/src/skins/lightgray/dist/lightgray' }, success, failure); } );