Browse Source

Few updates on Class Manager

pull/14/head
Artur Arseniev 11 years ago
parent
commit
c4154dad57
  1. 121
      test/specs/class_manager/e2e/ClassManager.js
  2. 20
      test/specs/class_manager/view/ClassTagsView.js

121
test/specs/class_manager/e2e/ClassManager.js

@ -54,79 +54,72 @@ define(
this.$fixture.remove();
});
describe('Interaction with Components', function() {
it('Assign correctly new class to component', function() {
var wrp = this.gjs.editor.get('Components').getWrapper().get('components');
var model = wrp.add({});
model.get('classes').length.should.equal(0);
// Init Class Manager and set editor as a target
var $clm = instClassTagViewer(this);
// Select element
this.gjs.editor.set('selectedComponent', model);
$clm.addNewTag('test');
model.get('classes').length.should.equal(1);
model.get('classes').at(0).get('name').should.equal('test');
});
it('Classes from components are correctly imported inside main container', function() {
var wrp = this.gjs.editor.get('Components').getWrapper().get('components');
var model = wrp.add([
{ classes: ['test11', 'test12', 'test13'] },
{ classes: ['test11', 'test22', 'test22'] },
]);
this.gjs.editor.get('ClassManager').getClasses().length.should.equal(4);
});
it('Class imported into component is the same model from main container', function() {
var wrp = this.gjs.editor.get('Components').getWrapper().get('components');
var model = wrp.add({
classes: ['test1']
beforeEach(function () {
this.wrapper = this.gjs.editor.get('Components').getWrapper().get('components');
this.$clm = instClassTagViewer(this);
});
var clModel = model.get('classes').at(0);
var clModel2 = this.gjs.editor.get('ClassManager').getClasses().at(0);
clModel.should.deep.equal(clModel2);
});
it('Can assign only one time the same class on selected component and the class viewer', function() {
var wrp = this.gjs.editor.get('Components').getWrapper().get('components');
var model = wrp.add({});
var $clm = instClassTagViewer(this);
// Select element
this.gjs.editor.set('selectedComponent', model);
afterEach(function () {
delete this.wrapper;
delete this.$clm;
});
$clm.addNewTag('test');
$clm.addNewTag('test');
it('Assign correctly new class to component', function() {
var model = this.wrapper.add({});
model.get('classes').length.should.equal(0);
this.gjs.editor.set('selectedComponent', model);
this.$clm.addNewTag('test');
model.get('classes').length.should.equal(1);
model.get('classes').at(0).get('name').should.equal('test');
});
model.get('classes').length.should.equal(1);
model.get('classes').at(0).get('name').should.equal('test');
it('Classes from components are correctly imported inside main container', function() {
var model = this.wrapper.add([
{ classes: ['test11', 'test12', 'test13'] },
{ classes: ['test11', 'test22', 'test22'] },
]);
this.gjs.editor.get('ClassManager').getClasses().length.should.equal(4);
});
$clm.collection.length.should.equal(1);
$clm.collection.at(0).get('name').should.equal('test');
});
it('Class imported into component is the same model from main container', function() {
var model = this.wrapper.add({ classes: ['test1'] });
var clModel = model.get('classes').at(0);
var clModel2 = this.gjs.editor.get('ClassManager').getClasses().at(0);
clModel.should.deep.equal(clModel2);
});
it('Removing from container removes also from selected component', function() {
it('Can assign only one time the same class on selected component and the class viewer', function() {
var model = this.wrapper.add({});
this.gjs.editor.set('selectedComponent', model);
this.$clm.addNewTag('test');
this.$clm.addNewTag('test');
model.get('classes').length.should.equal(1);
model.get('classes').at(0).get('name').should.equal('test');
this.$clm.collection.length.should.equal(1);
this.$clm.collection.at(0).get('name').should.equal('test');
});
var wrp = this.gjs.editor.get('Components').getWrapper().get('components');
var model = wrp.add({});
var $clm = instClassTagViewer(this);
this.gjs.editor.set('selectedComponent', model);
$clm.addNewTag('test');
$clm.collection.at(0).destroy();
it('Removing from container removes also from selected component', function() {
var model = this.wrapper.add({});
this.gjs.editor.set('selectedComponent', model);
this.$clm.addNewTag('test');
this.$clm.collection.at(0).destroy();
model.get('classes').length.should.equal(0);
});
model.get('classes').length.should.equal(0);
it("Trigger correctly event on target with new class add", function() {
var spy = sinon.spy();
var model = this.wrapper.add({});
this.gjs.editor.set('selectedComponent', model);
this.$clm.addNewTag('test');
this.gjs.editor.on("targetClassAdded", spy);
this.$clm.addNewTag('test');
spy.called.should.equal(false);
this.$clm.addNewTag('test2');
spy.called.should.equal(true);
});
});

20
test/specs/class_manager/view/ClassTagsView.js

@ -21,6 +21,14 @@ define([path + 'ClassTagsView', 'ClassManager/model/ClassTags'],
collection: this.coll
});
this.targetStub = {
addClass: function(v){ return {name: v}; }
};
this.compTargetStub = {
get: function(){ return { add: function(){} }}
};
this.$fixture.empty().appendTo(this.$fixtures);
this.$fixture.html(this.view.render().el);
this.btnAdd = this.view.$el.find('#' + this.view.addBtnId);
@ -104,16 +112,8 @@ define([path + 'ClassTagsView', 'ClassManager/model/ClassTags'],
});
it("Accept new tags", function() {
sinon.stub(this.target, "get").returns({
addClass: function(v){
return {name: v};
}
});
this.view.compTarget = {
get: function(){
return { add: function(){} };
}
};
sinon.stub(this.target, "get").returns(this.targetStub);
this.view.compTarget = this.compTargetStub;
this.view.addNewTag('test');
this.view.addNewTag('test2');
this.$tags.children().length.should.equal(2);

Loading…
Cancel
Save