describe('Canvas', function() {
+
+ describe('Internal HTML representation of a DocumentNodeElement', function() {
+ it('is always a div tag', function() {
+ ['section', 'header', 'span', 'aside', 'figure'].forEach(function(tagName) {
+ var dom = canvas.fromXML('<' + tagName + '></' + tagName + '>').doc().dom();
+ expect(dom.prop('tagName')).to.equal('DIV', tagName + ' is represented as div');
+ });
+ });
+ it('has wlxml tag put into wlxml-tag attribute', function() {
+ var dom = canvas.fromXML('<section></section>').doc().dom();
+ expect(dom.attr('wlxml-tag')).to.equal('section');
+ });
+ it('has wlxml class put into wlxml-class, dots replaced with dashes', function() {
+ var dom = canvas.fromXML('<section class="some.class"></section>').doc().dom();
+ expect(dom.attr('wlxml-class')).to.equal('some-class');
+ });
+ });
+
+ describe('Internal HTML representation of a DocumentTextElement', function() {
+ it('is just a TextNode', function() {
+ var dom = canvas.fromXML('<section>Alice</section>').doc().children()[0].dom();
+ expect(dom[0].nodeType === Node.TEXT_NODE);
+ });
+ });
+
describe('basic properties', function() {
it('renders empty document when canvas created from empty XML', function() {
var c = canvas.fromXML('');
expect(c.doc().wlxmlTag).to.equal('section');
});
- describe('DocumentElement', function() {
+ describe('DocumentTextElement', function() {
+ it('can have its content set', function() {
+ var c = canvas.fromXML('<section>Alice</section>'),
+ root = c.doc(),
+ text = root.children()[0];
+
+ text.setText('a cat');
+ expect(root.children()[0].getText()).to.equal('a cat');
+ });
+ });
+
+ describe('DocumentNodeElement', function() {
it('knows index of its child', function() {
var c = canvas.fromXML('<section><div></div><header></header><span></span></section>'),
root = c.doc(),
expect(root.childIndex(child)).to.equal(1);
});
- describe('DocumentTextElement can have its content set', function() {
- var c = canvas.fromXML('<section>Alice</section>'),
- root = c.doc(),
- text = root.children()[0];
-
- text.setText('a cat');
- expect(root.children()[0].getText()).to.equal('a cat');
+ it('knows WLXML tag it renders', function(){
+ var c = canvas.fromXML('<section></section>'),
+ section = c.doc();
+ expect(section.getWlxmlTag()).to.equal('section', 'initial tag is section');
+ section.setWlxmlTag('header');
+ expect(section.getWlxmlTag()).to.equal('header', 'tag is changed to header');
+ });
+
+ it('knows WLXML class of a WLXML tag it renders', function(){
+ var c = canvas.fromXML('<section class="some.class"></section>'),
+ section = c.doc();
+ expect(section.getWlxmlClass()).to.equal('some.class');
+ section.setWlxmlClass('some.other.class');
+ expect(section.getWlxmlClass()).to.equal('some.other.class');
});
});
});
+
+
describe('document representation api', function() {
describe('document root element', function() {
var c = canvas.fromXML('<section></section>');