|
@@ -18,12 +18,24 @@
|
|
|
|
|
|
var App = require('app');
|
|
|
var setups = require('test/init_model_test');
|
|
|
+var testHelpers = require('test/helpers');
|
|
|
|
|
|
function getController() {
|
|
|
- return App.KerberosWizardStep2Controller.create({});
|
|
|
+ return App.KerberosWizardStep2Controller.create({
|
|
|
+ wizardController: Em.Object.create({
|
|
|
+ deleteKerberosService: Em.K
|
|
|
+ }),
|
|
|
+ controllers: Em.Object.create(),
|
|
|
+ content: Em.Object.create()
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
describe('App.KerberosWizardStep2Controller', function() {
|
|
|
+ var controller;
|
|
|
+
|
|
|
+ beforeEach(function() {
|
|
|
+ controller = getController();
|
|
|
+ });
|
|
|
|
|
|
App.TestAliases.testAsComputedAlias(getController(), 'isBackBtnDisabled', 'testConnectionInProgress', 'boolean');
|
|
|
|
|
@@ -32,11 +44,9 @@ describe('App.KerberosWizardStep2Controller', function() {
|
|
|
App.TestAliases.testAsComputedAlias(getController(), 'isConfigsLoaded', 'wizardController.stackConfigsLoaded', 'boolean');
|
|
|
|
|
|
describe('#createKerberosSiteObj', function() {
|
|
|
- var controller;
|
|
|
|
|
|
beforeEach(function() {
|
|
|
setups.setupStackVersion(this, 'HDP-2.3');
|
|
|
- controller = getController();
|
|
|
sinon.stub(controller, 'tweakKdcTypeValue', Em.K);
|
|
|
sinon.stub(controller, 'tweakManualKdcProperties', Em.K);
|
|
|
});
|
|
@@ -104,4 +114,781 @@ describe('App.KerberosWizardStep2Controller', function() {
|
|
|
});
|
|
|
});
|
|
|
|
|
|
+ describe("#isSubmitDisabled", function () {
|
|
|
+ var testCases = [
|
|
|
+ {
|
|
|
+ title: 'stepConfigs is empty',
|
|
|
+ data: {
|
|
|
+ stepConfigs: []
|
|
|
+ },
|
|
|
+ expected: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: 'testConnectionInProgress is true',
|
|
|
+ data: {
|
|
|
+ stepConfigs: [{}],
|
|
|
+ testConnectionInProgress: true
|
|
|
+ },
|
|
|
+ expected: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: 'submitButtonClicked is true',
|
|
|
+ data: {
|
|
|
+ stepConfigs: [{}],
|
|
|
+ testConnectionInProgress: false,
|
|
|
+ submitButtonClicked: true
|
|
|
+ },
|
|
|
+ expected: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: 'configs has errors',
|
|
|
+ data: {
|
|
|
+ stepConfigs: [{showConfig: true, errorCount: 1}],
|
|
|
+ testConnectionInProgress: false,
|
|
|
+ submitButtonClicked: false
|
|
|
+ },
|
|
|
+ expected: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: 'miscModalVisible is true',
|
|
|
+ data: {
|
|
|
+ stepConfigs: [{showConfig: true, errorCount: 0}],
|
|
|
+ testConnectionInProgress: false,
|
|
|
+ submitButtonClicked: false,
|
|
|
+ miscModalVisible: true
|
|
|
+ },
|
|
|
+ expected: true
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: 'miscModalVisible is false',
|
|
|
+ data: {
|
|
|
+ stepConfigs: [{showConfig: true, errorCount: 0}],
|
|
|
+ testConnectionInProgress: false,
|
|
|
+ submitButtonClicked: false,
|
|
|
+ miscModalVisible: false
|
|
|
+ },
|
|
|
+ expected: false
|
|
|
+ }
|
|
|
+ ];
|
|
|
+
|
|
|
+ testCases.forEach(function(test) {
|
|
|
+ it(test.title, function() {
|
|
|
+ controller.setProperties(test.data);
|
|
|
+ controller.propertyDidChange('isSubmitDisabled');
|
|
|
+ expect(controller.get('isSubmitDisabled')).to.be.equal(test.expected);
|
|
|
+ });
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ describe("#clearStep()", function () {
|
|
|
+
|
|
|
+ beforeEach(function() {
|
|
|
+ controller.setProperties({
|
|
|
+ configs: [{}],
|
|
|
+ serviceConfigTags: [{}],
|
|
|
+ servicesInstalled: true
|
|
|
+ });
|
|
|
+ controller.clearStep();
|
|
|
+ });
|
|
|
+
|
|
|
+ it("configs should be empty", function() {
|
|
|
+ expect(controller.get('configs')).to.be.empty;
|
|
|
+ });
|
|
|
+
|
|
|
+ it("serviceConfigTags should be empty", function() {
|
|
|
+ expect(controller.get('serviceConfigTags')).to.be.empty;
|
|
|
+ });
|
|
|
+
|
|
|
+ it("servicesInstalled should be false", function() {
|
|
|
+ expect(controller.get('servicesInstalled')).to.be.false;
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ describe("#loadStep()", function () {
|
|
|
+
|
|
|
+ beforeEach(function() {
|
|
|
+ this.mockStackService = sinon.stub(App.StackService, 'find').returns([{
|
|
|
+ serviceName: 'KERBEROS'
|
|
|
+ }]);
|
|
|
+ sinon.stub(controller, 'clearStep');
|
|
|
+ sinon.stub(App.config, 'setPreDefinedServiceConfigs');
|
|
|
+ sinon.stub(controller, 'filterConfigs');
|
|
|
+ sinon.stub(controller, 'getKerberosConfigs');
|
|
|
+ sinon.stub(controller, 'initializeKDCStoreProperties');
|
|
|
+ sinon.stub(controller, 'applyServicesConfigs');
|
|
|
+ sinon.stub(controller, 'updateKDCStoreProperties');
|
|
|
+ controller.reopen({
|
|
|
+ isConfigsLoaded: true,
|
|
|
+ stepConfigs: [Em.Object.create({serviceName: 'KERBEROS'})],
|
|
|
+ content: Em.Object.create({
|
|
|
+ serviceConfigProperties: [{}]
|
|
|
+ }),
|
|
|
+ wizardController: {
|
|
|
+ skipClientInstall: true
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ afterEach(function() {
|
|
|
+ this.mockStackService.restore();
|
|
|
+ controller.clearStep.restore();
|
|
|
+ App.config.setPreDefinedServiceConfigs.restore();
|
|
|
+ controller.filterConfigs.restore();
|
|
|
+ controller.getKerberosConfigs.restore();
|
|
|
+ controller.initializeKDCStoreProperties.restore();
|
|
|
+ controller.applyServicesConfigs.restore();
|
|
|
+ controller.updateKDCStoreProperties.restore();
|
|
|
+ });
|
|
|
+
|
|
|
+ it("KERBEROS service absent", function() {
|
|
|
+ this.mockStackService.returns([]);
|
|
|
+ expect(controller.loadStep()).to.be.false;
|
|
|
+ });
|
|
|
+
|
|
|
+ it("configs not loaded", function() {
|
|
|
+ controller.set('isConfigsLoaded', false);
|
|
|
+ expect(controller.loadStep()).to.be.false;
|
|
|
+ });
|
|
|
+
|
|
|
+ it("clearStep should be called", function() {
|
|
|
+ controller.loadStep();
|
|
|
+ expect(controller.clearStep.calledOnce).to.be.true;
|
|
|
+ });
|
|
|
+
|
|
|
+ it("App.config.setPreDefinedServiceConfigs should be called", function() {
|
|
|
+ controller.loadStep();
|
|
|
+ expect(App.config.setPreDefinedServiceConfigs.calledOnce).to.be.true;
|
|
|
+ });
|
|
|
+
|
|
|
+ it("getKerberosConfigs should be called", function() {
|
|
|
+ controller.set('content.serviceConfigProperties', null);
|
|
|
+ controller.loadStep();
|
|
|
+ expect(controller.getKerberosConfigs.calledOnce).to.be.true;
|
|
|
+ });
|
|
|
+
|
|
|
+ it("filterConfigs should be called", function() {
|
|
|
+ controller.loadStep();
|
|
|
+ expect(controller.filterConfigs.calledOnce).to.be.true;
|
|
|
+ });
|
|
|
+
|
|
|
+ it("initializeKDCStoreProperties should be called", function() {
|
|
|
+ controller.set('wizardController.skipClientInstall', false);
|
|
|
+ controller.loadStep();
|
|
|
+ expect(controller.initializeKDCStoreProperties.calledOnce).to.be.true;
|
|
|
+ });
|
|
|
+
|
|
|
+ it("applyServicesConfigs should be called", function() {
|
|
|
+ controller.loadStep();
|
|
|
+ expect(controller.applyServicesConfigs.calledOnce).to.be.true;
|
|
|
+ });
|
|
|
+
|
|
|
+ it("updateKDCStoreProperties should be called", function() {
|
|
|
+ controller.set('wizardController.skipClientInstall', false);
|
|
|
+ controller.loadStep();
|
|
|
+ expect(controller.updateKDCStoreProperties.calledOnce).to.be.true;
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ describe("#getKerberosConfigs()", function () {
|
|
|
+
|
|
|
+ beforeEach(function() {
|
|
|
+ this.mock = sinon.stub(App.configsCollection, 'getAll');
|
|
|
+ sinon.stub(App.config, 'getConfigTagFromFileName').returns('t1');
|
|
|
+ sinon.stub(App.config, 'get').returns([
|
|
|
+ Em.Object.create({
|
|
|
+ serviceName: 'KERBEROS',
|
|
|
+ configTypes: {
|
|
|
+ 't1': {}
|
|
|
+ }
|
|
|
+ })
|
|
|
+ ]);
|
|
|
+ });
|
|
|
+
|
|
|
+ afterEach(function() {
|
|
|
+ this.mock .restore();
|
|
|
+ App.config.getConfigTagFromFileName.restore();
|
|
|
+ App.config.get.restore();
|
|
|
+ });
|
|
|
+
|
|
|
+ it("fileName not specified", function() {
|
|
|
+ this.mock.returns([
|
|
|
+ {
|
|
|
+ serviceName: 'S1'
|
|
|
+ }
|
|
|
+ ]);
|
|
|
+ expect(controller.getKerberosConfigs()).to.be.empty;
|
|
|
+ });
|
|
|
+
|
|
|
+ it("fileName not specified", function() {
|
|
|
+ this.mock.returns([
|
|
|
+ {
|
|
|
+ serviceName: 'KERBEROS'
|
|
|
+ }
|
|
|
+ ]);
|
|
|
+ expect(controller.getKerberosConfigs()).to.be.eql([
|
|
|
+ {
|
|
|
+ serviceName: 'KERBEROS'
|
|
|
+ }
|
|
|
+ ]);
|
|
|
+ });
|
|
|
+
|
|
|
+ it("incorrect service", function() {
|
|
|
+ this.mock.returns([
|
|
|
+ {
|
|
|
+ fileName: 'f1',
|
|
|
+ serviceName: 'S1'
|
|
|
+ }
|
|
|
+ ]);
|
|
|
+ expect(controller.getKerberosConfigs()).to.be.eql([
|
|
|
+ {
|
|
|
+ fileName: 'f1',
|
|
|
+ serviceName: 'S1'
|
|
|
+ }
|
|
|
+ ]);
|
|
|
+ });
|
|
|
+
|
|
|
+ it("fileName and service correct", function() {
|
|
|
+ this.mock.returns([
|
|
|
+ {
|
|
|
+ fileName: 'f1',
|
|
|
+ serviceName: 'KERBEROS'
|
|
|
+ }
|
|
|
+ ]);
|
|
|
+ expect(controller.getKerberosConfigs()).to.be.eql([
|
|
|
+ {
|
|
|
+ fileName: 'f1',
|
|
|
+ serviceName: 'KERBEROS'
|
|
|
+ }
|
|
|
+ ]);
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ describe("#filterConfigs()", function () {
|
|
|
+ var configs = [
|
|
|
+ Em.Object.create({
|
|
|
+ serviceName: 'KERBEROS',
|
|
|
+ isVisible: false
|
|
|
+ }),
|
|
|
+ Em.Object.create({
|
|
|
+ serviceName: 'S1',
|
|
|
+ isVisible: false
|
|
|
+ })
|
|
|
+ ];
|
|
|
+
|
|
|
+ beforeEach(function() {
|
|
|
+ controller.set('controllers', {
|
|
|
+ kerberosWizardController: Em.Object.create({
|
|
|
+ skipClientInstall: false,
|
|
|
+ overrideVisibility: Em.K
|
|
|
+ })
|
|
|
+ });
|
|
|
+ controller.set('content', Em.Object.create({
|
|
|
+ kerberosOption: null
|
|
|
+ }));
|
|
|
+ sinon.stub(controller.get('controllers.kerberosWizardController'), 'overrideVisibility');
|
|
|
+ sinon.stub(controller, 'setKDCTypeProperty');
|
|
|
+ sinon.stub(controller, 'setConfigVisibility');
|
|
|
+ });
|
|
|
+
|
|
|
+ afterEach(function() {
|
|
|
+ controller.setKDCTypeProperty.restore();
|
|
|
+ controller.setConfigVisibility.restore();
|
|
|
+ controller.get('controllers.kerberosWizardController').overrideVisibility.restore();
|
|
|
+ });
|
|
|
+
|
|
|
+ it("KERBEROS config should be visible", function() {
|
|
|
+ controller.filterConfigs(configs);
|
|
|
+ expect(configs.mapProperty('isVisible')).to.be.eql([true, false]);
|
|
|
+ });
|
|
|
+
|
|
|
+ it("setKDCTypeProperty should be called", function() {
|
|
|
+ controller.filterConfigs(configs);
|
|
|
+ expect(controller.setKDCTypeProperty.calledOnce).to.be.true;
|
|
|
+ });
|
|
|
+
|
|
|
+ it("setConfigVisibility should not be called", function() {
|
|
|
+ controller.set('content.kerberosOption', Em.I18n.t('admin.kerberos.wizard.step1.option.manual'));
|
|
|
+ controller.filterConfigs(configs);
|
|
|
+ expect(controller.setConfigVisibility.called).to.be.false;
|
|
|
+ });
|
|
|
+
|
|
|
+ it("overrideVisibility should be called", function() {
|
|
|
+ controller.set('content.kerberosOption', Em.I18n.t('admin.kerberos.wizard.step1.option.manual'));
|
|
|
+ controller.set('controllers.kerberosWizardController.skipClientInstall', true);
|
|
|
+ controller.filterConfigs(configs);
|
|
|
+ expect(controller.get('controllers.kerberosWizardController').overrideVisibility.calledOnce).to.be.true;
|
|
|
+ });
|
|
|
+
|
|
|
+ it("overrideVisibility should be called", function() {
|
|
|
+ configs = [{
|
|
|
+ name: 'manage_identities'
|
|
|
+ }];
|
|
|
+ controller.filterConfigs(configs);
|
|
|
+ expect(configs[0].isVisible).to.be.false;
|
|
|
+ expect(configs[0].value).to.be.equal('true');
|
|
|
+ });
|
|
|
+
|
|
|
+ it("setConfigVisibility should be called", function() {
|
|
|
+ controller.filterConfigs(configs);
|
|
|
+ expect(controller.setConfigVisibility.calledThrice).to.be.true;
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ describe("#setConfigVisibility()", function () {
|
|
|
+
|
|
|
+ it("ad type configs", function() {
|
|
|
+ var configs = [{name: 'ldap_url'}];
|
|
|
+ controller.setConfigVisibility('ad', configs, Em.I18n.t('admin.kerberos.wizard.step1.option.ad'));
|
|
|
+ expect(configs[0].isVisible).to.be.true;
|
|
|
+ });
|
|
|
+
|
|
|
+ it("mit type configs", function() {
|
|
|
+ var configs = [{name: 'kdc_create_attributes'}];
|
|
|
+ controller.setConfigVisibility('mit', configs, Em.I18n.t('admin.kerberos.wizard.step1.option.kdc'));
|
|
|
+ expect(configs[0].isVisible).to.be.true;
|
|
|
+ });
|
|
|
+
|
|
|
+ it("ipa type configs", function() {
|
|
|
+ var configs = [{name: 'group'}];
|
|
|
+ controller.setConfigVisibility('ipa', configs, Em.I18n.t('admin.kerberos.wizard.step1.option.ipa'));
|
|
|
+ expect(configs[0].isVisible).to.be.true;
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ describe("#submit()", function () {
|
|
|
+
|
|
|
+ beforeEach(function() {
|
|
|
+ sinon.stub(controller.get('wizardController'), 'deleteKerberosService').returns({
|
|
|
+ always: Em.clb
|
|
|
+ });
|
|
|
+ sinon.stub(controller, 'configureKerberos');
|
|
|
+ controller.reopen({
|
|
|
+ isSubmitDisabled: false
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ afterEach(function() {
|
|
|
+ controller.get('wizardController').deleteKerberosService.restore();
|
|
|
+ controller.configureKerberos.restore();
|
|
|
+ });
|
|
|
+
|
|
|
+ it("deleteKerberosService should not be called", function() {
|
|
|
+ controller.set('isSubmitDisabled', true);
|
|
|
+ expect(controller.submit()).to.be.false;
|
|
|
+ expect(controller.get('wizardController').deleteKerberosService.called).to.be.false;
|
|
|
+ });
|
|
|
+
|
|
|
+ it("deleteKerberosService should be called", function() {
|
|
|
+ controller.submit();
|
|
|
+ expect(controller.get('wizardController').deleteKerberosService.called).to.be.true;
|
|
|
+ });
|
|
|
+
|
|
|
+ it("configureKerberos should be called", function() {
|
|
|
+ controller.submit();
|
|
|
+ expect(controller.configureKerberos.calledOnce).to.be.true;
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ describe("#configureKerberos()", function () {
|
|
|
+ var mock = Em.Object.create({
|
|
|
+ createKerberosResources: Em.K
|
|
|
+ });
|
|
|
+
|
|
|
+ beforeEach(function() {
|
|
|
+ sinon.stub(App.router, 'get').returns(mock);
|
|
|
+ sinon.stub(controller, 'createConfigurations').returns({
|
|
|
+ done: Em.clb
|
|
|
+ });
|
|
|
+ sinon.stub(controller, 'createKerberosAdminSession').returns({
|
|
|
+ done: Em.clb
|
|
|
+ });
|
|
|
+ sinon.stub(App.router, 'send');
|
|
|
+ sinon.stub(mock, 'createKerberosResources');
|
|
|
+ });
|
|
|
+
|
|
|
+ afterEach(function() {
|
|
|
+ App.router.get.restore();
|
|
|
+ controller.createConfigurations.restore();
|
|
|
+ controller.createKerberosAdminSession.restore();
|
|
|
+ App.router.send.restore();
|
|
|
+ mock.createKerberosResources.restore();
|
|
|
+ });
|
|
|
+
|
|
|
+ it("createConfigurations should be called", function() {
|
|
|
+ mock.set('skipClientInstall', true);
|
|
|
+ controller.configureKerberos();
|
|
|
+ expect(controller.createConfigurations.calledOnce).to.be.true;
|
|
|
+ });
|
|
|
+
|
|
|
+ it("createKerberosAdminSession should be called", function() {
|
|
|
+ mock.set('skipClientInstall', true);
|
|
|
+ controller.configureKerberos();
|
|
|
+ expect(controller.createKerberosAdminSession.calledOnce).to.be.true;
|
|
|
+ });
|
|
|
+
|
|
|
+ it("App.router.send should be called", function() {
|
|
|
+ mock.set('skipClientInstall', true);
|
|
|
+ controller.configureKerberos();
|
|
|
+ expect(App.router.send.calledWith('next')).to.be.true;
|
|
|
+ });
|
|
|
+
|
|
|
+ it("App.router.send should be called", function() {
|
|
|
+ mock.set('skipClientInstall', false);
|
|
|
+ controller.configureKerberos();
|
|
|
+ expect(mock.createKerberosResources.calledOnce).to.be.true;
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ describe("#createConfigurations()", function () {
|
|
|
+
|
|
|
+ beforeEach(function() {
|
|
|
+ sinon.stub(App.StackService, 'find').returns([
|
|
|
+ Em.Object.create({
|
|
|
+ serviceName: 'KERBEROS',
|
|
|
+ configTypes: {
|
|
|
+ t1: {},
|
|
|
+ t3: {}
|
|
|
+ },
|
|
|
+ configTypesRendered: {
|
|
|
+ t1: {},
|
|
|
+ t2: {}
|
|
|
+ }
|
|
|
+ })
|
|
|
+ ]);
|
|
|
+ sinon.stub(controller, 'createKerberosSiteObj').returns({
|
|
|
+ type: 't1'
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ afterEach(function() {
|
|
|
+ App.StackService.find.restore();
|
|
|
+ controller.createKerberosSiteObj.restore();
|
|
|
+ });
|
|
|
+
|
|
|
+ it("App.ajax.send should be called", function() {
|
|
|
+ controller.createConfigurations();
|
|
|
+ var args = testHelpers.findAjaxRequest('name', 'common.across.services.configurations');
|
|
|
+ expect(args[0]).to.be.eql({
|
|
|
+ name: 'common.across.services.configurations',
|
|
|
+ sender: controller,
|
|
|
+ data: {
|
|
|
+ data: '[' + JSON.stringify({
|
|
|
+ Clusters: {
|
|
|
+ desired_config: [
|
|
|
+ {
|
|
|
+ type: 't1',
|
|
|
+ service_config_version_note: Em.I18n.t('admin.kerberos.wizard.configuration.note')
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ }).toString() + ']'
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ describe("#createKerberosSiteObj()", function () {
|
|
|
+
|
|
|
+ beforeEach(function() {
|
|
|
+ sinon.stub(controller, 'tweakKdcTypeValue');
|
|
|
+ sinon.stub(controller, 'tweakManualKdcProperties');
|
|
|
+ sinon.stub(controller, 'tweakIpaKdcProperties');
|
|
|
+ sinon.stub(App.config, 'trimProperty', function(arg) {
|
|
|
+ return arg;
|
|
|
+ });
|
|
|
+ controller.set('stepConfigs', [Em.Object.create({
|
|
|
+ configs: []
|
|
|
+ })]);
|
|
|
+ });
|
|
|
+
|
|
|
+ afterEach(function() {
|
|
|
+ controller.tweakKdcTypeValue.restore();
|
|
|
+ controller.tweakManualKdcProperties.restore();
|
|
|
+ controller.tweakIpaKdcProperties.restore();
|
|
|
+ App.config.trimProperty.restore();
|
|
|
+ });
|
|
|
+
|
|
|
+ it("tweakKdcTypeValue should be called", function() {
|
|
|
+ controller.createKerberosSiteObj();
|
|
|
+ expect(controller.tweakKdcTypeValue.calledWith({})).to.be.true;
|
|
|
+ });
|
|
|
+
|
|
|
+ it("tweakManualKdcProperties should be called", function() {
|
|
|
+ controller.createKerberosSiteObj();
|
|
|
+ expect(controller.tweakManualKdcProperties.calledWith({})).to.be.true;
|
|
|
+ });
|
|
|
+
|
|
|
+ it("tweakIpaKdcProperties should be called", function() {
|
|
|
+ controller.createKerberosSiteObj();
|
|
|
+ expect(controller.tweakIpaKdcProperties.calledWith({})).to.be.true;
|
|
|
+ });
|
|
|
+
|
|
|
+ it("properties should be empty", function() {
|
|
|
+ controller.set('stepConfigs', [Em.Object.create({
|
|
|
+ configs: [{
|
|
|
+ isRequiredByAgent: false,
|
|
|
+ filename: 'site.xml'
|
|
|
+ }]
|
|
|
+ })]);
|
|
|
+ expect(controller.createKerberosSiteObj('site', 'tag')).to.be.eql({
|
|
|
+ "type": 'site',
|
|
|
+ "tag": 'tag',
|
|
|
+ "properties": {}
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ it("properties should contain kdc_hosts", function() {
|
|
|
+ controller.set('stepConfigs', [Em.Object.create({
|
|
|
+ configs: [{
|
|
|
+ name: 'kdc_hosts',
|
|
|
+ value: 'v1',
|
|
|
+ filename: 'site.xml'
|
|
|
+ }]
|
|
|
+ })]);
|
|
|
+ expect(controller.createKerberosSiteObj('site', 'tag')).to.be.eql({
|
|
|
+ "type": 'site',
|
|
|
+ "tag": 'tag',
|
|
|
+ "properties": {
|
|
|
+ 'kdc_hosts': {
|
|
|
+ displayType: 'host',
|
|
|
+ value: 'v1'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ it("properties should contain n1", function() {
|
|
|
+ controller.set('stepConfigs', [Em.Object.create({
|
|
|
+ configs: [{
|
|
|
+ name: 'n1',
|
|
|
+ value: 'v1',
|
|
|
+ filename: 'site.xml'
|
|
|
+ }]
|
|
|
+ })]);
|
|
|
+ expect(controller.createKerberosSiteObj('site', 'tag')).to.be.eql({
|
|
|
+ "type": 'site',
|
|
|
+ "tag": 'tag',
|
|
|
+ "properties": {
|
|
|
+ 'n1': {
|
|
|
+ name: 'n1',
|
|
|
+ value: 'v1',
|
|
|
+ filename: 'site.xml'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ describe("#tweakKdcTypeValue()", function () {
|
|
|
+
|
|
|
+ beforeEach(function() {
|
|
|
+ sinon.stub(App.router, 'get').returns({
|
|
|
+ 'k1': 'p1'
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ afterEach(function() {
|
|
|
+ App.router.get.restore();
|
|
|
+ });
|
|
|
+
|
|
|
+ it("kdc_type should be p2", function() {
|
|
|
+ var properties = {'kdc_type': 'p2'};
|
|
|
+ controller.tweakKdcTypeValue(properties);
|
|
|
+ expect(properties['kdc_type']).to.be.equal('p2')
|
|
|
+ });
|
|
|
+
|
|
|
+ it("kdc_type should be k1", function() {
|
|
|
+ var properties = {'kdc_type': 'p1'};
|
|
|
+ controller.tweakKdcTypeValue(properties);
|
|
|
+ expect(properties['kdc_type']).to.be.equal('k1')
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ describe("#tweakManualKdcProperties()", function () {
|
|
|
+
|
|
|
+ it("properties shouldn't be changed", function() {
|
|
|
+ var properties = {
|
|
|
+ 'kdc_type': 'p1'
|
|
|
+ };
|
|
|
+ controller.set('controllers.kerberosWizardController', Em.Object.create({
|
|
|
+ skipClientInstall: false
|
|
|
+ }));
|
|
|
+ controller.tweakManualKdcProperties(properties);
|
|
|
+ expect(properties).to.be.eql({
|
|
|
+ 'kdc_type': 'p1'
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ it("kdc_type is none", function() {
|
|
|
+ var properties = {
|
|
|
+ 'kdc_type': 'none',
|
|
|
+ 'manage_identities': 'true'
|
|
|
+ };
|
|
|
+ controller.set('controllers.kerberosWizardController', Em.Object.create({
|
|
|
+ skipClientInstall: false
|
|
|
+ }));
|
|
|
+ controller.tweakManualKdcProperties(properties);
|
|
|
+ expect(properties).to.be.eql({
|
|
|
+ 'kdc_type': 'none',
|
|
|
+ 'manage_identities': 'false'
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ it("skipClientInstall is true", function() {
|
|
|
+ var properties = {
|
|
|
+ 'kdc_type': 'p1',
|
|
|
+ 'manage_identities': 'true',
|
|
|
+ 'install_packages': 'true',
|
|
|
+ 'manage_krb5_conf': 'true'
|
|
|
+ };
|
|
|
+ controller.set('controllers.kerberosWizardController', Em.Object.create({
|
|
|
+ skipClientInstall: true
|
|
|
+ }));
|
|
|
+ controller.tweakManualKdcProperties(properties);
|
|
|
+ expect(properties).to.be.eql({
|
|
|
+ 'kdc_type': 'p1',
|
|
|
+ 'manage_identities': 'false',
|
|
|
+ 'install_packages': 'false',
|
|
|
+ 'manage_krb5_conf': 'false'
|
|
|
+ });
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ describe("#tweakIpaKdcProperties()", function () {
|
|
|
+
|
|
|
+ beforeEach(function() {
|
|
|
+ sinon.stub(App.router, 'get').returns({'ipa': 'p1'});
|
|
|
+ });
|
|
|
+
|
|
|
+ afterEach(function() {
|
|
|
+ App.router.get.restore();
|
|
|
+ });
|
|
|
+
|
|
|
+ it("properties should be empty, kdc_type undefined", function() {
|
|
|
+ var properties = {};
|
|
|
+ controller.tweakIpaKdcProperties(properties);
|
|
|
+ expect(properties).to.be.empty;
|
|
|
+ });
|
|
|
+
|
|
|
+ it("properties should not be empty", function() {
|
|
|
+ var properties = {
|
|
|
+ kdc_type: 'p1'
|
|
|
+ };
|
|
|
+ controller.set('content.kerberosOption', 'p2');
|
|
|
+ controller.tweakIpaKdcProperties(properties);
|
|
|
+ expect(properties).to.be.eql({
|
|
|
+ kdc_type: 'p1'
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ it("properties should set config values", function() {
|
|
|
+ var properties = {
|
|
|
+ 'kdc_type': 'p1',
|
|
|
+ 'install_packages': 'true',
|
|
|
+ 'manage_krb5_conf': 'true'
|
|
|
+ };
|
|
|
+ controller.set('content.kerberosOption', 'p1');
|
|
|
+ controller.tweakIpaKdcProperties(properties);
|
|
|
+ expect(properties).to.be.eql({
|
|
|
+ 'kdc_type': 'p1',
|
|
|
+ 'install_packages': 'false',
|
|
|
+ 'manage_krb5_conf': 'false'
|
|
|
+ });
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ describe("#createKerberosAdminSession()", function () {
|
|
|
+
|
|
|
+ beforeEach(function() {
|
|
|
+ sinon.stub(controller, 'createKDCCredentials');
|
|
|
+ });
|
|
|
+
|
|
|
+ afterEach(function() {
|
|
|
+ controller.createKDCCredentials.restore();
|
|
|
+ });
|
|
|
+
|
|
|
+ it("createKDCCredentials should be called", function() {
|
|
|
+ controller.set('wizardController.skipClientInstall', false);
|
|
|
+ controller.createKerberosAdminSession([]);
|
|
|
+ expect(controller.createKDCCredentials.calledWith([])).to.be.true;
|
|
|
+ });
|
|
|
+
|
|
|
+ it("createKDCCredentials should be called, with non-empty configs", function() {
|
|
|
+ controller.set('stepConfigs', [Em.Object.create({configs: [{}]})]);
|
|
|
+ controller.set('wizardController.skipClientInstall', false);
|
|
|
+ controller.createKerberosAdminSession();
|
|
|
+ expect(controller.createKDCCredentials.calledWith([{}])).to.be.true;
|
|
|
+ });
|
|
|
+
|
|
|
+ it("App.ajax.send should be called", function() {
|
|
|
+ App.set('clusterName', 'c1');
|
|
|
+ var configs = [
|
|
|
+ {
|
|
|
+ name: 'admin_principal',
|
|
|
+ value: 'v1'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'admin_password',
|
|
|
+ value: 'v2'
|
|
|
+ }
|
|
|
+ ];
|
|
|
+ controller.set('wizardController.skipClientInstall', true);
|
|
|
+
|
|
|
+ controller.createKerberosAdminSession(configs);
|
|
|
+ var args = testHelpers.findAjaxRequest('name', 'common.cluster.update');
|
|
|
+ expect(args[0]).to.be.eql({
|
|
|
+ name: 'common.cluster.update',
|
|
|
+ sender: controller,
|
|
|
+ data: {
|
|
|
+ clusterName: 'c1',
|
|
|
+ data: [{
|
|
|
+ session_attributes: {
|
|
|
+ kerberos_admin: {principal: 'v1', password: 'v2'}
|
|
|
+ }
|
|
|
+ }]
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ describe("#showConnectionInProgressPopup()", function () {
|
|
|
+
|
|
|
+ beforeEach(function() {
|
|
|
+ sinon.stub(App, 'showConfirmationPopup');
|
|
|
+ });
|
|
|
+
|
|
|
+ afterEach(function() {
|
|
|
+ App.showConfirmationPopup.restore();
|
|
|
+ });
|
|
|
+
|
|
|
+ it("App.showConfirmationPopup should be called", function() {
|
|
|
+ var primary = Em.K;
|
|
|
+ controller.showConnectionInProgressPopup(primary);
|
|
|
+ expect(App.showConfirmationPopup.calledWith(primary, Em.I18n.t('services.service.config.connection.exitPopup.msg'), null, null, Em.I18n.t('common.exitAnyway'))).to.be.true;
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
+ describe("#setKDCTypeProperty()", function () {
|
|
|
+
|
|
|
+ beforeEach(function() {
|
|
|
+ sinon.stub(App.router, 'get').returns({
|
|
|
+ 'k1': 'p1'
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ afterEach(function() {
|
|
|
+ App.router.get.restore();
|
|
|
+ });
|
|
|
+
|
|
|
+ it("kdcTypeProperty should be set", function() {
|
|
|
+ var configs = [{
|
|
|
+ filename: 'kerberos-env.xml',
|
|
|
+ name: 'kdc_type'
|
|
|
+ }];
|
|
|
+ controller.set('content.kerberosOption', 'p1');
|
|
|
+ controller.setKDCTypeProperty(configs);
|
|
|
+ expect(configs[0].value).to.be.equal('p1');
|
|
|
+ });
|
|
|
+ });
|
|
|
});
|