import { LegacyUnit } from '@ephox/mcagar'; import { Pipeline } from '@ephox/agar'; import Arr from 'tinymce/core/util/Arr'; import * as Dimensions from 'tinymce/core/dom/Dimensions'; import ViewBlock from '../../module/test/ViewBlock'; import { UnitTest } from '@ephox/bedrock'; UnitTest.asynctest('browser.tinymce.core.dom.DimensionsTest', function () { const success = arguments[arguments.length - 2]; const failure = arguments[arguments.length - 1]; const suite = LegacyUnit.createSuite(); const viewBlock = ViewBlock(); const setupHtml = function (html) { viewBlock.update(html); return viewBlock.get(); }; suite.test('getClientRects', function () { const viewElm = setupHtml('abc123'); LegacyUnit.strictEqual(Dimensions.getClientRects([viewElm.firstChild]).length, 1); LegacyUnit.strictEqual(Dimensions.getClientRects([viewElm.lastChild]).length, 1); LegacyUnit.equalDom(Dimensions.getClientRects([viewElm.firstChild])[0].node, viewElm.firstChild); LegacyUnit.strictEqual(Dimensions.getClientRects([viewElm.firstChild])[0].left > 3, true); LegacyUnit.strictEqual(Dimensions.getClientRects([viewElm.lastChild])[0].left > 3, true); }); suite.test('getClientRects from array', function () { const viewElm = setupHtml('ab'); const clientRects = Dimensions.getClientRects(Arr.toArray(viewElm.childNodes)); LegacyUnit.strictEqual(clientRects.length, 2); LegacyUnit.equalDom(clientRects[0].node, viewElm.childNodes[0]); LegacyUnit.equalDom(clientRects[1].node, viewElm.childNodes[1]); }); viewBlock.attach(); Pipeline.async({}, suite.toSteps({}), function () { viewBlock.detach(); success(); }, failure); });