step7_controller_test.js 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. /**
  2. * Licensed to the Apache Software Foundation (ASF) under one
  3. * or more contributor license agreements. See the NOTICE file
  4. * distributed with this work for additional information
  5. * regarding copyright ownership. The ASF licenses this file
  6. * to you under the Apache License, Version 2.0 (the
  7. * "License"); you may not use this file except in compliance
  8. * with the License. You may obtain a copy of the License at
  9. *
  10. * http://www.apache.org/licenses/LICENSE-2.0
  11. *
  12. * Unless required by applicable law or agreed to in writing, software
  13. * distributed under the License is distributed on an "AS IS" BASIS,
  14. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15. * See the License for the specific language governing permissions and
  16. * limitations under the License.
  17. */
  18. var App = require('app');
  19. var testHelpers = require('test/helpers');
  20. function getController() {
  21. return App.KerberosWizardStep7Controller.create({});
  22. }
  23. describe('App.KerberosWizardStep7Controller', function () {
  24. var controller;
  25. beforeEach(function () {
  26. controller = getController();
  27. });
  28. describe("#setRequest()", function () {
  29. beforeEach(function () {
  30. sinon.stub(controller, 'clearStage');
  31. sinon.stub(controller, 'loadStep');
  32. });
  33. afterEach(function () {
  34. controller.clearStage.restore();
  35. controller.loadStep.restore();
  36. });
  37. it("request should be set", function () {
  38. controller.setRequest(true);
  39. expect(controller.get('request')).to.be.eql({
  40. name: 'KERBERIZE_CLUSTER',
  41. ajaxName: 'admin.kerberize.cluster.force'
  42. });
  43. });
  44. it("clearStage should be called", function () {
  45. controller.setRequest(true);
  46. expect(controller.clearStage.calledOnce).to.be.true;
  47. });
  48. it("loadStep should be called", function () {
  49. controller.setRequest(true);
  50. expect(controller.loadStep.calledOnce).to.be.true;
  51. });
  52. it("kerberize request should be set", function () {
  53. controller.setRequest(false);
  54. expect(controller.get('request')).to.be.eql({
  55. name: 'KERBERIZE_CLUSTER',
  56. ajaxName: 'admin.kerberize.cluster',
  57. ajaxData: {
  58. data: {
  59. Clusters: {
  60. security_type: "KERBEROS"
  61. }
  62. }
  63. }
  64. });
  65. });
  66. });
  67. describe("#unkerberizeCluster()", function () {
  68. it("App.ajax.send should be called", function () {
  69. controller.unkerberizeCluster();
  70. var args = testHelpers.findAjaxRequest('name', 'admin.unkerberize.cluster');
  71. expect(args[0]).to.be.eql({
  72. name: 'admin.unkerberize.cluster',
  73. sender: controller,
  74. success: 'goToNextStep',
  75. error: 'goToNextStep'
  76. });
  77. });
  78. });
  79. describe("#goToNextStep()", function () {
  80. beforeEach(function() {
  81. sinon.stub(controller, 'clearStage');
  82. sinon.stub(App.router, 'transitionTo');
  83. controller.goToNextStep();
  84. });
  85. afterEach(function() {
  86. controller.clearStage.restore();
  87. App.router.transitionTo.restore();
  88. });
  89. it("clearStage should be called", function() {
  90. expect(controller.clearStage.calledOnce).to.be.true;
  91. });
  92. it("App.router.transitionTo should be called", function() {
  93. expect(App.router.transitionTo.calledWith('step7')).to.be.true;
  94. });
  95. });
  96. describe("#postKerberosDescriptor()", function () {
  97. it("App.ajax.send should be called", function () {
  98. controller.postKerberosDescriptor(true);
  99. var args = testHelpers.findAjaxRequest('name', 'admin.kerberos.cluster.artifact.create');
  100. expect(args[0]).to.be.eql({
  101. name: 'admin.kerberos.cluster.artifact.create',
  102. sender: controller,
  103. data: {
  104. artifactName: 'kerberos_descriptor',
  105. data: {
  106. artifact_data: true
  107. }
  108. }
  109. });
  110. });
  111. });
  112. describe("#putKerberosDescriptor()", function () {
  113. it("App.ajax.send should be called", function () {
  114. controller.putKerberosDescriptor(true);
  115. var args = testHelpers.findAjaxRequest('name', 'admin.kerberos.cluster.artifact.update');
  116. expect(args[0]).to.be.eql({
  117. name: 'admin.kerberos.cluster.artifact.update',
  118. sender: controller,
  119. data: {
  120. artifactName: 'kerberos_descriptor',
  121. data: {
  122. artifact_data: true
  123. }
  124. },
  125. success: 'unkerberizeCluster',
  126. error: 'unkerberizeCluster'
  127. });
  128. });
  129. });
  130. describe("#retry()", function () {
  131. beforeEach(function() {
  132. sinon.stub(controller, 'removeObserver');
  133. sinon.stub(controller, 'setRequest');
  134. controller.set('tasks', [Em.Object.create()]);
  135. controller.retry();
  136. });
  137. afterEach(function() {
  138. controller.removeObserver.restore();
  139. controller.setRequest.restore();
  140. });
  141. it("showRetry should be false", function() {
  142. expect(controller.get('showRetry')).to.be.false;
  143. });
  144. it("removeObserver should be called", function() {
  145. expect(controller.removeObserver.calledWith('tasks.@each.status', controller, 'onTaskStatusChange')).to.be.true;
  146. });
  147. it("status should be IN_PROGRESS", function() {
  148. expect(controller.get('status')).to.be.equal('IN_PROGRESS');
  149. });
  150. it("tasks status should be PENDING", function() {
  151. expect(controller.get('tasks').mapProperty('status')).to.be.eql(['PENDING']);
  152. });
  153. it("setRequest should be called", function() {
  154. expect(controller.setRequest.calledWith(true)).to.be.true;
  155. });
  156. });
  157. describe("#enableDisablePreviousSteps()", function () {
  158. var mock = {
  159. enableStep: Em.K,
  160. setLowerStepsDisable: Em.K
  161. };
  162. beforeEach(function() {
  163. sinon.stub(App.router, 'get').returns(mock);
  164. sinon.stub(mock, 'setLowerStepsDisable');
  165. sinon.stub(mock, 'enableStep');
  166. });
  167. afterEach(function() {
  168. App.router.get.restore();
  169. mock.enableStep.restore();
  170. mock.setLowerStepsDisable.restore();
  171. });
  172. it("FAILED tasks", function() {
  173. controller.set('tasks', [{status: 'FAILED'}]);
  174. controller.enableDisablePreviousSteps();
  175. expect(controller.get('isBackButtonDisabled')).to.be.false;
  176. expect(mock.enableStep.calledWith(4)).to.be.true;
  177. });
  178. it("COMPLETED tasks", function() {
  179. controller.set('tasks', [{status: 'COMPLETED'}]);
  180. controller.enableDisablePreviousSteps();
  181. expect(controller.get('isBackButtonDisabled')).to.be.true;
  182. expect(mock.setLowerStepsDisable.calledWith(6)).to.be.true;
  183. });
  184. });
  185. });