X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/9a9e6d2723f56145d45790667212a4019fd5776b..b2aa09d74099e36b7cd45189691d647f33d4688c:/modules/documentCanvas/canvas/canvas.test3.js?ds=sidebyside diff --git a/modules/documentCanvas/canvas/canvas.test3.js b/modules/documentCanvas/canvas/canvas.test3.js index 43c9083..23061d9 100644 --- a/modules/documentCanvas/canvas/canvas.test3.js +++ b/modules/documentCanvas/canvas/canvas.test3.js @@ -118,14 +118,43 @@ describe('Canvas', function() { }); it('knows WLXML class of a WLXML tag it renders', function(){ - var c = canvas.fromXML('
'), + var c = canvas.fromXML('
'), section = c.doc(); - expect(section.getWlxmlClass()).to.equal('some.class'); - section.setWlxmlClass('some.other.class'); - expect(section.getWlxmlClass()).to.equal('some.other.class'); + expect(section.getWlxmlClass()).to.equal('some.class.A'); + section.setWlxmlClass('some.class.B'); + expect(section.getWlxmlClass()).to.equal('some.class.B'); section.setWlxmlClass(null); expect(section.getWlxmlClass()).to.be.undefined; }); + + + + describe('element has meta attributes', function() { + it('can change its meta attributes', function() { + var c = canvas.fromXML('
'), + span = c.doc().children()[0]; + + expect(span.getWlxmlMetaAttr('uri')).to.equal('someuri'); + span.setWlxmlMetaAttr('uri', 'otheruri'); + expect(span.getWlxmlMetaAttr('uri')).to.equal('otheruri'); + }); + + it('changes its meta attributes with class change', function() { + var c = canvas.fromXML('
'), + span = c.doc().children()[0]; + + expect(span.getWlxmlMetaAttr('uri')).to.equal('someuri'); + span.setWlxmlClass('author'); + expect(span.getWlxmlMetaAttr('uri')).to.be.undefined; + }); + + it('keeps meta attribute value on class change if a new class has this attribute', function() { + var c = canvas.fromXML('
'), + span = c.doc().children()[0]; + span.setWlxmlClass('uri.some.subclass'); + expect(span.getWlxmlMetaAttr('uri')).to.equal('someuri'); + }); + }); }); it('returns DocumentNodeElement instance from HTMLElement', function() { @@ -547,10 +576,11 @@ describe('Canvas', function() { section = c.doc(), text = section.children()[1].children()[0]; - text.unwrap(); + var newTextContainer = text.unwrap(); expect(section.children().length).to.equal(1, 'section has one child'); expect(section.children()[0].getText()).to.equal('Alice has a cat'); + expect(newTextContainer.sameNode(c.doc())).to.equal(true, 'unwrap returns new text parent DocumentNodeElement'); }) }); }); @@ -980,6 +1010,17 @@ describe('Canvas', function() { expect(cursor.isSelecting()).to.equal(false, 'cursor is not selecting anything'); expect(position.element.getText()).to.equal('Alice has a cat'); expect(position.offset).to.equal(5); + expect(position.offsetAtEnd).to.equal(false, 'offset is not at end'); + + getSelection.returns({ + anchorNode: text, + focusNode: text, + anchorOffset: 15, + focusOffset: 15, + isCollapsed: true + }); + + expect(cursor.getPosition().offsetAtEnd).to.equal(true, 'offset at end'); }); it('returns boundries of selection when browser selection not collapsed', function() {