PHP Classes

File: public/js/tinymce/src/core/src/test/js/browser/delete/TableDeleteActionTest.js

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

Contents

Class file image Download
asynctest( 'browser.tinymce.core.delete.TableDeleteActionTest', [ 'ephox.agar.api.Assertions', 'ephox.agar.api.Chain', 'ephox.agar.api.Logger', 'ephox.agar.api.Pipeline', 'ephox.katamari.api.Arr', 'ephox.katamari.api.Fun', 'ephox.katamari.api.Result', 'ephox.sugar.api.dom.Hierarchy', 'ephox.sugar.api.node.Element', 'ephox.sugar.api.node.Node', 'ephox.sugar.api.properties.Html', 'global!document', 'tinymce.core.delete.TableDeleteAction' ], function (Assertions, Chain, Logger, Pipeline, Arr, Fun, Result, Hierarchy, Element, Node, Html, document, TableDeleteAction) { var success = arguments[arguments.length - 2]; var failure = arguments[arguments.length - 1]; var cFromHtml = function (html, startPath, startOffset, endPath, endOffset) { return Chain.mapper(function () { var elm = Element.fromHtml(html); var sc = Hierarchy.follow(elm, startPath).getOrDie(); var ec = Hierarchy.follow(elm, endPath).getOrDie(); var rng = document.createRange(); rng.setStart(sc.dom(), startOffset); rng.setEnd(ec.dom(), endOffset); return TableDeleteAction.getActionFromRange(elm, rng); }); }; var fail = function (message) { return Fun.constant(Result.error(message)); }; var cAssertNone = Chain.op(function (x) { Assertions.assertEq('Is none', true, x.isNone()); }); var cExtractActionCells = Chain.binder(function (actionOpt) { return actionOpt .fold( fail('unexpected nothing'), function (action) { return action.fold( fail('unexpected action'), function (xs) { var cellString = Arr.map(xs, Html.getOuter).join(''); return Result.value(cellString); } ); } ); }); var cExtractTableFromDeleteAction = Chain.binder(function (actionOpt) { return actionOpt .fold( fail('unexpected nothing'), function (action) { return action.fold( function (table) { return Result.value(Html.getOuter(table)); }, fail('unexpected action') ); } ); }); Pipeline.async({}, [ Logger.t('collapsed range should return none', Chain.asStep({}, [ cFromHtml('<table><tbody><tr><td>a</td><td>b</td><td>c</td></tr></tbody></table>', [0, 0, 0, 0], 0, [0, 0, 0, 0], 0), cAssertNone ])), Logger.t('select two out of three cells returns the emptycells action', Chain.asStep({}, [ cFromHtml('<table><tbody><tr><td>a</td><td>b</td><td>c</td></tr></tbody></table>', [0, 0, 0, 0], 0, [0, 0, 1, 0], 1), cExtractActionCells, Assertions.cAssertEq('Should be cells', '<td>a</td><td>b</td>') ])), Logger.t('select two out of three cells returns the emptycells action', Chain.asStep({}, [ cFromHtml('<table><tbody><tr><th>a</th><th>b</th><th>c</th></tr></tbody></table>', [0, 0, 0, 0], 0, [0, 0, 1, 0], 1), cExtractActionCells, Assertions.cAssertEq('Should be cells', '<th>a</th><th>b</th>') ])), Logger.t('select three out of three cells returns the removeTable action', Chain.asStep({}, [ cFromHtml('<table><tbody><tr><td>a</td><td>b</td><td>c</td></tr></tbody></table>', [0, 0, 0, 0], 0, [0, 0, 2, 0], 1), cExtractTableFromDeleteAction, Assertions.cAssertEq('should be table', '<table><tbody><tr><td>a</td><td>b</td><td>c</td></tr></tbody></table>') ])), Logger.t('select between rows, not all cells', Chain.asStep({}, [ cFromHtml( '<table><tbody><tr><th>a</th><th>b</th><th>c</th></tr><tr><td>d</td><td>e</td><td>f</td></tr></tbody></table>', [0, 0, 1, 0], 0, [0, 1, 0, 0], 1 ), cExtractActionCells, Assertions.cAssertEq('should be cells', '<th>b</th><th>c</th><td>d</td>') ])), Logger.t('select between rows, all cells', Chain.asStep({}, [ cFromHtml( '<table><tbody><tr><th>a</th><th>b</th><th>c</th></tr><tr><td>d</td><td>e</td><td>f</td></tr></tbody></table>', [0, 0, 0, 0], 0, [0, 1, 2, 0], 1 ), cExtractTableFromDeleteAction, Assertions.cAssertEq('should be table', '<table><tbody><tr><th>a</th><th>b</th><th>c</th></tr><tr><td>d</td><td>e</td><td>f</td></tr></tbody></table>') ])) ], function () { success(); }, failure); } );