X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/4638325970a04404505f5ce87838eee6395b8f83..5766035cdc88ebe92caab7af494e5e077235d5e0:/src/editor/plugins/core/core.test.js diff --git a/src/editor/plugins/core/core.test.js b/src/editor/plugins/core/core.test.js index 5afa23d..f227b67 100644 --- a/src/editor/plugins/core/core.test.js +++ b/src/editor/plugins/core/core.test.js @@ -409,6 +409,22 @@ describe('Keyboard interactions', function() { describe('backspace at the beginning of a span', function() { afterEach(removeCanvas); + it('deletes span if it contains only one character', function() { + var c = getCanvasFromXML('
Aliceha cat
'), + k = new Keyboard(c); + + k.withCaret('h|').press(K.BACKSPACE); + + var rootContents = c.wlxmlDocument.root.contents(); + expect(rootContents.length).to.equal(1); + expect(rootContents[0].getText()).to.equal('Alicea cat'); + + var selection = c.getSelection(); + expect(selection.type).to.equal('caret'); + expect(selection.element.sameNode(getTextElement('Alicea cat', c))).to.equal(true); + expect(selection.offset).to.equal(5); + }); + it('deletes from the end of the preceding text element', function() { var c = getCanvasFromXML('
Alicehas a cat
'), k = new Keyboard(c); @@ -684,6 +700,49 @@ describe('Keyboard interactions', function() { }); }); + describe('Enter on a list items', function() { + afterEach(removeCanvas); + + it('creates a paragraph after a list if hitting enter on the last and empty list item', function() { + var c = getCanvasFromXML('
item
'), + k = new Keyboard(c); + + k.withCaret('item|').press(K.ENTER).press(K.ENTER); + + var rootContents = c.wlxmlDocument.root.contents(); + expect(rootContents.length).to.equal(2); + expect(rootContents[0].is('list')).to.equal(true); + expect(rootContents[1].is('p')).to.equal(true); + + var list = rootContents[0]; + expect(list.contents().length).to.equal(1); + + var selection = c.getSelection(); + expect(selection.element.wlxmlNode.sameNode(rootContents[1].contents()[0])).to.equal(true); + expect(selection.offset).to.equal(0); + }); + }); + + describe('Deleting text from a node', function() { + it('deletes last character with backspace', function() { + var c = getCanvasFromXML('
a
b
'), + k = new Keyboard(c); + + k.withCaret('b|').press(K.BACKSPACE); + + var rootContents = c.wlxmlDocument.root.contents(); + expect(rootContents.length).to.equal(2); + expect(rootContents[0].is({tagName: 'div', klass: 'p'})).to.equal(true); + expect(rootContents[0].contents()[0].getText()).to.equal('a'); + expect(rootContents[1].is({tagName: 'div', klass: 'p'})).to.equal(true); + expect(rootContents[1].contents()[0].getText()).to.equal(''); + + var selection = c.getSelection(); + expect(selection.type).to.equal('caret'); + expect(selection.element.sameNode(getTextElement('', c))).to.equal(true); + expect(selection.offset).to.equal(0); + }); + }); });