Browse Source

Add tests for CssGenerator

pull/540/head
Artur Arseniev 9 years ago
parent
commit
c97ad3431a
  1. 4
      src/dom_components/model/Component.js
  2. 2
      src/editor/model/Editor.js
  3. 45
      test/specs/code_manager/model/CodeModels.js
  4. 2
      test/specs/css_composer/index.js

4
src/dom_components/model/Component.js

@ -209,8 +209,10 @@ module.exports = Backbone.Model.extend(Styleable).extend({
const cc = this.em.get('CssComposer'); const cc = this.em.get('CssComposer');
this.rule = cc.setIdRule(this.getId(), prop, { ...opts, state }); this.rule = cc.setIdRule(this.getId(), prop, { ...opts, state });
} else { } else {
Styleable.setStyle.apply(this, arguments); prop = Styleable.setStyle.apply(this, arguments);
} }
return prop;
}, },

2
src/editor/model/Editor.js

@ -47,7 +47,7 @@ module.exports = Backbone.Model.extend({
device: '', device: '',
}, },
initialize(c) { initialize(c = {}) {
this.config = c; this.config = c;
this.set('Config', c); this.set('Config', c);
this.set('modules', []); this.set('modules', []);

45
test/specs/code_manager/model/CodeModels.js

@ -2,17 +2,21 @@ const CssGenerator = require('code_manager/model/CssGenerator');
const HtmlGenerator = require('code_manager/model/HtmlGenerator'); const HtmlGenerator = require('code_manager/model/HtmlGenerator');
const DomComponents = require('dom_components'); const DomComponents = require('dom_components');
const Component = require('dom_components/model/Component'); const Component = require('dom_components/model/Component');
const Editor = require('editor/model/Editor');
const CssComposer = require('css_composer'); const CssComposer = require('css_composer');
module.exports = { module.exports = {
run() { run() {
let comp; let comp;
let dcomp;
let obj; let obj;
let em;
let cc;
describe('HtmlGenerator', () => { describe('HtmlGenerator', () => {
beforeEach(() => { beforeEach(() => {
obj = new HtmlGenerator(); obj = new HtmlGenerator();
var dcomp = new DomComponents(); dcomp = new DomComponents();
comp = new Component({}, { comp = new Component({}, {
componentTypes: dcomp.componentTypes, componentTypes: dcomp.componentTypes,
}); });
@ -58,12 +62,15 @@ module.exports = {
}); });
}); });
describe('CssGenerator', () => { describe.only('CssGenerator', () => {
var newCssComp = () => new CssComposer().init(); var newCssComp = () => new CssComposer().init();
beforeEach(() => { beforeEach(() => {
em = new Editor({});
cc = em.get('CssComposer');
obj = new CssGenerator(); obj = new CssGenerator();
var dcomp = new DomComponents(); dcomp = new DomComponents();
comp = new Component({}, { comp = new Component({}, {
em,
componentTypes: dcomp.componentTypes, componentTypes: dcomp.componentTypes,
}); });
}); });
@ -213,6 +220,38 @@ module.exports = {
comp.get('components').remove(m1); comp.get('components').remove(m1);
expect(obj.build(comp, {cssc})).toEqual(''); expect(obj.build(comp, {cssc})).toEqual('');
}); });
it('Render correctly a rule with avoidInlineStyle option and not', () => {
em.get('DomComponents').getConfig().avoidInlineStyle = 1;
comp.setStyle({color: 'red'});
const id = comp.getId();
const result = `#${id}{color:red;}`;
expect(obj.build(comp, {cssc: cc})).toEqual(result);
expect(obj.build(comp, {cssc: cc, em})).toEqual('');
});
it('Render correctly a rule with avoidInlineStyle and state', () => {
em.get('DomComponents').getConfig().avoidInlineStyle = 1;
const state = 'hover';
comp.config.avoidInlineStyle = 1;
comp.set('state', state);
comp.setStyle({color: 'red'});
const id = comp.getId();
const result = `#${id}:${state}{color:red;}`;
expect(obj.build(comp, {cssc: cc, em})).toEqual(result);
});
it('Render correctly a rule with avoidInlineStyle and w/o state', () => {
em.get('DomComponents').getConfig().avoidInlineStyle = 1;
const state = 'hover';
comp.config.avoidInlineStyle = 1;
comp.setStyle({color: 'blue'});
comp.set('state', state);
comp.setStyle({color: 'red'});
const id = comp.getId();
const result = `#${id}{color:blue;}#${id}:${state}{color:red;}`;
expect(obj.build(comp, {cssc: cc, em})).toEqual(result);
});
}) })
} }
}; };

2
test/specs/css_composer/index.js

@ -8,7 +8,7 @@ const Editor = require('editor/model/Editor');
describe('Css Composer', () => { describe('Css Composer', () => {
describe.only('Main', () => { describe('Main', () => {
var obj; var obj;
var em; var em;

Loading…
Cancel
Save