You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jo...@apache.org on 2014/09/24 22:53:23 UTC

[24/37] git commit: AMBARI-7447 Remove xml escaping logic present in the web-ui code. (ababiichuk)

AMBARI-7447 Remove xml escaping logic present in the web-ui code. (ababiichuk)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/03a1ff97
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/03a1ff97
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/03a1ff97

Branch: refs/heads/branch-alerts-dev
Commit: 03a1ff97384fee8cfe248278fd995c4640569b89
Parents: 10b0038
Author: ababiichuk <ab...@hortonworks.com>
Authored: Wed Sep 24 17:52:08 2014 +0300
Committer: ababiichuk <ab...@hortonworks.com>
Committed: Wed Sep 24 17:52:08 2014 +0300

----------------------------------------------------------------------
 .../security/security_progress_controller.js    | 27 --------
 .../main/mirroring/jobs_controller.js           |  2 +-
 .../controllers/main/service/info/configs.js    |  9 +--
 .../app/controllers/wizard/step8_controller.js  | 22 +++---
 ambari-web/app/utils/config.js                  | 47 -------------
 ambari-web/app/views/wizard/controls_view.js    | 21 +++++-
 .../security_progress_controller_test.js        | 71 --------------------
 .../main/service/info/config_test.js            |  9 +--
 .../test/controllers/wizard/step8_test.js       | 34 ++--------
 ambari-web/test/utils/config_test.js            | 38 +----------
 10 files changed, 40 insertions(+), 240 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/03a1ff97/ambari-web/app/controllers/main/admin/security/security_progress_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/admin/security/security_progress_controller.js b/ambari-web/app/controllers/main/admin/security/security_progress_controller.js
index 5aacb56..a17c5f6 100644
--- a/ambari-web/app/controllers/main/admin/security/security_progress_controller.js
+++ b/ambari-web/app/controllers/main/admin/security/security_progress_controller.js
@@ -379,7 +379,6 @@ App.MainAdminSecurityProgressController = Em.Controller.extend({
       }
     }, this);
     if (this.manageSecureConfigs()) {
-      this.escapeXMLCharacters(this.get('serviceConfigTags'));
       this.applyConfigurationsToCluster();
     }
   },
