UNPKG

jodit

Version:

Jodit is awesome and usefully wysiwyg editor with filebrowser

160 lines (132 loc) 5.17 kB
/*! * Jodit Editor (https://xdsoft.net/jodit/) * Released under MIT see LICENSE.txt in the project root for license information. * Copyright (c) 2013-2020 Valeriy Chupurnov. All rights reserved. https://xdsoft.net */ describe('Check Dom module', function() { const Dom = Jodit.modules.Dom; describe('Method each', function() { it('Should pass through all child nodes', function() { const node = document.createElement('div'); node.innerHTML = '<ul>' + '<li>1</li>' + '<li>2</li>' + '<li><img> text</li>' + '</ul>'; const names = []; Dom.each(node, function(elm) { names.push(elm.nodeName); }); expect('UL,LI,#text,LI,#text,LI,IMG,#text').equals(names.toString()); }); }); describe('Method isBlock', function() { it('Should return true then it gets BLOCK element', function() { expect(true).equals(Dom.isBlock(document.documentElement, window)); expect(true).equals(Dom.isBlock(document.createElement('div'), window)); expect(true).equals(Dom.isBlock(document.createElement('table'), window)); expect(true).equals(Dom.isBlock(document.createElement('dt'), window)); expect(true).equals(Dom.isBlock(document.createElement('dd'), window)); }); it('Should return false then it gets not BLOCK element', function() { expect(false).equals(Dom.isBlock(document.createTextNode('test'), window)); expect(false).equals(Dom.isBlock(document.createElement('span'), window)); }); }); describe('Method isInlineBlock', function() { it('Should return true then it gets inline or inline-block element', function() { const box = document.createElement('div'); box.innerHTML = '<p>' + '<span>test</span>' + '<strong>test</strong>' + '<span style="display: block">test</span>' + '</p>'; document.body.appendChild(box); expect(true).equals(Dom.isInlineBlock(box.firstChild.childNodes[0])); expect(true).equals(Dom.isInlineBlock(box.firstChild.childNodes[1])); expect(false).equals(Dom.isInlineBlock(box.firstChild.childNodes[2])); expect(false).equals(Dom.isInlineBlock(box.firstChild)); document.body.removeChild(box); }); }); describe('Method isEmpty', function() { it('Should return true then element is empty', function() { expect(true).equals(Dom.isEmpty(document.createElement('div'))); expect(true).equals(Dom.isEmpty(document.createElement('table'))); expect(true).equals(Dom.isEmpty(document.createTextNode('\uFEFF'))); expect(true).equals(Dom.isEmpty(document.createTextNode(' '))); const node = document.createElement('div'); node.innerHTML = '<ul>' + '<li></li>' + '<li></li>' + '<li></li>' + '</ul>'; expect(true).equals(Dom.isEmpty(node)); }); it('Should return false then element is not empty', function() { expect(false).equals(Dom.isEmpty(document.documentElement)); expect(false).equals(Dom.isEmpty(document.createTextNode('test'))); const node = document.createElement('div'); node.innerHTML = '<ul>' + '<li>1</li>' + '<li>2</li>' + '<li><img> text</li>' + '</ul>'; expect(false).equals(Dom.isEmpty(node)); }); }); describe('Method isOrContains', function() { it('Should return true if element inside root', function() { const node = document.createElement('div'); const node2 = document.createElement('div'); const node3 = document.createElement('div'); const node4 = document.createElement('div'); const text = document.createTextNode('div'); const text2 = document.createTextNode('div'); node.appendChild(node2) node2.appendChild(node3) node3.appendChild(node4) node4.appendChild(text) document.body.appendChild(text2); expect(true).equals(Dom.isOrContains(node, node)); expect(true).equals(Dom.isOrContains(node, node2)); expect(true).equals(Dom.isOrContains(node, node3)); expect(true).equals(Dom.isOrContains(node, node4)); expect(true).equals(Dom.isOrContains(node, text)); expect(false).equals(Dom.isOrContains(node, node, true)); expect(false).equals(Dom.isOrContains(node, text2)); document.body.removeChild(text2); }); }); describe('Method up', function() { it('Should return node if element inside root', function() { const node = document.createElement('div'); const node2 = document.createElement('div'); const node3 = document.createElement('div'); const node4 = document.createElement('div'); const text = document.createTextNode('div'); const text2 = document.createTextNode('div'); node.appendChild(node2) node2.appendChild(node3) node3.appendChild(node4) node4.appendChild(text) document.body.appendChild(text2); expect(node2).equals(Dom.up(text, function (nd) { return nd === node2; }, node)); expect(text).equals(Dom.up(text, function (nd) { return nd === text; }, node)); expect(null).equals(Dom.up(text, function (nd) { return nd === text2; }, node)); expect(null).equals(Dom.up(text, function (nd) { return nd === node; }, node)); expect(node).equals(Dom.up(text, function (nd) { return nd === node; }, node, true)); document.body.removeChild(text2); }); }); });