Repository: ambari Updated Branches: refs/heads/trunk 401fb1993 -> 7cd4d454a
AMBARI-7620. Views are not loading right after login. (jaimin) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/7cd4d454 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/7cd4d454 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/7cd4d454 Branch: refs/heads/trunk Commit: 7cd4d454aa3a42b29aedd90e91a1321ad3c4e2d3 Parents: 401fb19 Author: Jaimin Jetly <jai...@hortonworks.com> Authored: Fri Oct 3 10:12:51 2014 -0700 Committer: Jaimin Jetly <jai...@hortonworks.com> Committed: Fri Oct 3 10:49:43 2014 -0700 ---------------------------------------------------------------------- ambari-web/app/assets/test/tests.js | 1 + .../app/controllers/main/views_controller.js | 3 ++ ambari-web/app/router.js | 1 + .../controllers/main/views_controller_test.js | 48 ++++++++++++++++++++ 4 files changed, 53 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/7cd4d454/ambari-web/app/assets/test/tests.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/assets/test/tests.js b/ambari-web/app/assets/test/tests.js index 29b5be3..bcc835b 100644 --- a/ambari-web/app/assets/test/tests.js +++ b/ambari-web/app/assets/test/tests.js @@ -81,6 +81,7 @@ var files = ['test/init_model_test', 'test/controllers/main/service_test', 'test/controllers/main/admin_test', 'test/controllers/main/alerts_controller_test', + 'test/controllers/main/views_controller_test', 'test/controllers/installer_test', 'test/controllers/wizard_test', 'test/controllers/wizard/step0_test', http://git-wip-us.apache.org/repos/asf/ambari/blob/7cd4d454/ambari-web/app/controllers/main/views_controller.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/main/views_controller.js b/ambari-web/app/controllers/main/views_controller.js index cc3499c..17d2a2a 100644 --- a/ambari-web/app/controllers/main/views_controller.js +++ b/ambari-web/app/controllers/main/views_controller.js @@ -43,6 +43,9 @@ App.MainViewsController = Em.Controller.extend({ loadAmbariViews: function () { + if (!App.router.get('loggedIn')) { + return; + } App.ajax.send({ name: 'views.info', sender: this, http://git-wip-us.apache.org/repos/asf/ambari/blob/7cd4d454/ambari-web/app/router.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/router.js b/ambari-web/app/router.js index e1c2a5c..b347512 100644 --- a/ambari-web/app/router.js +++ b/ambari-web/app/router.js @@ -282,6 +282,7 @@ App.Router = Em.Router.extend({ loginData.privileges = privileges; App.usersMapper.map({"items": [loginData]}); router.setUserLoggedIn(params.loginName); + App.router.get('mainViewsController').loadAmbariViews(); var permissionList = privileges.items.mapProperty('PrivilegeInfo.permission_name'); var isAdmin = permissionList.contains('AMBARI.ADMIN'); var transitionToApp = false; http://git-wip-us.apache.org/repos/asf/ambari/blob/7cd4d454/ambari-web/test/controllers/main/views_controller_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/main/views_controller_test.js b/ambari-web/test/controllers/main/views_controller_test.js new file mode 100644 index 0000000..6e293e9 --- /dev/null +++ b/ambari-web/test/controllers/main/views_controller_test.js @@ -0,0 +1,48 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +var App = require('app'); +require('controllers/main/views_controller'); + +describe('MainViewsController', function () { + + var mainViewsController = App.MainViewsController.create(); + + describe('#loadAmbariViews()', function () { + beforeEach(function () { + sinon.stub(App.ajax, 'send', Em.K); + }); + afterEach(function () { + App.router.get.restore(); + App.ajax.send.restore(); + }); + + it('should load views if the user is logged in', function () { + sinon.stub(App.router, 'get').withArgs('loggedIn').returns(true); + mainViewsController.loadAmbariViews(); + expect(App.ajax.send.calledOnce).to.be.true; + }); + + it('should not load views if the user is not logged in', function () { + sinon.stub(App.router, 'get').withArgs('loggedIn').returns(false); + mainViewsController.loadAmbariViews(); + expect(App.ajax.send.notCalled).to.be.true; + }) + }); + +});