@@ -392,32 +391,6 @@ App.MainAdminSecurityProgressController = Em.Controller.extend({
     console.log("TRACE: error code status is: " + request.status);
   },
 
-  /*
-   Iterate over keys of all configurations and escape xml characters in their values
-   */
-  escapeXMLCharacters: function (serviceConfigTags) {
-    serviceConfigTags.forEach(function (_serviceConfigTags) {
-      var configs = _serviceConfigTags.configs;
-      for (var key in configs) {
-        configs[key] = this.setServerConfigValue(key, configs[key]);
-      }
-    }, this);
-  },
-
-  /**
-   * set specific server values to config
-   * @param configName
-   * @param value
-   * @return {*}
-   */
-  setServerConfigValue: function (configName, value) {
-    switch (configName) {
-      case 'storm.zookeeper.servers':
-        return value;
-      default:
-        return App.config.escapeXMLCharacters(value);
-    }
-  },
   /**
    * save commands to server and local storage
    */

http://git-wip-us.apache.org/repos/asf/ambari/blob/03a1ff97/ambari-web/app/controllers/main/mirroring/jobs_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/mirroring/jobs_controller.js b/ambari-web/app/controllers/main/mirroring/jobs_controller.js
index ac36890..dded921 100644
--- a/ambari-web/app/controllers/main/mirroring/jobs_controller.js
+++ b/ambari-web/app/controllers/main/mirroring/jobs_controller.js
@@ -183,7 +183,7 @@ App.MainDatasetJobsController = Em.Controller.extend({
   openInfoInNewTab: function (xml) {
     var newWindow = window.open('');
     var newDocument = newWindow.document;
-    newDocument.write('<pre>' + App.config.escapeXMLCharacters(xml, true) + '</pre>');
+    newDocument.write('<pre>' + xml + '</pre>');
     newWindow.focus();
   },
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/03a1ff97/ambari-web/app/controllers/main/service/info/configs.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/service/info/configs.js b/ambari-web/app/controllers/main/service/info/configs.js
index a05f5ac..718ebf8 100644
--- a/ambari-web/app/controllers/main/service/info/configs.js
+++ b/ambari-web/app/controllers/main/service/info/configs.js
@@ -2153,7 +2153,7 @@ App.MainServiceInfoConfigsController = Em.Controller.extend(App.ServerValidatorM
     var coreSiteObj = this.get('uiConfigs').filterProperty('filename', 'core-site.xml');
     var coreSiteProperties = {};
     coreSiteObj.forEach(function (_coreSiteObj) {
-      coreSiteProperties[_coreSiteObj.name] = App.config.escapeXMLCharacters(_coreSiteObj.value);
+      coreSiteProperties[_coreSiteObj.name] = _coreSiteObj.value;
       //this.recordHostOverride(_coreSiteObj, 'core-site', tagName, this);
     }, this);
     var result = {"type": "core-site", "tag": tagName, "properties": coreSiteProperties};
@@ -2181,7 +2181,7 @@ App.MainServiceInfoConfigsController = Em.Controller.extend(App.ServerValidatorM
       if (heapsizeRegExp.test(_siteObj.name) && !heapsizeException.contains(_siteObj.name)) {
         value += "m";
       }
-      siteProperties[_siteObj.name] = App.config.escapeXMLCharacters(value);
+      siteProperties[_siteObj.name] = value;
       switch (siteName) {
         case 'falcon-startup.properties':
         case 'falcon-runtime.properties':
@@ -2219,11 +2219,8 @@ App.MainServiceInfoConfigsController = Em.Controller.extend(App.ServerValidatorM
           return value;
         }
         break;
-      case 'content':
-        return value;
-        break;
       default:
-        return App.config.escapeXMLCharacters(value);
+        return value;
     }
   },
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/03a1ff97/ambari-web/app/controllers/wizard/step8_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/wizard/step8_controller.js b/ambari-web/app/controllers/wizard/step8_controller.js
index 9f07df4..1fd0b0a 100644
--- a/ambari-web/app/controllers/wizard/step8_controller.js
+++ b/ambari-web/app/controllers/wizard/step8_controller.js
@@ -1404,7 +1404,7 @@ App.WizardStep8Controller = Em.Controller.extend(App.AddSecurityConfigs, {
     var selectedServices = this.get('selectedServices');
     var coreSiteObject = this.createCoreSiteObj();
     var tag = 'version1';
-    var clusterSiteObj = this.createSiteObj('cluster-env', true, tag);
+    var clusterSiteObj = this.createSiteObj('cluster-env', tag);
 
     if (this.get('content.controllerName') == 'installerController') {
       this.get('serviceConfigTags').pushObject(clusterSiteObj);
@@ -1436,8 +1436,7 @@ App.WizardStep8Controller = Em.Controller.extend(App.AddSecurityConfigs, {
             obj.service_config_version_note = serviceVersionNotes;
             this.get('serviceConfigTags').pushObject(obj);
           } else {
-            var isNonXmlFile = type.endsWith('log4j') || type.endsWith('env') || type.endsWith('properties') || type.endsWith('conf');
-            var obj = this.createSiteObj(type, isNonXmlFile, tag);
+            var obj = this.createSiteObj(type, tag);
             obj.service_config_version_note = serviceVersionNotes;
             this.get('serviceConfigTags').pushObject(obj);
           }
@@ -1610,17 +1609,17 @@ App.WizardStep8Controller = Em.Controller.extend(App.AddSecurityConfigs, {
         (isOozieSelected || (_coreSiteObj.name != 'hadoop.proxyuser.' + oozieUser + '.hosts' && _coreSiteObj.name != 'hadoop.proxyuser.' + oozieUser + '.groups')) &&
         (isHiveSelected || (_coreSiteObj.name != 'hadoop.proxyuser.' + hiveUser + '.hosts' && _coreSiteObj.name != 'hadoop.proxyuser.' + hiveUser + '.groups')) &&
         (isHiveSelected || (_coreSiteObj.name != 'hadoop.proxyuser.' + hcatUser + '.hosts' && _coreSiteObj.name != 'hadoop.proxyuser.' + hcatUser + '.groups'))) {
-        coreSiteProperties[_coreSiteObj.name] = App.config.escapeXMLCharacters(_coreSiteObj.value);
+        coreSiteProperties[_coreSiteObj.name] = _coreSiteObj.value;
       }
       if (isGLUSTERFSSelected && _coreSiteObj.name == "fs.default.name") {
         coreSiteProperties[_coreSiteObj.name] =
           this.get('configs').someProperty('name', 'fs_glusterfs_default_name') ?
-            App.config.escapeXMLCharacters(this.get('configs').findProperty('name', 'fs_glusterfs_default_name').value) : null;
+            this.get('configs').findProperty('name', 'fs_glusterfs_default_name').value : null;
       }
       if (isGLUSTERFSSelected && _coreSiteObj.name == "fs.defaultFS") {
         coreSiteProperties[_coreSiteObj.name] =
           this.get('configs').someProperty('name', 'glusterfs_defaultFS_name') ?
-            App.config.escapeXMLCharacters(this.get('configs').findProperty('name', 'glusterfs_defaultFS_name').value) : null;
+            this.get('configs').findProperty('name', 'glusterfs_defaultFS_name').value : null;
       }
     }, this);
     var attributes = App.router.get('mainServiceInfoConfigsController').getConfigAttributes(coreSiteObj);
@@ -1634,17 +1633,15 @@ App.WizardStep8Controller = Em.Controller.extend(App.AddSecurityConfigs, {
   /**
    * Create siteObj for custom service with it own configs
    * @param {string} site
-   * @param {boolean} isNonXmlFile
    * @param tag
    * @returns {{type: string, tag: string, properties: {}}}
    * @method createSiteObj
    */
-  createSiteObj: function (site, isNonXmlFile, tag) {
+  createSiteObj: function (site,  tag) {
     var properties = {};
     var configs = this.get('configs').filterProperty('filename', site + '.xml');
     var attributes = App.router.get('mainServiceInfoConfigsController').getConfigAttributes(configs);
     configs.forEach(function (_configProperty) {
-      if (isNonXmlFile) {
         var heapsizeExceptions = ['hadoop_heapsize', 'yarn_heapsize', 'nodemanager_heapsize', 'resourcemanager_heapsize', 'apptimelineserver_heapsize', 'jobhistory_heapsize'];
         // do not pass any globals whose name ends with _host or _hosts
         if (_configProperty.isRequiredByAgent !== false) {
@@ -1655,9 +1652,6 @@ App.WizardStep8Controller = Em.Controller.extend(App.AddSecurityConfigs, {
             properties[_configProperty.name] = _configProperty.value;
           }
         }
-      } else {
-        properties[_configProperty.name] = App.config.escapeXMLCharacters(_configProperty.value);
-      }
     }, this);
     var configObj = {"type": site, "tag": tag, "properties": properties };
     if (attributes) {
@@ -1676,7 +1670,7 @@ App.WizardStep8Controller = Em.Controller.extend(App.AddSecurityConfigs, {
     var configs = this.get('configs').filterProperty('filename', 'zoo.cfg');
     var csProperties = {};
     configs.forEach(function (_configProperty) {
-      csProperties[_configProperty.name] = App.config.escapeXMLCharacters(_configProperty.value);
+      csProperties[_configProperty.name] = _configProperty.value;
     }, this);
     return {type: 'zoo.cfg', tag: tag, properties: csProperties};
   },
@@ -1699,7 +1693,7 @@ App.WizardStep8Controller = Em.Controller.extend(App.AddSecurityConfigs, {
           stormProperties[_configProperty.name] = JSON.stringify(_configProperty.value).replace(/"/g, "");
         }
       } else {
-        stormProperties[_configProperty.name] = App.config.escapeXMLCharacters(_configProperty.value);
+        stormProperties[_configProperty.name] = _configProperty.value;
       }
     }, this);
     return {type: 'storm-site', tag: tag, properties: stormProperties};

http://git-wip-us.apache.org/repos/asf/ambari/blob/03a1ff97/ambari-web/app/utils/config.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/config.js b/ambari-web/app/utils/config.js
index 52f918d..2d1004d 100644
--- a/ambari-web/app/utils/config.js
+++ b/ambari-web/app/utils/config.js
@@ -22,24 +22,6 @@ var stringUtils = require('utils/string_utils');
 var configGroupsByTag = [];
 
 App.config = Em.Object.create({
-  /**
-   * XML characters which should be escaped in values
-   * http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Predefined_entities_in_XML
-   */
-  xmlEscapeMap: {
-    "&": "&amp;",
-    "<": "&lt;",
-    ">": "&gt;",
-    '"': '&quot;',
-    "'": '&apos;'
-  },
-  xmlUnEscapeMap: {
-    "&amp;": "&",
-    "&lt;": "<",
-    "&gt;": ">",
-    "&quot;": '"',
-    "&apos;": "'"
-  },
 
   CONFIG_GROUP_NAME_MAX_LENGTH: 18,
 
@@ -48,35 +30,6 @@ App.config = Em.Object.create({
    */
   filenameExceptions: ['zoo.cfg'],
 
-  /**
-   * Since values end up in XML files (core-sit.xml, etc.), certain
-   * XML sensitive characters should be escaped. If not we will have
-   * an invalid XML document, and services will fail to start.
-   *
-   * Special characters in XML are defined at
-   * http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Predefined_entities_in_XML
-   *
-   * @method escapeXMLCharacters
-   * @param {*} value
-   * @param toXml {Boolean}
-   * @return {String}
-   */
-  escapeXMLCharacters: function (value, toXML) {
-    var self = this;
-    // To prevent double/triple replacing '&gt;' to '&amp;gt;' to '&amp;amp;gt;', we need
-    // to first unescape all XML chars, and then escape them again.
-    var newValue = String(value).replace(/(&amp;|&lt;|&gt;|&quot;|&apos;)/g, function (s) {
-      return self.xmlUnEscapeMap[s];
-    });
-    if (toXML) {
-      return String(newValue).replace(/[&<>"']/g, function (s) {
-        return self.xmlEscapeMap[s];
-      });
-    } else {
-      return newValue;
-    }
-  },
-
   preDefinedServiceConfigs: [],
   /**
    *

http://git-wip-us.apache.org/repos/asf/ambari/blob/03a1ff97/ambari-web/app/views/wizard/controls_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/wizard/controls_view.js b/ambari-web/app/views/wizard/controls_view.js
index 6619179..198e4a8 100644
--- a/ambari-web/app/views/wizard/controls_view.js
+++ b/ambari-web/app/views/wizard/controls_view.js
@@ -60,10 +60,25 @@ App.ServiceConfigPopoverSupport = Ember.Mixin.create({
 });
 
 /**
+ * if config value contains &amp;|&lt;|&gt;|&quot;|&apos;
+ * input field converts it to &|<|>|"|'
+ * this mixin helps to aviod such convertation and show values as is.
+ */
+App.SkipXmlEscapingSupport = Ember.Mixin.create({
+  didInsertElement: function() {
+    this._super();
+    if (this.get('serviceConfig.value').match(/(&amp;|&lt;|&gt;|&quot;|&apos;)/g)) {
+      this.set('value', this.get('serviceConfig.value').replace('&','&amp;'));
+      this.set('value', this.get('value').replace('&amp;','&'));
+    }
+  }
+});
+
+/**
  * Default input control
  * @type {*}
  */
-App.ServiceConfigTextField = Ember.TextField.extend(App.ServiceConfigPopoverSupport, {
+App.ServiceConfigTextField = Ember.TextField.extend(App.ServiceConfigPopoverSupport, App.SkipXmlEscapingSupport, {
 
   valueBinding: 'serviceConfig.value',
   classNameBindings: 'textFieldClassName',
@@ -156,7 +171,7 @@ App.ServiceConfigPasswordField = Ember.TextField.extend({
  * Textarea control
  * @type {*}
  */
-App.ServiceConfigTextArea = Ember.TextArea.extend(App.ServiceConfigPopoverSupport, {
+App.ServiceConfigTextArea = Ember.TextArea.extend(App.ServiceConfigPopoverSupport, App.SkipXmlEscapingSupport, {
 
   valueBinding: 'serviceConfig.value',
   rows: 4,
@@ -167,7 +182,7 @@ App.ServiceConfigTextArea = Ember.TextArea.extend(App.ServiceConfigPopoverSuppor
  * Textarea control for content type
  * @type {*}
  */
-App.ServiceConfigTextAreaContent = Ember.TextArea.extend(App.ServiceConfigPopoverSupport, {
+App.ServiceConfigTextAreaContent = Ember.TextArea.extend(App.ServiceConfigPopoverSupport, App.SkipXmlEscapingSupport, {
 
   valueBinding: 'serviceConfig.value',
   rows: 20,

http://git-wip-us.apache.org/repos/asf/ambari/blob/03a1ff97/ambari-web/test/controllers/main/admin/security/security_progress_controller_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/main/admin/security/security_progress_controller_test.js b/ambari-web/test/controllers/main/admin/security/security_progress_controller_test.js
index 2d96150..26cfbab 100644
--- a/ambari-web/test/controllers/main/admin/security/security_progress_controller_test.js
+++ b/ambari-web/test/controllers/main/admin/security/security_progress_controller_test.js
@@ -408,75 +408,4 @@ describe('App.MainAdminSecurityProgressController', function () {
       });
     });
   });
-
-  describe('#setServerConfigValue()', function () {
-
-    beforeEach(function () {
-      sinon.spy(App.config, "escapeXMLCharacters");
-    });
-    afterEach(function () {
-      App.config.escapeXMLCharacters.restore();
-    });
-
-    it('Empty config', function () {
-      expect(controller.setServerConfigValue('', '')).to.equal('');
-      expect(App.config.escapeXMLCharacters.calledWith('')).to.be.true;
-    });
-    it('Config1, value = "value1"', function () {
-      expect(controller.setServerConfigValue('config1', 'value1')).to.equal('value1');
-      expect(App.config.escapeXMLCharacters.calledWith('value1')).to.be.true;
-    });
-    it('config = "storm.zookeeper.servers", value = "value1"', function () {
-      expect(controller.setServerConfigValue('storm.zookeeper.servers', 'value1')).to.equal('value1');
-      expect(App.config.escapeXMLCharacters.called).to.be.false;
-    });
-  });
-
-  describe('#escapeXMLCharacters()', function () {
-
-    beforeEach(function () {
-      sinon.spy(controller, "setServerConfigValue");
-    });
-    afterEach(function () {
-      controller.setServerConfigValue.restore();
-    });
-
-    it('serviceConfigTags is empty', function () {
-      var serviceConfigTags = [];
-      controller.escapeXMLCharacters(serviceConfigTags);
-      expect(controller.setServerConfigValue.called).to.be.false;
-    });
-    it('configs is empty', function () {
-      var serviceConfigTags = [
-        {
-          configs: {}
-        }
-      ];
-      controller.escapeXMLCharacters(serviceConfigTags);
-      expect(controller.setServerConfigValue.called).to.be.false;
-    });
-    it('serviceConfigTags has property', function () {
-      var serviceConfigTags = [
-        {
-          configs: {
-            'p1': 'value1'
-          }
-        }
-      ];
-      controller.escapeXMLCharacters(serviceConfigTags);
-      expect(controller.setServerConfigValue.withArgs('p1', 'value1').calledOnce).to.be.true;
-    });
-    it('serviceConfigTags has multiple properties', function () {
-      var serviceConfigTags = [
-        {
-          configs: {
-            'p1': 'value1',
-            'p2': 'value2'
-          }
-        }
-      ];
-      controller.escapeXMLCharacters(serviceConfigTags);
-      expect(controller.setServerConfigValue.callCount).to.equal(2);
-    });
-  });
 });

http://git-wip-us.apache.org/repos/asf/ambari/blob/03a1ff97/ambari-web/test/controllers/main/service/info/config_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/main/service/info/config_test.js b/ambari-web/test/controllers/main/service/info/config_test.js
index afb2a08..8926cf2 100644
--- a/ambari-web/test/controllers/main/service/info/config_test.js
+++ b/ambari-web/test/controllers/main/service/info/config_test.js
@@ -482,11 +482,8 @@ describe("App.MainServiceInfoConfigsController", function () {
     it("parsing storm.zookeeper.servers property in non standart method", function () {
       expect(mainServiceInfoConfigsController.setServerConfigValue("storm.zookeeper.servers", ["a", "b"])).to.equal('[\'a\',\'b\']');
     });
-    it("parsing content property in non standart method", function () {
-      expect(mainServiceInfoConfigsController.setServerConfigValue("content", "value")).to.equal("value");
-    });
     it("parsing default properties", function () {
-      expect(mainServiceInfoConfigsController.setServerConfigValue("any.other.property", "value&lt;")).to.equal("value<");
+      expect(mainServiceInfoConfigsController.setServerConfigValue("any.other.property", "value")).to.equal("value");
     });
   });
 
@@ -511,7 +508,7 @@ describe("App.MainServiceInfoConfigsController", function () {
           "tag": "version1",
           "properties": {
             "property1": "value1",
-            "property2": "value2<"
+            "property2": "value2&lt;"
           }
         },
         m: "default"
@@ -570,7 +567,7 @@ describe("App.MainServiceInfoConfigsController", function () {
           "tag": "version1",
           "properties": {
             "property1": "value1",
-            "property2": "value2<"
+            "property2": "value2&lt;"
           }
         }
       }

http://git-wip-us.apache.org/repos/asf/ambari/blob/03a1ff97/ambari-web/test/controllers/wizard/step8_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/wizard/step8_test.js b/ambari-web/test/controllers/wizard/step8_test.js
index b6488a9..3a7774b 100644
--- a/ambari-web/test/controllers/wizard/step8_test.js
+++ b/ambari-web/test/controllers/wizard/step8_test.js
@@ -85,7 +85,7 @@ describe('App.WizardStep8Controller', function () {
 
       it(test.name, function () {
 
-        var siteObj = installerStep8Controller.createSiteObj(test.e.type,false,test.e.tag);
+        var siteObj = installerStep8Controller.createSiteObj(test.e.type, test.e.tag);
         expect(siteObj.tag).to.equal(test.e.tag);
         expect(Em.keys(siteObj.properties).length).to.equal(test.e.l);
       });
@@ -911,11 +911,11 @@ describe('App.WizardStep8Controller', function () {
           type: 'zoo.cfg',
           tag: 'version1',
           properties: {
-            p1: 'a&b',
-            p2: 'a<b',
-            p3: 'a>b',
-            p4: 'a"b',
-            p5: 'a\'b'
+            p1: 'a&amp;b',
+            p2: 'a&lt;b',
+            p3: 'a&gt;b',
+            p4: 'a&quot;b',
+            p5: 'a&apos;b'
           }
         };
       installerStep8Controller.reopen({configs: configs});
@@ -956,28 +956,6 @@ describe('App.WizardStep8Controller', function () {
       installerStep8Controller.reopen({configs: configs});
       expect(installerStep8Controller.createStormSiteObj('version1')).to.eql(expected);
     });
-    it('should affect storm-site.xml properties', function() {
-      var configs = [
-          {filename: 'storm-site.xml', value: 'a&amp;b', name: 'p1'},
-          {filename: 'storm-site.xml', value: 'a&lt;b', name: 'p2'},
-          {filename: 'storm-site.xml', value: 'a&gt;b', name: 'p3'},
-          {filename: 'storm-site.xml', value: 'a&quot;b', name: 'p4'},
-          {filename: 'storm-site.xml', value: 'a&apos;b', name: 'p5'}
-        ],
-        expected = {
-          type: 'storm-site',
-          tag: 'version1',
-          properties: {
-            p1: 'a&b',
-            p2: 'a<b',
-            p3: 'a>b',
-            p4: 'a"b',
-            p5: 'a\'b'
-          }
-        };
-      installerStep8Controller.reopen({configs: configs});
-      expect(installerStep8Controller.createStormSiteObj('version1')).to.eql(expected);
-    });
   });
 
   describe('#ajaxQueueFinished', function() {

http://git-wip-us.apache.org/repos/asf/ambari/blob/03a1ff97/ambari-web/test/utils/config_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/utils/config_test.js b/ambari-web/test/utils/config_test.js
index 451f748..528be46 100644
--- a/ambari-web/test/utils/config_test.js
+++ b/ambari-web/test/utils/config_test.js
@@ -288,42 +288,6 @@ describe('App.config', function () {
     });
   });
 
-  describe('#escapeXMLCharacters', function () {
-
-    var testConfigs = [
-      {
-        html: '&>"',
-        json: '&>"'
-      },
-      {
-        html: '&amp;&gt;&quot;&apos;',
-        json: '&>"\''
-      },
-      {
-        html: '&&gt;',
-        json: '&>'
-      },
-      {
-        html: '&&&amp;',
-        json: '&&&'
-      },
-      {
-        html: 'LD_LIBRARY_PATH=/usr/lib/hadoop/lib/native:/usr/lib/hadoop/lib/native/`$JAVA_HOME/bin/java -d32 -version &amp;&gt; /dev/null;if [ $? -eq 0 ]; then echo Linux-i386-32; else echo Linux-amd64-64;fi`',
-        json: 'LD_LIBRARY_PATH=/usr/lib/hadoop/lib/native:/usr/lib/hadoop/lib/native/`$JAVA_HOME/bin/java -d32 -version &> /dev/null;if [ $? -eq 0 ]; then echo Linux-i386-32; else echo Linux-amd64-64;fi`'
-      },
-      {
-        html: '&&&amp;',
-        json: '&amp;&amp;&amp;',
-        toXml: true
-      }
-    ];
-    testConfigs.forEach(function(t){
-      it('parsing html ' + t.html + ' `toXml` param passed ' + !!t.toXml, function () {
-        expect(t.json).to.equal(App.config.escapeXMLCharacters(t.html, t.toXml));
-      });
-    });
-  });
-
   describe('#addAvancedConfigs()', function() {
     before(function() {
       this.storedConfigs = modelSetup.setupStoredConfigsObject();
@@ -457,4 +421,4 @@ describe('App.config', function () {
       expect(ServiceConfig.get('configCategories.length')).to.eql(1);
     });
   });
-});
\ No newline at end of file
+});