瀏覽代碼

AMBARI-2375. Unit Tests: Added tests to models. (Andrii Tkach via yusaku)

git-svn-id: https://svn.apache.org/repos/asf/incubator/ambari/trunk@1493190 13f79535-47bb-0310-9956-ffa450edef68
Yusaku Sako 12 年之前
父節點
當前提交
c97fc05f77

+ 10 - 0
ambari-web/app/app.js

@@ -99,4 +99,14 @@ DS.attr.transforms.date = {
   }
 }
 
+DS.attr.transforms.object = {
+  from: function(serialized) {
+    return Ember.none(serialized) ? null : Object(serialized);
+  },
+
+  to: function(deserialized) {
+    return Ember.none(deserialized) ? null : Object(deserialized);
+  }
+};
+
 

+ 4 - 1
ambari-web/app/assets/test/tests.js

@@ -50,4 +50,7 @@ require('test/utils/host_progress_popup_test');
 require('test/utils/misc_test');
 require('test/utils/validator_test');
 require('test/utils/string_utils_test');
-require('test/views/common/chart/linear_time_test');
+require('test/views/common/chart/linear_time_test');
+require('test/models/host_test');
+require('test/models/host_component_test');
+require('test/models/rack_test');

+ 1 - 9
ambari-web/app/controllers/main/service.js

