diff --git a/src/editor/main.js b/src/editor/main.js index 89be399e7..8e613c5b3 100644 --- a/src/editor/main.js +++ b/src/editor/main.js @@ -63,6 +63,16 @@ define(function (require){ return editorModel.get('Components').getComponents(); }, + /** + * Set components inside editor's canvas. This method overrides actual components + * @param {Array|Object|string} components HTML string or components model + * @return {this} + */ + setComponents: function(components){ + editorModel.setComponents(components); + return this; + }, + /** * Returns style in JSON format object * @return {Object} @@ -71,6 +81,14 @@ define(function (require){ return editorModel.get('CssComposer').getRules(); }, + /** + * Returns selected component, if there is one + * @return {grapesjs.Component} + */ + getSelected: function(){ + return editorModel.getSelected(); + }, + render: function() { return editorView.render().$el; }, diff --git a/test/specs/grapesjs/main.js b/test/specs/grapesjs/main.js index 77995c65f..784fef99e 100644 --- a/test/specs/grapesjs/main.js +++ b/test/specs/grapesjs/main.js @@ -83,6 +83,18 @@ define(['GrapesJS', 'PluginManager', 'chai'], editor.getStyle().length.should.equal(2);// .test3 is still here }); + it('Set components as HTML', function() { + var editor = obj.init(config); + editor.setComponents(htmlString); + editor.getComponents().length.should.equal(2); + }); + + it('Set components as array of objects', function() { + var editor = obj.init(config); + editor.setComponents([{}, {}, {}]); + editor.getComponents().length.should.equal(3); + }); + }); });