diff --git a/src/asset_manager/view/AssetsView.js b/src/asset_manager/view/AssetsView.js index b33662c77..b2229a327 100644 --- a/src/asset_manager/view/AssetsView.js +++ b/src/asset_manager/view/AssetsView.js @@ -46,10 +46,9 @@ define(['backbone', './AssetView', './AssetImageView', './FileUploader', 'text!. addFromStr: function(e){ e.preventDefault(); - if(!this.inputUrl || !this.inputUrl.value) - this.inputUrl = this.el.querySelector('.'+this.pfx+'add-asset input'); + var input = this.getInputUrl(); - var url = this.inputUrl.value.trim(); + var url = input.value.trim(); if(!url) return; @@ -57,13 +56,14 @@ define(['backbone', './AssetView', './AssetImageView', './FileUploader', 'text!. this.collection.addImg(url, {at: 0}); this.getAssetsEl().scrollTop = 0; - this.inputUrl.value = ''; + input.value = ''; return this; }, /** * Returns assets element * @return {HTMLElement} + * @private */ getAssetsEl: function(){ //if(!this.assets) // Not able to cache as after the rerender it losses the ref @@ -71,6 +71,17 @@ define(['backbone', './AssetView', './AssetImageView', './FileUploader', 'text!. return this.assets; }, + /** + * Returns input url element + * @return {HTMLElement} + * @private + */ + getInputUrl: function(){ + if(!this.inputUrl || !this.inputUrl.value) + this.inputUrl = this.el.querySelector('.'+this.pfx+'add-asset input'); + return this.inputUrl; + }, + /** * Store collection * diff --git a/test/specs/asset_manager/view/AssetsView.js b/test/specs/asset_manager/view/AssetsView.js index ce8a774b1..473c04c02 100644 --- a/test/specs/asset_manager/view/AssetsView.js +++ b/test/specs/asset_manager/view/AssetsView.js @@ -5,6 +5,8 @@ define(['AssetManager/view/AssetsView', 'AssetManager/model/Assets'], describe('AssetsView', function() { + var obj; + before(function () { this.$fixtures = $("#fixtures"); this.$fixture = $('
'); @@ -16,6 +18,7 @@ define(['AssetManager/view/AssetsView', 'AssetManager/model/Assets'], config : {}, collection: this.coll }); + obj = this.view; this.$fixture.empty().appendTo(this.$fixtures); this.$fixture.html(this.view.render().el); }); @@ -79,6 +82,23 @@ define(['AssetManager/view/AssetsView', 'AssetManager/model/Assets'], $asset.attr('class').should.be.empty; }); + it("Returns not empty assets element", function (){ + obj.getAssetsEl().should.be.ok; + }); + + it("Returns not empty url input", function (){ + obj.getInputUrl().should.be.ok; + }); + + it("Add image asset from input string", function (){ + obj.getInputUrl().value = "test"; + obj.addFromStr({ + preventDefault: function(){} + }); + var asset = obj.collection.at(0); + asset.get('src').should.equal('test'); + }); + }); }); }); \ No newline at end of file