Browse Source

Added tests for AssetManager

pull/11/head
Artur Arseniev 10 years ago
parent
commit
c27fe80886
  1. 6
      src/asset_manager/view/AssetView.js
  2. 2
      src/asset_manager/view/FileUploader.js
  3. 3
      test/runner/main.js
  4. 77
      test/specs/asset_manager/view/AssetImageView.js
  5. 42
      test/specs/asset_manager/view/AssetView.js
  6. 77
      test/specs/asset_manager/view/FileUploader.js

6
src/asset_manager/view/AssetView.js

@ -6,9 +6,9 @@ define(['backbone'],
return Backbone.View.extend({ return Backbone.View.extend({
initialize: function(o) { initialize: function(o) {
this.options = o; this.options = o;
this.config = o.config || {}; this.config = o.config || {};
this.pfx = this.config.stylePrefix; this.pfx = this.config.stylePrefix || '';
this.className = this.pfx + 'asset'; this.className = this.pfx + 'asset';
this.listenTo( this.model, 'destroy remove', this.remove ); this.listenTo( this.model, 'destroy remove', this.remove );
}, },

2
src/asset_manager/view/FileUploader.js

@ -13,7 +13,7 @@ define(['backbone', 'text!./../template/fileUploader.html'],
initialize: function(o) { initialize: function(o) {
this.options = o || {}; this.options = o || {};
this.config = o.config || {}; this.config = o.config || {};
this.pfx = this.config.stylePrefix; this.pfx = this.config.stylePrefix || '';
this.target = this.collection || {}; this.target = this.collection || {};
this.uploadId = this.pfx + 'uploadFile'; this.uploadId = this.pfx + 'uploadFile';
this.disabled = this.config.disableUpload; this.disabled = this.config.disableUpload;

3
test/runner/main.js

@ -8,6 +8,9 @@ require(['../src/config/require-config.js', 'config/config.js'], function() {
'specs/asset_manager/model/AssetImage.js', 'specs/asset_manager/model/AssetImage.js',
'specs/asset_manager/model/Assets.js', 'specs/asset_manager/model/Assets.js',
'specs/asset_manager/view/AssetsView.js', 'specs/asset_manager/view/AssetsView.js',
'specs/asset_manager/view/AssetView.js',
'specs/asset_manager/view/AssetImageView.js',
'specs/asset_manager/view/FileUploader.js',
], function(chai) ], function(chai)
{ {
var should = chai.should(), var should = chai.should(),

77
test/specs/asset_manager/view/AssetImageView.js

@ -0,0 +1,77 @@
define(['AssetManager/view/AssetImageView', 'AssetManager/model/AssetImage', 'AssetManager/model/Assets'],
function(AssetImageView, AssetImage, Assets) {
describe('Asset Manager', function() {
describe('AssetImageView', function() {
before(function () {
this.$fixtures = $("#fixtures");
this.$fixture = $('<div class="asset-fixture"></div>');
});
beforeEach(function () {
var coll = new Assets();
var model = coll.add({ type:'image', src: '/test' });
this.view = new AssetImageView({
config : {},
model: model
});
this.$fixture.empty().appendTo(this.$fixtures);
this.$fixture.html(this.view.render().el);
});
afterEach(function () {
this.view.model.destroy();
});
after(function () {
this.$fixture.remove();
});
it('Object exists', function() {
AssetImageView.should.be.exist;
});
describe('Asset should be rendered correctly', function() {
it('Has preview box', function() {
var $asset = this.view.$el;
$asset.find('#preview').should.have.property(0);
});
it('Has meta box', function() {
var $asset = this.view.$el;
$asset.find('#meta').should.have.property(0);
});
it('Has close button', function() {
var $asset = this.view.$el;
$asset.find('#close').should.have.property(0);
});
});
it('Could be selected', function() {
sinon.stub(this.view, 'updateTarget');
this.view.$el.trigger('click');
this.view.$el.attr('class').should.contain('highlight');
this.view.updateTarget.calledOnce.should.equal(true);
});
it('Could be chosen', function() {
sinon.stub(this.view, 'updateTarget');
this.view.$el.trigger('dblclick');
this.view.updateTarget.calledOnce.should.equal(true);
});
it('Could be removed', function() {
var spy = sinon.spy();
this.view.model.on("remove", spy);
this.view.$el.find('#close').trigger('click');
spy.called.should.equal(true);
});
});
});
});

42
test/specs/asset_manager/view/AssetView.js

@ -0,0 +1,42 @@
define(['AssetManager/view/AssetView', 'AssetManager/model/Asset', 'AssetManager/model/Assets'],
function(AssetView, Asset, Assets) {
describe('Asset Manager', function() {
describe('AssetView', function() {
before(function () {
this.$fixtures = $("#fixtures");
this.$fixture = $('<div class="asset-fixture"></div>');
});
beforeEach(function () {
var coll = new Assets();
var model = coll.add({});
this.view = new AssetView({
config : {},
model: model
});
this.$fixture.empty().appendTo(this.$fixtures);
this.$fixture.html(this.view.render().el);
});
afterEach(function () {
this.view.model.destroy();
});
after(function () {
this.$fixture.remove();
});
it('Object exists', function() {
AssetView.should.be.exist;
});
it('Has correct prefix', function() {
this.view.pfx.should.equal('');
});
});
});
});

77
test/specs/asset_manager/view/FileUploader.js

@ -0,0 +1,77 @@
define(['AssetManager/view/FileUploader'],
function(FileUploader) {
describe('Asset Manager', function() {
describe('File Uploader', function() {
before(function () {
this.$fixtures = $("#fixtures");
this.$fixture = $('<div class="fileupload-fixture"></div>');
});
beforeEach(function () {
this.view = new FileUploader({ config : {} });
this.$fixture.empty().appendTo(this.$fixtures);
this.$fixture.html(this.view.render().el);
});
afterEach(function () {
this.view.remove();
});
after(function () {
this.$fixture.remove();
});
it('Object exists', function() {
FileUploader.should.be.exist;
});
it('Has correct prefix', function() {
this.view.pfx.should.equal('');
});
describe('Should be rendered correctly', function() {
it('Has title', function() {
this.view.$el.find('#title').should.have.property(0);
});
it('Title is empty', function() {
this.view.$el.find('#title').html().should.equal('');
});
it('Has file input', function() {
this.view.$el.find('input[type=file]').should.have.property(0);
});
it('File input is enabled', function() {
this.view.$el.find('input[type=file]').prop('disabled').should.equal(false);
});
});
describe('Interprets configurations correctly', function() {
it('Has correct title', function() {
var view = new FileUploader({ config : {
uploadText : 'Test',
} });
view.render();
view.$el.find('#title').html().should.equal('Test');
});
it('Could be disabled', function() {
var view = new FileUploader({ config : {
disableUpload: true,
} });
view.render();
view.$el.find('input[type=file]').prop('disabled').should.equal(true);
});
});
});
});
});
Loading…
Cancel
Save