@@ -34,14 +34,6 @@ App.MainServiceController = Em.ArrayController.extend({
     return App.Cluster.find().objectAt(0);
   }.property('App.router.clusterController.isLoaded'),
 
-  hdfsService: function () {
-    var hdfsSvcs = App.HDFSService.find();
-    if (hdfsSvcs && hdfsSvcs.get('length') > 0) {
-      return hdfsSvcs.objectAt(0);
-    }
-    return null;
-  }.property('App.router.clusterController.isLoaded', 'App.router.updateController.isUpdated'),
-
   isStartAllDisabled: function(){
     if(this.get('isStartStopAllClicked') == true) {
       return true;
@@ -123,4 +115,4 @@ App.MainServiceController = Em.ArrayController.extend({
   allServicesCallErrorCallback: function() {
     console.log("ERROR");
   }
-})
+})

+ 1 - 0
ambari-web/app/messages.js

@@ -697,6 +697,7 @@ Em.I18n.translations = {
   'services.service.summary.unknown':'unknown',
   'services.service.summary.notRunning':'Not Running',
   'services.service.summary.notAvailable':'n/a',
+  'services.service.summary.diskInfoBar.used':'used',
 
   'services.service.info.metrics.hbase.clusterRequests':'Cluster Requests',
   'services.service.info.metrics.hbase.clusterRequests.displayNames.requestCount':'Request Count',

+ 1 - 2
ambari-web/app/models.js

@@ -33,7 +33,6 @@ require('models/service/mapreduce');
 require('models/service/hbase');
 require('models/alert');
 require('models/user');
-require('models/pagination');
 require('models/host');
 require('models/rack');
 require('models/job');
@@ -46,4 +45,4 @@ require('models/dataset');
 require('models/dataset_job');
 require('classes/run_class');
 require('classes/job_class');
-require('classes/job_class');
+require('classes/job_class');

+ 11 - 45
ambari-web/app/models/form.js

@@ -16,7 +16,6 @@
  * limitations under the License.
  */
 var App = require('app');
-var validator = require('utils/validator');
 
 // move this to models cause some errors
 App.Form = Em.View.extend({
@@ -170,8 +169,6 @@ App.FormField = Em.Object.extend({ // try to realize this as view
   }.property('displayType'),
 
   validate:function () {
-    var digitsRegex = /^\d+$/;
-    var numberRegex = /^[-,+]?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/;
     var value = this.get('value');
     var isError = false;
     this.set('errorMessage', '');
@@ -186,47 +183,16 @@ App.FormField = Em.Object.extend({ // try to realize this as view
     }
 
     if (!isError) {
-      switch (this.get('validator')) {
-        case 'ipaddress':
-          if (!validator.isIpAddress(value) && !validator.isDomainName(value)) {
-            isError = true;
-            this.set('errorMessage', Em.I18n.t("form.validator.invalidIp"));
-          }
-          break;
-        case 'passwordRetype':
-          var form = this.get('form');
-          var passwordField = form.getField('password');
-          if (passwordField.get('isValid')
-            && (passwordField.get('value') != this.get('value'))
-            && passwordField.get('value') && this.get('value')
-            ) {
-            this.set('errorMessage', "Passwords are different");
-            isError = true;
-          }
-          break;
-        default:
-          break;
-      }
-
-      switch (this.get('displayType')) {
-        case 'digits':
-          if (!digitsRegex.test(value)) {
-            this.set('errorMessage', 'Must contain digits only');
-            isError = true;
-          }
-          break;
-        case 'number':
-          if (!numberRegex.test(value)) {
-            this.set('errorMessage', 'Must be a valid number');
-            isError = true;
-          }
-          break;
-        case 'directories':
-          break;
-        case 'custom':
-          break;
-        case 'password':
-          break;
+      if(this.get('validator') === 'passwordRetype'){
+        var form = this.get('form');
+        var passwordField = form.getField('password');
+        if (passwordField.get('isValid')
+          && (passwordField.get('value') != this.get('value'))
+          && passwordField.get('value') && this.get('value')
+          ) {
+          this.set('errorMessage', "Passwords are different");
+          isError = true;
+        }
       }
     }
     if (!isError) {
@@ -237,4 +203,4 @@ App.FormField = Em.Object.extend({ // try to realize this as view
   isHiddenField:function () {
     return this.get('displayType') == 'hidden';
   }.property('type')
-});
+});

+ 3 - 12
ambari-web/app/models/host.js

@@ -20,16 +20,6 @@
 var App = require('app');
 var misc = require('utils/misc');
 
-DS.attr.transforms.object = {
-  from: function(serialized) {
-    return Ember.none(serialized) ? null : Object(serialized);
-  },
-
-  to: function(deserialized) {
-    return Ember.none(deserialized) ? null : Object(deserialized);
-  }
-};
-
 App.Host = DS.Model.extend({
   hostName: DS.attr('string'),
   publicHostName: DS.attr('string'),
@@ -101,7 +91,8 @@ App.Host = DS.Model.extend({
     if (isNaN(this.get('diskUsage')) || this.get('diskUsage') < 0) {
       return this.get('diskUsageFormatted');
     }
-    return this.get('diskUsedFormatted') + '/' + this.get('diskTotalFormatted') + ' (' + this.get('diskUsageFormatted') + ' used)';
+    return this.get('diskUsedFormatted') + '/' + this.get('diskTotalFormatted') + ' (' + this.get('diskUsageFormatted')
+      + ' ' + Em.I18n.t('services.service.summary.diskInfoBar.used') + ')';
   }.property('diskUsedFormatted', 'diskTotalFormatted'),
   /**
    * formatted bytes to appropriate value
@@ -195,4 +186,4 @@ App.Host = DS.Model.extend({
   }.property('hostComponents.@each.workStatus')
 });
 
-App.Host.FIXTURES = [];
+App.Host.FIXTURES = [];

+ 6 - 8
ambari-web/app/models/host_component.js

@@ -79,16 +79,14 @@ App.HostComponent = DS.Model.extend({
     var decommissioning = false;
     var hostName = this.get('host.hostName');
     var componentName = this.get('componentName');
-    if (componentName == 'DATANODE') {
-      var hdfsSvc = App.router.get('mainServiceController.hdfsService');
-      if (hdfsSvc) {
-        var decomNodes = hdfsSvc.get('decommissionDataNodes');
-        var decomNode = decomNodes != null ? decomNodes.findProperty("hostName", hostName) : null;
-        decommissioning = decomNode != null;
-      }
+    var hdfsSvc = App.HDFSService.find().objectAt(0);
+    if (componentName === 'DATANODE' && hdfsSvc) {
+      var decomNodes = hdfsSvc.get('decommissionDataNodes');
+      var decomNode = decomNodes != null ? decomNodes.findProperty("hostName", hostName) : null;
+      decommissioning = decomNode != null;
     }
     return decommissioning;
-  }.property('componentName', 'host.hostName', 'App.router.mainServiceController.hdfsService.decommissionDataNodes.@each.hostName'),
+  }.property('componentName', 'host.hostName', 'App.router.clusterController.isLoaded', 'App.router.updateController.isUpdated'),
   /**
    * User friendly host component status
    */

+ 0 - 82
ambari-web/app/models/pagination.js

@@ -1,82 +0,0 @@
-/**
- * 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');
-
-/**
- @extends Ember.Mixin
-
- Implements common pagination management properties for controllers.
- */
-App.Pagination = Em.Mixin.create({
-
-  total: 0,
-  rangeStart: 0,
-  pageSize: 0,
-
-  rangeStop: function() {
-    var rangeStop = this.get('rangeStart') + this.get('pageSize'),
-      total = this.get('total');
-    if (rangeStop < total) {
-      return rangeStop;
-    }
-    return total;
-  }.property('total', 'rangeStart', 'pageSize').cacheable(),
-
-  hasPrevious: function() {
-    return this.get('rangeStart') > 0;
-  }.property('rangeStart').cacheable(),
-
-  hasNext: function() {
-    return this.get('rangeStop') < this.get('total');
-  }.property('rangeStop', 'total').cacheable(),
-
-  nextPage: function() {
-    if (this.get('hasNext')) {
-      this.incrementProperty('rangeStart', this.get('pageSize'));
-    }
-  },
-
-  previousPage: function() {
-    if (this.get('hasPrevious')) {
-      this.decrementProperty('rangeStart', this.get('pageSize'));
-    }
-  },
-
-  currentPage: function () {
-    return this.get('rangeStop') / this.get('pageSize');
-  }.property('rangeStop', 'pageSize').cacheable(),
-
-  startPosition: function() {
-    if (this.get('total') == 0)
-      return 0;
-    return this.get('rangeStart')  + 1;
-  }.property('rangeStart', 'total').cacheable(),
-
-  totalPages: function() {
-    return Math.ceil(this.get('total') / this.get('pageSize'));
-  }.property('total', 'pageSize').cacheable(),
-
-//  changeContent: function() {
-////    this.didRequestRange(this.get('rangeStart'), this.get('rangeStop'));
-//  }.observes('total', 'rangeStart', 'rangeStop'),
-
-  pageSizeChange: function() {
-    this.set('rangeStart', 0);
-  }.observes('pageSize')
-
-});

+ 0 - 1
ambari-web/app/models/run.js

@@ -23,7 +23,6 @@ var misc = require('utils/misc');
 
 App.Run = DS.Model.extend({
   appName: DS.attr('string'),
-  type: DS.attr('string'),
   userName:DS.attr('string'),
   numJobsTotal: DS.attr('number'),
   numJobsCompleted: DS.attr('number'),

+ 0 - 5
ambari-web/app/models/user.js

@@ -19,11 +19,6 @@
 var App = require('app');
 var validator = require('utils/validator');
 
-App.UserModel = Em.Object.extend({
-  userName:null,
-  id:0
-});
-
 App.User = DS.Model.extend({
   userName:DS.attr('string'),
   id:function(){

+ 1 - 1
ambari-web/test/controllers/global/background_operations_test.js

@@ -36,7 +36,6 @@ describe('App.BackgroundOperationsController', function () {
    *
    */
   App.set('clusterName', 'testName');
-  App.set('testMode', 'true');
   App.bgOperationsUpdateInterval = 100;
 
   /**
@@ -60,6 +59,7 @@ describe('App.BackgroundOperationsController', function () {
       this.timeout(App.bgOperationsUpdateInterval + 500);
 
       sinon.stub(controller, 'requestMostRecent', function(){
+        App.set('testMode', true);
         controller.set('isWorking', false);
         controller.requestMostRecent.restore();
         done();

+ 3 - 125
ambari-web/test/utils/form_field_test.js

@@ -26,128 +26,6 @@ require('models/form');
 describe('App.FormField', function () {
 
   describe('#validate()', function () {
-    /*DIGITS TYPE*/
-    it('123456789 is correct digits', function () {
-      var formField = App.FormField.create();
-      formField.set('displayType', 'digits');
-      formField.set('value', 123456789);
-      formField.validate();
-      expect(formField.get('errorMessage') === '').to.equal(true);
-    })
-    it('"a33bc" is incorrect digits', function () {
-      var formField = App.FormField.create();
-      formField.set('displayType', 'digits');
-      formField.set('value', 'a33bc');
-      formField.validate();
-      expect(formField.get('errorMessage') === '').to.equal(false);
-    })
-    /*DIGITS TYPE END*/
-    /*NUMBER TYPE*/
-    it('+1234 is correct number', function () {
-      var formField = App.FormField.create();
-      formField.set('displayType', 'number');
-      formField.set('value', '+1234');
-      formField.validate();
-      expect(formField.get('errorMessage') === '').to.equal(true);
-    })
-    it('-1234 is correct number', function () {
-      var formField = App.FormField.create();
-      formField.set('displayType', 'number');
-      formField.set('value', '-1234');
-      formField.validate();
-      expect(formField.get('errorMessage') === '').to.equal(true);
-    })
-    it('-1.23.6 is incorrect number', function () {
-      var formField = App.FormField.create();
-      formField.set('displayType', 'number');
-      formField.set('value', '-1.23.6');
-      formField.validate();
-      expect(formField.get('errorMessage') === '').to.equal(false);
-    })
-    it('+1.6 is correct number', function () {
-      var formField = App.FormField.create();
-      formField.set('displayType', 'number');
-      formField.set('value', +1.6);
-      formField.validate();
-      expect(formField.get('errorMessage') === '').to.equal(true);
-    })
-    it('-1.6 is correct number', function () {
-      var formField = App.FormField.create();
-      formField.set('displayType', 'number');
-      formField.set('value', -1.6);
-      formField.validate();
-      expect(formField.get('errorMessage') === '').to.equal(true);
-    })
-    it('1.6 is correct number', function () {
-      var formField = App.FormField.create();
-      formField.set('displayType', 'number');
-      formField.set('value', 1.6);
-      formField.validate();
-      expect(formField.get('errorMessage') === '').to.equal(true);
-    })
-    it('-.356 is correct number', function () {
-      var formField = App.FormField.create();
-      formField.set('displayType', 'number');
-      formField.set('value', '-.356');
-      formField.validate();
-      expect(formField.get('errorMessage') === '').to.equal(true);
-    })
-    it('+.356 is correct number', function () {
-      var formField = App.FormField.create();
-      formField.set('displayType', 'number');
-      formField.set('value', '+.356');
-      formField.validate();
-      expect(formField.get('errorMessage') === '').to.equal(true);
-    })
-    it('-1. is incorrect number', function () {
-      var formField = App.FormField.create();
-      formField.set('displayType', 'number');
-      formField.set('value', '-1.');
-      formField.validate();
-      expect(formField.get('errorMessage') === '').to.equal(false);
-    })
-    it('+1. is incorrect number', function () {
-      var formField = App.FormField.create();
-      formField.set('displayType', 'number');
-      formField.set('value', '+1.');
-      formField.validate();
-      expect(formField.get('errorMessage') === '').to.equal(false);
-    })
-    it('1. is incorrect number', function () {
-      var formField = App.FormField.create();
-      formField.set('displayType', 'number');
-      formField.set('value', '1.');
-      formField.validate();
-      expect(formField.get('errorMessage') === '').to.equal(false);
-    })
-    it('-1,23,6 is incorrect number', function () {
-      var formField = App.FormField.create();
-      formField.set('displayType', 'number');
-      formField.set('value', '-1,23,6');
-      formField.validate();
-      expect(formField.get('errorMessage') === '').to.equal(false);
-    })
-    it('-1234567890 is correct number', function () {
-      var formField = App.FormField.create();
-      formField.set('displayType', 'number');
-      formField.set('value', '-1234567890');
-      formField.validate();
-      expect(formField.get('errorMessage') === '').to.equal(true);
-    })
-    it('+1234567890 is correct number', function () {
-      var formField = App.FormField.create();
-      formField.set('displayType', 'number');
-      formField.set('value', '+1234567890');
-      formField.validate();
-      expect(formField.get('errorMessage') === '').to.equal(true);
-    })
-    it('123eed is incorrect number', function () {
-      var formField = App.FormField.create();
-      formField.set('displayType', 'number');
-      formField.set('value', '123eed');
-      formField.validate();
-      expect(formField.get('errorMessage') === '').to.equal(false);
-    })
     /*NUMBER TYPE END*/
     /*REQUIRE*/
     it('Required field shouldn\'t be empty', function () {
@@ -157,8 +35,8 @@ describe('App.FormField', function () {
       formField.set('isRequired', true);
       formField.validate();
       expect(formField.get('errorMessage') === '').to.equal(false);
-    })
+    });
     /*REQUIRE END*/
 
-  })
-})
+  });
+});