ÿØÿà JFIF ÿþ
ÿÛ C
ÿÛ C ÿÀ ÿÄ ÿÄ " #QrÿÄ ÿÄ & 1! A"2qQaáÿÚ ? Øy,æ/3JæÝ¹Èß²Ø5êXw²±ÉyR¾I0ó2PI¾IÌÚiMö¯þrìN&"KgX:íµnTJnLK
@!-ýùúmë;ºgµ&ó±hw¯Õ@Ü9ñ-ë.²1<yà¹ïQÐUÛ?.¦èûbß±©Ö«Âw*V) `$bØÔëXÖ-ËTÜíGÚ3ð«g §¯JxU/ÂÅv_s(Hÿ @TñJÑãõçn!ÈgfbÓc:él[ðQe9ÀPLbÃãCµm[5¿ç'ªjglåÛí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢S x?"¸¦ùYé¨ÒOÈ q`~~ÚtËU¹CÚêV I1Áß_ÿÙasynctest('browser/alien/BookmarkTest', [
'ephox/tinymce',
'ephox.agar.api.Pipeline',
'ephox.agar.api.Chain',
'ephox.agar.api.Cursors',
'ephox.agar.api.Assertions',
'ephox.mcagar.api.TinyDom',
'tinymce/inlite/alien/Bookmark'
], function (tinymce, Pipeline, Chain, Cursors, Assertions, TinyDom, Bookmark) {
var success = arguments[arguments.length - 2];
var failure = arguments[arguments.length - 1];
var toNativeRange = function (range) {
var domRange = document.createRange();
domRange.setStart(range.start().dom(), range.soffset());
domRange.setEnd(range.finish().dom(), range.foffset());
return domRange;
};
var rangeToBookmark = function (dom) {
return function (range) {
return Bookmark.create(dom, range);
};
};
var bookmarkToRange = function (dom) {
return function (bookmark) {
return Bookmark.resolve(dom, bookmark);
};
};
var cAssertRangeEq = function (expected) {
return Chain.op(function (actual) {
Assertions.assertEq('Not equal startContainer', expected.start().dom(), actual.startContainer);
Assertions.assertEq('Not equal startOffset', expected.soffset(), actual.startOffset);
Assertions.assertEq('Not equal endContainer', expected.finish().dom(), actual.endContainer);
Assertions.assertEq('Not equal endOffset', expected.foffset(), actual.endOffset);
});
};
var sTestBookmark = function (html, path) {
var dom = tinymce.DOM;
var elm = TinyDom.fromDom(dom.create('div', {}, html));
return Chain.asStep(elm, [
Cursors.cFollowPath(Cursors.pathFrom(path)),
Chain.mapper(toNativeRange),
Chain.mapper(rangeToBookmark(dom)),
Chain.mapper(bookmarkToRange(dom)),
cAssertRangeEq(Cursors.calculate(elm, Cursors.pathFrom(path)))
]);
};
Pipeline.async({}, [
sTestBookmark('abc', {element: [0], offset: 0}),
sTestBookmark('abc', {element: [0], offset: 1}),
sTestBookmark('abc', {start: {element: [0], offset: 0}, finish: {element: [0], offset: 1}}),
sTestBookmark('a', {element: [0, 0], offset: 0}),
sTestBookmark('a', {element: [0, 0], offset: 0}),
sTestBookmark('a', {start: {element: [0, 0], offset: 0}, finish: {element: [0, 0], offset: 1}}),
sTestBookmark('ab', {start: {element: [0, 0], offset: 0}, finish: {element: [1, 0], offset: 1}})
], function () {
success();
}, failure);
});