[ Mini Kiebo ]
Server: Windows NT DESKTOP-5B8S0D4 6.2 build 9200 (Windows 8 Professional Edition) i586
Path:
D:
/
Backup
/
05122024
/
htdocs
/
pmb2
/
assets
/
tinymce
/
src
/
core
/
src
/
test
/
js
/
browser
/
caret
/
[
Home
]
File: LineWalkerTest.js
asynctest( 'browser.tinymce.core.LineWalkerTest', [ 'ephox.mcagar.api.LegacyUnit', 'ephox.agar.api.Pipeline', 'tinymce.core.Env', 'tinymce.core.caret.LineWalker', 'tinymce.core.caret.CaretPosition', 'tinymce.core.dom.DomQuery', 'tinymce.core.test.ViewBlock' ], function (LegacyUnit, Pipeline, Env, LineWalker, CaretPosition, $, ViewBlock) { var success = arguments[arguments.length - 2]; var failure = arguments[arguments.length - 1]; var suite = LegacyUnit.createSuite(); var viewBlock = new ViewBlock(); if (!Env.ceFalse) { return; } var getRoot = function () { return viewBlock.get(); }; suite.test('positionsUntil', function () { var result, predicateCallCount = 0; var predicate = function () { predicateCallCount++; return false; }; $(getRoot()).html('<span contentEditable="false">a</span><span>b</span>'); result = LineWalker.positionsUntil(1, getRoot(), predicate, getRoot().firstChild); LegacyUnit.equal(result.length, 3); LegacyUnit.equalDom(result[0].position.getNode(), getRoot().lastChild); LegacyUnit.equalDom(result[1].position.getNode(), getRoot().lastChild.firstChild); LegacyUnit.equalDom(result[2].position.getNode(), getRoot().lastChild.firstChild); LegacyUnit.equal(predicateCallCount, 3); predicateCallCount = 0; $(getRoot()).html('<span>a</span><span contentEditable="false">b</span>'); result = LineWalker.positionsUntil(-1, getRoot(), predicate, getRoot().lastChild); LegacyUnit.equal(result.length, 3); LegacyUnit.equalDom(result[0].position.getNode(), getRoot().lastChild); LegacyUnit.equalDom(result[1].position.getNode(), getRoot().firstChild.firstChild); LegacyUnit.equalDom(result[2].position.getNode(), getRoot().firstChild.firstChild); LegacyUnit.equal(predicateCallCount, 3); }); suite.test('upUntil', function () { var caretPosition, result, predicateCallCount = 0; var predicate = function () { predicateCallCount++; return false; }; $(getRoot()).html('<p>a</p><p>b</p><p>c</p>'); caretPosition = new CaretPosition(getRoot().lastChild.lastChild, 1); result = LineWalker.upUntil(getRoot(), predicate, caretPosition); LegacyUnit.equal(result.length, 3); LegacyUnit.equal(result[0].line, 0); LegacyUnit.equal(result[1].line, 1); LegacyUnit.equal(result[2].line, 2); LegacyUnit.equal(predicateCallCount, 3); }); suite.test('downUntil', function () { var caretPosition, result, predicateCallCount = 0; var predicate = function () { predicateCallCount++; return false; }; $(getRoot()).html('<p>a</p><p>b</p><p>c</p>'); caretPosition = new CaretPosition(getRoot().firstChild.firstChild, 0); result = LineWalker.downUntil(getRoot(), predicate, caretPosition); LegacyUnit.equal(result.length, 3); LegacyUnit.equal(result[0].line, 0); LegacyUnit.equal(result[1].line, 1); LegacyUnit.equal(result[2].line, 2); LegacyUnit.equal(predicateCallCount, 3); }); suite.test('isAboveLine', function () { LegacyUnit.equal(LineWalker.isAboveLine(5)({ line: 10 }), true); LegacyUnit.equal(LineWalker.isAboveLine(5)({ line: 2 }), false); }); suite.test('isLine', function () { LegacyUnit.equal(LineWalker.isLine(3)({ line: 3 }), true); LegacyUnit.equal(LineWalker.isLine(3)({ line: 4 }), false); }); viewBlock.attach(); Pipeline.async({}, suite.toSteps({}), function () { viewBlock.detach(); success(); }, failure); } );