test(
'atomic.tinymce.plugins.visualchars.NodesTest',
[
'ephox.agar.api.Assertions',
'ephox.sugar.api.node.Element',
'global!document',
'tinymce.plugins.visualchars.core.Nodes'
],
function (Assertions, Element, document, Nodes) {
var nbsp = '\u00a0';
var shy = '\u00AD';
var testReplaceWithSpans = function () {
Assertions.assertHtml(
'should return span around shy and nbsp',
'a<span data-mce-bogus="1" class="mce-nbsp">\u00a0</span>b<span data-mce-bogus="1" class="mce-shy">\u00AD</span>',
Nodes.replaceWithSpans('a' + nbsp + 'b' + shy)
);
};
var testFilterDescendants = function () {
var div = document.createElement('div');
div.innerHTML = '<p>a</p>' +
'<p>b' + nbsp + '</p>' +
'<p>c</p>' +
'<p>d' + shy + '</p>';
Assertions.assertEq(
'should return list with nodes with shy or nbsp in it',
2,
Nodes.filterDescendants(Element.fromDom(div), Nodes.isMatch).length
);
};
var testFilterDescendants2 = function () {
var div = document.createElement('div');
div.innerHTML = '<p>a' + nbsp + '</p>' +
'<p>b' + nbsp + '</p>' +
'<p>c' + nbsp + '</p>' +
'<p>d' + shy + '</p>';
Assertions.assertEq(
'should return list with nodes with shy or nbsp in it',
4,
Nodes.filterDescendants(Element.fromDom(div), Nodes.isMatch).length
);
};
testReplaceWithSpans();
testFilterDescendants();
testFilterDescendants2();
}
);
|