module('cmd'); test('cmd.wrap', function() { var p = K.query('#test-data-01 p'), cloneP, div, strong, range, cmd; var div = K('
'); document.body.appendChild(div.get()); //1 cloneP = p.cloneNode(true); document.body.appendChild(cloneP); strong = K.query('strong', cloneP); range = K.range(document); range.selectNode(strong); cmd = K.cmd(range); cmd.wrap(''); equals(range.html(), 'efg'); document.body.removeChild(cloneP); //2 cloneP = p.cloneNode(true); document.body.appendChild(cloneP); strong = K.query('strong', cloneP); range = K.range(document); range.selectNode(strong); cmd = K.cmd(range); cmd.wrap(''); equals(range.html(), 'efg'); document.body.removeChild(cloneP); //3 cloneP = p.cloneNode(true); document.body.appendChild(cloneP); strong = K.query('strong', cloneP); range = K.range(document); range.selectNodeContents(cloneP); cmd = K.cmd(range); cmd.wrap(''); ok(K.queryAll('span[style]', cloneP).length === 7); equals(range.toString(), 'abcdefghijkxyz0123456789'); document.body.removeChild(cloneP); //4 cloneP = p.cloneNode(true); document.body.appendChild(cloneP); strong = K.query('strong', cloneP); range = K.range(document); range.selectNodeContents(cloneP); cmd = K.cmd(range); cmd.wrap(''); ok(K.queryAll('span[class="aaa"]', cloneP).length === 7); equals(range.toString(), 'abcdefghijkxyz0123456789'); document.body.removeChild(cloneP); //5 cloneP = p.cloneNode(true); document.body.appendChild(cloneP); strong = K.query('strong', cloneP); range = K.range(document); range.setStart(strong.firstChild, 1); range.setEnd(strong.firstChild, 2); cmd = K.cmd(range); cmd.wrap(''); equals(range.html(), 'f'); document.body.removeChild(cloneP); //6 cloneP = p.cloneNode(true); document.body.appendChild(cloneP); strong = K.query('strong', cloneP); range = K.range(document); range.setStart(strong.firstChild, 1); range.setEnd(strong.firstChild, 3); cmd = K.cmd(range); cmd.wrap(''); equals(range.html(), 'fg'); document.body.removeChild(cloneP); //7 cloneP = p.cloneNode(true); document.body.appendChild(cloneP); strong = K.query('strong', cloneP); range = K.range(document); range.setStart(strong.firstChild, 1); range.setEnd(strong.firstChild, 2); cmd = K.cmd(range); cmd.wrap(''); equals(range.html(), 'f'); document.body.removeChild(cloneP); //8 cloneP = p.cloneNode(true); document.body.appendChild(cloneP); strong = K.query('strong', cloneP); range = K.range(document); range.setStart(cloneP, 1); range.setEnd(strong.firstChild, 3); cmd = K.cmd(range); cmd.wrap(''); equals(range.html(), 'efg'); document.body.removeChild(cloneP); //9 cloneP = p.cloneNode(true); document.body.appendChild(cloneP); strong = K.query('strong', cloneP); range = K.range(document); range.selectNodeContents(strong); range.collapse(true); cmd = K.cmd(range); cmd.wrap(''); equals(strong.innerHTML.toLowerCase(), 'efg'); document.body.removeChild(cloneP); //10 cloneP = p.cloneNode(true); document.body.appendChild(cloneP); strong = K.query('strong', cloneP); range = K.range(document); range.selectNodeContents(cloneP); cmd = K.cmd(range); cmd.wrap(''); equals(K(cloneP).first().name, 'div'); same(K(cloneP).children().length, 1); document.body.removeChild(cloneP); //11 cloneP = p.cloneNode(true); document.body.appendChild(cloneP); strong = K.query('strong', cloneP); range = K.range(document); range.setStart(strong.firstChild, 3); range.setEnd(strong.nextSibling, 3); cmd = K.cmd(range); cmd.wrap(''); equals(cmd.range.html(), 'hij'); document.body.removeChild(cloneP); //12 cloneP = p.cloneNode(true); document.body.appendChild(cloneP); strong = K.query('strong', cloneP); range = K.range(document); range.selectNode(strong); cmd = K.cmd(range); cmd.wrap('efg
abc
').get(); document.body.appendChild(cloneP); range = K.range(document); range.selectNodeContents(cloneP); cmd = K.cmd(range); cmd.wrap(''); cmd.wrap(''); equals(range.html(), 'abc'); document.body.removeChild(cloneP); //16 div.html('123
456
'); range = K.range(document); range.setStart(div.first().first()[0], 0); range.setEnd(div.last().last()[0], 3); cmd = K.cmd(range); cmd.wrap(''); equals(div.html().replace(/\n/, ''), '123
456
'); div.html(''); //17 div.html('123456'); range = K.range(document); range.setStart(div.first()[0], 2); range.setEnd(div.first()[0], 3); cmd = K.cmd(range); cmd.wrap(''); equals(range.html(), '3'); div.html(''); }); test('cmd.remove', function() { var p = K.query('#test-data-01 p'), cloneP, strong, range, cmd; var div = K(''); document.body.appendChild(div[0]); //1 cloneP = p.cloneNode(true); document.body.appendChild(cloneP); strong = K.query('strong', cloneP); range = K.range(document); range.selectNode(strong); cmd = K.cmd(range); cmd.remove({ strong : '*' }); equals(cmd.range.html(), 'efg'); document.body.removeChild(cloneP); //2 cloneP = p.cloneNode(true); document.body.appendChild(cloneP); strong = K.query('strong', cloneP); range = K.range(document); range.selectNode(strong); cmd = K.cmd(range); cmd.remove({ '*' : '*' }); equals(cmd.range.html(), 'efg'); document.body.removeChild(cloneP); //3 cloneP = p.cloneNode(true); document.body.appendChild(cloneP); strong = K.query('strong', cloneP); range = K.range(document); range.selectNode(strong); cmd = K.cmd(range); cmd.remove({ 'span' : '*' }); equals(cmd.range.html(), 'efg'); document.body.removeChild(cloneP); //4 div.html('efg'); range = K.range(document); range.setStart(div.first().first()[0], 1); range.setEnd(div.first().first()[0], 2); cmd = K.cmd(range); cmd.remove({ 'strong' : '*' }); equals(div.html(), 'efg'); equals(cmd.range.toString(), 'f'); div.html(''); //5 cloneP = p.cloneNode(true); document.body.appendChild(cloneP); strong = K.query('strong', cloneP); range = K.range(document); range.setStart(strong.firstChild, 0); range.setEnd(strong.firstChild, 3); cmd = K.cmd(range); cmd.remove({ 'strong' : '*' }); equals(cmd.range.toString(), 'efg'); document.body.removeChild(cloneP); //6 cloneP = p.cloneNode(true); document.body.appendChild(cloneP); strong = K.query('strong', cloneP); K(strong).addClass('abc').css('color', '#FF0000'); range = K.range(document); range.setStart(strong.firstChild, 1); range.setEnd(strong.firstChild, 2); cmd = K.cmd(range); cmd.remove({ 'strong' : 'class' }); equals(range.html().toLowerCase(), 'f'); document.body.removeChild(cloneP); //7 cloneP = p.cloneNode(true); document.body.appendChild(cloneP); strong = K.query('strong', cloneP); K(strong).addClass('abc').css('color', '#FF0000'); range = K.range(document); range.setStart(strong.firstChild, 1); range.setEnd(strong.firstChild, 2); cmd = K.cmd(range); cmd.remove({ 'strong' : 'class,style' }); equals(cmd.range.html().toLowerCase(), 'f'); document.body.removeChild(cloneP); //8 cloneP = p.cloneNode(true); document.body.appendChild(cloneP); strong = K.query('strong', cloneP); K(strong).addClass('abc').css('color', '#FF0000'); range = K.range(document); range.setStart(strong.firstChild, 1); range.setEnd(strong.firstChild, 2); cmd = K.cmd(range); cmd.remove({ 'strong' : 'class,.color,.background-color' }); equals(cmd.range.html().toLowerCase(), 'f'); document.body.removeChild(cloneP); //9 cloneP = p.cloneNode(true); document.body.appendChild(cloneP); strong = K.query('strong', cloneP); range = K.range(document); range.setStart(cloneP, 1); range.setEnd(strong.firstChild, 3); cmd = K.cmd(range); cmd.remove({ 'strong' : '*' }); equals(range.html(), 'efg'); document.body.removeChild(cloneP); //10 cloneP = p.cloneNode(true); document.body.appendChild(cloneP); strong = K.query('strong', cloneP); strong.innerHTML = 'efg'; range = K.range(document); range.setStart(strong.firstChild.firstChild, 1); range.setEnd(strong.firstChild.firstChild, 2); cmd = K.cmd(range); cmd.remove({ 'strong' : '*' }); equals(range.html(), 'f'); document.body.removeChild(cloneP); //11 cloneP = p.cloneNode(true); document.body.appendChild(cloneP); strong = K.query('strong', cloneP); strong.innerHTML = 'efg'; range = K.range(document); range.setStart(strong.firstChild.firstChild, 0); range.setEnd(strong.firstChild.firstChild, 3); cmd = K.cmd(range); cmd.remove({ 'strong' : '*' }); equals(K(cloneP).html().substr(0, 11), 'abcdefghijk'); document.body.removeChild(cloneP); //12 cloneP = p.cloneNode(true); document.body.appendChild(cloneP); strong = K.query('strong', cloneP); range = K.range(document); range.setStart(strong.firstChild, 1); range.setEnd(strong.firstChild, 1); cmd = K.cmd(range); cmd.remove({ 'strong' : '*' }); var str = 'abcdefg'; equals(K(cloneP).html().substr(0, str.length), str); document.body.removeChild(cloneP); //13 cloneP = p.cloneNode(true); document.body.appendChild(cloneP); strong = K.query('strong', cloneP); range = K.range(document); range.setStart(strong.firstChild, 1); range.setEnd(strong.firstChild, 2); cmd = K.cmd(range); cmd.remove({ 'strong' : '*' }); cmd.wrap(''); equals(range.html(), 'f'); document.body.removeChild(cloneP); //14 cloneP = p.cloneNode(true); document.body.appendChild(cloneP); strong = K.query('strong', cloneP); range = K.range(document); range.selectNodeContents(strong); cmd = K.cmd(range); cmd.remove({ strong : '*' }); equals(range.html(), 'efg'); document.body.removeChild(cloneP); }); test('cmd.execute', function() { var div = K(''), node, range; document.body.appendChild(div[0]); //1 node = K('abcd').get(); div.append(node); range = K.range(document); range.selectNode(node); cmd = K.cmd(range); cmd.bold(); cmd.bold(); equals(range.html(), 'abcd'); div.html(''); //2 div.html('abcd'); range = K.range(document); range.setStart(div.first().get(), 0); range.setEnd(div.first().get(), 4); cmd = K.cmd(range); cmd.bold(); cmd.italic(); equals(range.html(), 'abcd'); div.html(''); //3 div.html('abcd'); range = K.range(document); range.setStart(div.first().get(), 0); range.setEnd(div.first().get(), 4); cmd = K.cmd(range); cmd.bold(); cmd.italic(); cmd.bold(); equals(range.html(), 'abcd'); div.html(''); //4 div.html('abcdefghi'); range = K.range(document); range.setStart(div.first().first().get(), 3); range.setEnd(div.first().next().first().get(), 3); cmd = K.cmd(range); cmd.bold(); equals(range.html(), 'def'); div.html(''); //5 div.html('abcd
1234
'); range = K.range(document); range.selectNodeContents(div[0]); cmd = K.cmd(range); cmd.bold(); equals(range.html().replace(/\n/, ''), 'abcd
1234
'); cmd.removeformat(); equals(range.html().replace(/\n/, ''), 'abcd
1234
'); div.html(''); //7 div.html('abcd
1234
'); range = K.range(document); range.setStart(div.first().first().last()[0], 0); range.setEnd(div.last().last().last()[0], 4); cmd = K.cmd(range); cmd.removeformat(); equals(range.html().replace(/\n/, ''), 'abcd
1234
'); div.html(''); //8 div.html('abcd
1234
'); range = K.range(document); range.setStart(div.first().first().first()[0], 0); range.setEnd(div.last().last().last()[0], 4); cmd = K.cmd(range); cmd.italic(); equals(range.html().replace(/\n/, ''), 'abcd
1234
'); div.html(''); //9 div.html('abcd
1234
'); range = K.range(document); range.setStart(div.first().first()[0], 0); range.setEnd(div.last().last()[0], 1); cmd = K.cmd(range); cmd.italic(); equals(range.html().replace(/\n/, ''), 'abcd
1234
'); div.html(''); //10 div.html('1 |
1 |
123456789
'); range = K.range(document); range.setStart(div.first().first().first()[0], 0); range.setEnd(div.first().first().first().first()[0], 9); cmd = K.cmd(range); cmd.underline(); equals(div.html().replace(/\n/, ''), '123456789
'); div.html(''); //13 div.html('123456789
'); range = K.range(document); range.setStart(div.first().first().first()[0], 0); range.setEnd(div.first().first().first().first()[0], 9); cmd = K.cmd(range); cmd.bold(); equals(div.html().replace(/\n/, ''), '123456789
'); div.html(''); //14 div.html('1234
'); range = K.range(document); range.setStart(div.first().first()[0], 0); range.setEnd(div.first().first()[0], 4); cmd = K.cmd(range); cmd.removeformat(); equals(div.html().replace(/\n/, ''), '1234
'); div.html(''); //15 div.html('abcdefg'); range = K.range(document); range.setStart(div[0], 0); range.setEnd(div[0], 2); cmd = K.cmd(range); cmd.removeformat(); same(range.html(), 'abcdefg'); div.html(''); //14 div.html('\nabcd\n'); range = K.range(document); range.setEnd(div[0], 0); range.setEnd(div.first().next()[0], 1); cmd = K.cmd(range); cmd.removeformat(); same(range.html(), 'abcd'); div.html(''); //15 div.html('123
123