From b43ee99152819896fd1d0ae91ab076939412c8f6 Mon Sep 17 00:00:00 2001 From: Jeff Pihach Date: Wed, 24 Sep 2014 17:03:18 -0600 Subject: [PATCH 1/2] Render deployer bar and canvas switcher by default without mv --- app/app.js | 37 ++----------------------------------- 1 file changed, 2 insertions(+), 35 deletions(-) diff --git a/app/app.js b/app/app.js index e3ce38ea86..c24a383f44 100644 --- a/app/app.js +++ b/app/app.js @@ -565,10 +565,8 @@ YUI.add('juju-gui', function(Y) { this.dispatch(); } this._renderHelpDropdownView(); - if (window.flags.mv) { - this._renderDeployerBarView(); - this._renderEnvironmentHeaderView(); - } + this._renderDeployerBarView(); + this._renderEnvironmentHeaderView(); }, this); this.zoomMessageHandler = Y.one(Y.config.win).on('resize', function(e) { @@ -594,37 +592,6 @@ YUI.add('juju-gui', function(Y) { } }, this); - if (!window.flags.mv) { - var exportNode = Y.one('#export-trigger'); - // Tests won't have this node. - if (exportNode) { - exportNode.on('click', function(e) { - e.halt(); - importHelpers.exportYAML(this.db); - }, this); - } - - var importNode = Y.one('#import-trigger'); - var importFileInput = Y.one('.import-export input[type=file]'); - - // Tests won't have this node. - if (importNode && importFileInput) { - importNode.on('click', function(e) { - e.halt(); - e.currentTarget.siblings('input[type=file]') - .item(0).getDOMNode().click(); - }); - - importFileInput.on('change', function(e) { - importHelpers.deployBundleFiles( - e.currentTarget.get('files')._nodes, - this.env, - this.db - ); - }, this); - } - } - // Attach SubApplications. The subapps should share the same db. cfg.db = this.db; From 55cfb4af633deb686b39d3ad7a8634f450132b93 Mon Sep 17 00:00:00 2001 From: Jeff Pihach Date: Wed, 24 Sep 2014 17:03:53 -0600 Subject: [PATCH 2/2] Fix tests after the mv requirement was lifted from the deployer bar and canvas switcher --- test/test_app.js | 76 +++++++++++++++++++++++++++----------- test/test_app_hotkeys.js | 3 ++ test/test_endpoints.js | 21 ++++++++--- test/test_notifications.js | 9 +++-- 4 files changed, 78 insertions(+), 31 deletions(-) diff --git a/test/test_app.js b/test/test_app.js index 8d2b6823f0..1cb1c971d1 100644 --- a/test/test_app.js +++ b/test/test_app.js @@ -55,13 +55,18 @@ function injectData(app, data) { var Y, app, container, utils, juju, env, conn; before(function(done) { - Y = YUI(GlobalConfig).use( - ['juju-gui', 'juju-tests-utils', 'juju-view-utils', 'juju-views'], - function(Y) { - utils = Y.namespace('juju-tests.utils'); - juju = Y.namespace('juju'); - done(); - }); + Y = YUI(GlobalConfig).use([ + 'juju-gui', + 'juju-tests-utils', + 'juju-view-utils', + 'juju-views', + 'environment-change-set' + ], + function(Y) { + utils = Y.namespace('juju-tests.utils'); + juju = Y.namespace('juju'); + done(); + }); }); beforeEach(function() { @@ -87,14 +92,18 @@ function injectData(app, data) { app.destroy(); }); - function constructAppInstance(config) { + function constructAppInstance(config, context) { config = config || {}; if (config.env && config.env.connect) { config.env.connect(); } config.container = container; config.viewContainer = container; - + if (context) { + var _renderDeployerBarView = utils.makeStubMethod( + Y.juju.App.prototype, '_renderDeployerBarView'); + context._cleanups.push(_renderDeployerBarView.reset); + } app = new Y.juju.App(config); app.navigate = function() {}; app.showView(new Y.View()); @@ -106,7 +115,7 @@ function injectData(app, data) { function() { constructAppInstance({ env: juju.newEnvironment({ conn: new utils.SocketStub() }) - }); + }, this); assert.equal(app.env.get('user'), undefined); assert.equal(app.env.get('password'), undefined); }); @@ -127,6 +136,9 @@ function injectData(app, data) { function(done) { var the_username = 'nehi'; var the_password = 'moonpie'; + var _renderDeployerBarView = utils.makeStubMethod( + Y.juju.App.prototype, '_renderDeployerBarView'); + this._cleanups.push(_renderDeployerBarView.reset); app = new Y.juju.App( { container: container, user: the_username, @@ -142,6 +154,9 @@ function injectData(app, data) { }); it('propagates the readOnly option from the configuration', function() { + var _renderDeployerBarView = utils.makeStubMethod( + Y.juju.App.prototype, '_renderDeployerBarView'); + this._cleanups.push(_renderDeployerBarView.reset); app = new Y.juju.App({ container: container, readOnly: true, @@ -154,7 +169,7 @@ function injectData(app, data) { it('should produce a valid index', function() { constructAppInstance({ env: juju.newEnvironment({ conn: new utils.SocketStub() }) - }); + }, this); var container = app.get('container'); container.getAttribute('id').should.equal('test-container'); container.getAttribute('class').should.include('container'); @@ -170,7 +185,7 @@ function injectData(app, data) { } }), environment_name: environment_name - }); + }, this); assert.equal( container.one('#environment-name').get('text'), environment_name); @@ -199,7 +214,7 @@ function injectData(app, data) { close: function() {} } }) - }); + }, this); var name = 'Sandbox'; assert.equal( 'Environment', @@ -216,7 +231,7 @@ function injectData(app, data) { close: function() {} } }) - }); + }, this); // XXX bug:1217383 // Force an app._controlEvents so that we don't try to bind viewmode @@ -244,7 +259,10 @@ function injectData(app, data) { it('should display a zoom message on small browsers', function() { constructAppInstance({ - env: juju.newEnvironment({ conn: new utils.SocketStub() }) + env: juju.newEnvironment({ + conn: new utils.SocketStub(), + ecs: new juju.EnvironmentChangeSet() + }) }); app._displayZoomMessage(1024, 'linux'); assert.equal(app.db.notifications.item(0).get('title'), @@ -253,7 +271,10 @@ function injectData(app, data) { it('should not display the zoom message more than once', function() { constructAppInstance({ - env: juju.newEnvironment({ conn: new utils.SocketStub() }) + env: juju.newEnvironment({ + conn: new utils.SocketStub(), + ecs: new juju.EnvironmentChangeSet() + }) }); assert.equal(app.db.notifications.size(), 0); app._displayZoomMessage(1024, 'linux'); @@ -265,7 +286,10 @@ function injectData(app, data) { it('should show the correct message on a mac', function() { constructAppInstance({ - env: juju.newEnvironment({ conn: new utils.SocketStub() }) + env: juju.newEnvironment({ + conn: new utils.SocketStub(), + ecs: new juju.EnvironmentChangeSet() + }) }); app._displayZoomMessage(1024, 'macintosh'); assert.isTrue(app.db.notifications.item(0).get( @@ -274,7 +298,10 @@ function injectData(app, data) { it('should show the correct message for non mac', function() { constructAppInstance({ - env: juju.newEnvironment({ conn: new utils.SocketStub() }) + env: juju.newEnvironment({ + conn: new utils.SocketStub(), + ecs: new juju.EnvironmentChangeSet() + }) }); app._displayZoomMessage(1024, 'linux'); assert.isTrue(app.db.notifications.item(0).get( @@ -324,6 +351,9 @@ describe('File drag over notification system', function() { .append(Y.Node.create('') .set('id', 'environment-name')) .hide(); + var _renderDeployerBarView = testUtils.makeStubMethod( + Y.juju.App.prototype, '_renderDeployerBarView'); + this._cleanups.push(_renderDeployerBarView.reset); }); afterEach(function(done) { @@ -545,8 +575,9 @@ describe('File drag over notification system', function() { describe('Application authentication', function() { var FAKE_VIEW_NAME, LOGIN_VIEW_NAME; - var conn, container, destroyMe, env, juju, utils, Y; - var requirements = ['juju-gui', 'juju-tests-utils', 'juju-views']; + var conn, container, destroyMe, ecs, env, juju, utils, Y; + var requirements = [ + 'juju-gui', 'juju-tests-utils', 'juju-views', 'environment-change-set']; before(function(done) { Y = YUI(GlobalConfig).use(requirements, function(Y) { @@ -561,9 +592,10 @@ describe('File drag over notification system', function() { beforeEach(function(done) { container = utils.makeContainer(this, 'container'); conn = new utils.SocketStub(); - env = juju.newEnvironment({conn: conn}); + ecs = new juju.EnvironmentChangeSet(); + env = juju.newEnvironment({conn: conn, ecs: ecs}); env.setCredentials({user: 'user', password: 'password'}); - destroyMe = [env]; + destroyMe = [env, ecs]; done(); }); diff --git a/test/test_app_hotkeys.js b/test/test_app_hotkeys.js index 8cd5140298..4c294a5e0f 100644 --- a/test/test_app_hotkeys.js +++ b/test/test_app_hotkeys.js @@ -38,6 +38,9 @@ describe('application hotkeys', function() { beforeEach(function() { container = Y.namespace('juju-tests.utils').makeContainer(this); + var _renderDeployerBarView = Y.namespace('juju-tests.utils').makeStubMethod( + Y.juju.App.prototype, '_renderDeployerBarView'); + this._cleanups.push(_renderDeployerBarView.reset); app = new Y.juju.App({ env: env, container: container, diff --git a/test/test_endpoints.js b/test/test_endpoints.js index ba7c524c15..26c64fce12 100644 --- a/test/test_endpoints.js +++ b/test/test_endpoints.js @@ -22,7 +22,7 @@ with this program. If not, see . // the addition of puppet subordinate relations. describe('Relation endpoints logic', function() { - var Y, juju, utils, db, app, models, sample_endpoints, sample_env, env; + var Y, juju, utils, db, app, models, sample_endpoints, sample_env, env, ecs; before(function(done) { Y = YUI(GlobalConfig).use([ @@ -40,12 +40,14 @@ describe('Relation endpoints logic', function() { 'juju-models', 'juju-gui', 'juju-tests-utils', - 'juju-controllers'], + 'juju-controllers', + 'environment-change-set'], function(Y) { juju = Y.namespace('juju'); models = Y.namespace('juju.models'); var conn = new utils.SocketStub(); - env = juju.newEnvironment({conn: conn}); + ecs = new juju.EnvironmentChangeSet(); + env = juju.newEnvironment({conn: conn, ecs: ecs}); env.connect(); app = new Y.juju.App({env: env}); app.navigate = function() { return true; }; @@ -309,7 +311,8 @@ describe('Endpoints map', function() { }); describe('Endpoints map handlers', function() { - var app, conn, controller, destroyMe, env, factory, juju, models, utils, Y; + var app, conn, controller, destroyMe, ecs, _renderDeployerBarView, + env, factory, juju, models, utils, Y; before(function(done) { Y = YUI(GlobalConfig).use(['juju-gui', @@ -333,8 +336,12 @@ describe('Endpoints map handlers', function() { destroyMe = []; conn = new utils.SocketStub(); env = juju.newEnvironment({conn: conn}); + env.setCredentials({user: 'user', password: 'password'}); env.connect(); destroyMe.push(env); + var _renderDeployerBarView = utils.makeStubMethod( + Y.juju.App.prototype, '_renderDeployerBarView'); + this._cleanups.push(_renderDeployerBarView.reset); app = new Y.juju.App({ env: env, consoleEnabled: true, @@ -506,7 +513,8 @@ describe('Service config handlers', function() { 'juju-endpoints-controller', 'juju-controllers', 'juju-charm-store', - 'datasource-local'], + 'datasource-local', + 'environment-change-set'], function(Y) { juju = Y.namespace('juju'); utils = Y.namespace('juju-tests.utils'); @@ -518,7 +526,8 @@ describe('Service config handlers', function() { beforeEach(function() { destroyMe = []; conn = new utils.SocketStub(); - env = juju.newEnvironment({conn: conn}); + var ecs = new juju.EnvironmentChangeSet(); + env = juju.newEnvironment({conn: conn, ecs: ecs}); env.connect(); app = new Y.juju.App({env: env, consoleEnabled: true }); destroyMe.push(app); diff --git a/test/test_notifications.js b/test/test_notifications.js index f9b74fa2b7..dd4ed3638e 100644 --- a/test/test_notifications.js +++ b/test/test_notifications.js @@ -84,7 +84,8 @@ describe('notifications', function() { 'juju-env', 'node-event-simulate', 'juju-tests-utils', - 'ns-routing-app-extension'], + 'ns-routing-app-extension', + 'environment-change-set'], function(Y) { juju = Y.namespace('juju'); @@ -216,7 +217,8 @@ describe('notifications', function() { var container = Y.Node.create( '
'), conn = new(Y.namespace('juju-tests.utils')).SocketStub(), - env = juju.newEnvironment({conn: conn}, 'python'); + ecs = new juju.EnvironmentChangeSet(), + env = juju.newEnvironment({conn: conn, ecs: ecs}, 'python'); app = new Y.juju.App({ env: env, container: container, @@ -260,7 +262,8 @@ describe('notifications', function() { var container = Y.Node.create( '
'); var conn = new(Y.namespace('juju-tests.utils')).SocketStub(); - var env = juju.newEnvironment({conn: conn}, 'python'); + var ecs = new juju.EnvironmentChangeSet(); + var env = juju.newEnvironment({conn: conn, ecs: ecs}, 'python'); env.connect(); app = new Y.juju.App({ env: env,