You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by xi...@apache.org on 2015/06/16 20:22:51 UTC
ambari git commit: AMBARI-11444-2. Number Widgets: Empty threshold
for 'Critical' still shows the value as Critical.(XIWANG)
Repository: ambari
Updated Branches:
refs/heads/trunk 3e4ac6e7a -> e7a8b35d6
AMBARI-11444-2. Number Widgets: Empty threshold for 'Critical' still shows the value as Critical.(XIWANG)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/e7a8b35d
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/e7a8b35d
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/e7a8b35d
Branch: refs/heads/trunk
Commit: e7a8b35d647cb8b07d641325904b9041382f00c1
Parents: 3e4ac6e
Author: Xi Wang <xi...@apache.org>
Authored: Mon Jun 15 15:25:48 2015 -0700
Committer: Xi Wang <xi...@apache.org>
Committed: Tue Jun 16 11:14:33 2015 -0700
----------------------------------------------------------------------
ambari-web/app/assets/test/tests.js | 2 +
.../views/common/widget/gauge_widget_view.js | 4 +-
.../views/common/widget/number_widget_view.js | 2 +-
.../common/widget/gauge_widget_view_test.js | 166 ++++++++++++++++
.../common/widget/number_widget_view_test.js | 190 +++++++++++++++++++
5 files changed, 361 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/e7a8b35d/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 7b894b7..f832a48 100644
--- a/ambari-web/app/assets/test/tests.js
+++ b/ambari-web/app/assets/test/tests.js
@@ -191,6 +191,8 @@ var files = ['test/init_model_test',
'test/views/common/custom_date_popup_test',
'test/views/common/progress_bar_view_test',
'test/views/common/widget/graph_widget_view_test',
+ 'test/views/common/widget/number_widget_view_test',
+ 'test/views/common/widget/gauge_widget_view_test',
'test/views/common/modal_popups/hosts_table_list_popup_test',
'test/views/main/admin_test',
'test/views/main/dashboard_test',
http://git-wip-us.apache.org/repos/asf/ambari/blob/e7a8b35d/ambari-web/app/views/common/widget/gauge_widget_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/common/widget/gauge_widget_view.js b/ambari-web/app/views/common/widget/gauge_widget_view.js
index 3d782cd..a1cd24b 100644
--- a/ambari-web/app/views/common/widget/gauge_widget_view.js
+++ b/ambari-web/app/views/common/widget/gauge_widget_view.js
@@ -91,12 +91,12 @@ App.GaugeWidgetView = Em.View.extend(App.WidgetMixin, {
var color_green = App.healthStatusGreen;
var color_red = App.healthStatusRed;
var color_orange = App.healthStatusOrange;
- if (isNaN(threshold1) || (isNaN(threshold2) && used <= threshold1) || (!isNaN(threshold2) && (threshold1 > threshold2) && (used > threshold1)) || (!isNaN(threshold2) && (threshold1 < threshold2) && (used <= threshold1))) {
+ if ((isNaN(threshold1) && isNaN(threshold2)) || (isNaN(threshold1) && used <= threshold2) || (isNaN(threshold2) && used <= threshold1) || (!isNaN(threshold2) && (threshold1 > threshold2) && (used > threshold1)) || (!isNaN(threshold2) && (threshold1 < threshold2) && (used <= threshold1))) {
this.set('palette', new Rickshaw.Color.Palette({
scheme: [ '#FFFFFF', color_green ].reverse()
}));
return color_green;
- } else if ((!isNaN(threshold2) && used.isInRange(threshold1, threshold2)) || (isNaN(threshold2) && used > threshold1) ) {
+ } else if ((!isNaN(threshold2) && used.isInRange(threshold1, threshold2)) || (isNaN(threshold2) && used > threshold1)) {
this.set('palette', new Rickshaw.Color.Palette({
scheme: [ '#FFFFFF', color_orange ].reverse()
}));
http://git-wip-us.apache.org/repos/asf/ambari/blob/e7a8b35d/ambari-web/app/views/common/widget/number_widget_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/common/widget/number_widget_view.js b/ambari-web/app/views/common/widget/number_widget_view.js
index 33bf34e..b962851 100644
--- a/ambari-web/app/views/common/widget/number_widget_view.js
+++ b/ambari-web/app/views/common/widget/number_widget_view.js
@@ -52,7 +52,7 @@ App.NumberWidgetView = Em.View.extend(App.WidgetMixin, {
if (isNaN(value)) {
return 'grey';
- } else if (isNaN(threshold1) || (isNaN(threshold2) && value <= threshold1) || (!isNaN(threshold2) && (threshold1 > threshold2) && (value > threshold1)) || (!isNaN(threshold2) && (threshold1 < threshold2) && (value <= threshold1))) {
+ } else if ((isNaN(threshold1) && isNaN(threshold2)) || (isNaN(threshold1) && value <= threshold2) || (isNaN(threshold2) && value <= threshold1) || (!isNaN(threshold2) && (threshold1 > threshold2) && (value > threshold1)) || (!isNaN(threshold2) && (threshold1 < threshold2) && (value <= threshold1))) {
return 'green';
} else if ((!isNaN(threshold2) && value.isInRange(threshold1, threshold2)) || ((isNaN(threshold2) && value > threshold1))) {
return 'orange';
http://git-wip-us.apache.org/repos/asf/ambari/blob/e7a8b35d/ambari-web/test/views/common/widget/gauge_widget_view_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/views/common/widget/gauge_widget_view_test.js b/ambari-web/test/views/common/widget/gauge_widget_view_test.js
new file mode 100644
index 0000000..6ed4828
--- /dev/null
+++ b/ambari-web/test/views/common/widget/gauge_widget_view_test.js
@@ -0,0 +1,166 @@
+/**
+ * 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('views/common/widget/gauge_widget_view');
+
+describe('App.GaugeWidgetView', function () {
+ var view = App.GaugeWidgetView.create({
+ value: 0,
+ content: {
+ properties: {
+ warning_threshold: 0,
+ critical_threshold: 0
+ }
+ }
+ });
+
+ describe("#chartView.contentColor()", function() {
+ var testCases = [
+ {
+ title: 'both thresholds NOT existed',
+ data: {
+ value: 0.2,
+ warningThreshold: null,
+ criticalThreshold: null
+ },
+ result: App.healthStatusGreen
+ },
+ {
+ title: 'both thresholds existed 1',
+ data: {
+ value: 0.2,
+ warningThreshold: 0.1,
+ criticalThreshold: 0.3
+ },
+ result: App.healthStatusOrange
+ },
+ {
+ title: 'both thresholds existed 2',
+ data: {
+ value: 0.2,
+ warningThreshold: 0.3,
+ criticalThreshold: 0.1
+ },
+ result: App.healthStatusOrange
+ },
+ {
+ title: 'both thresholds existed 3',
+ data: {
+ value: 0.05,
+ warningThreshold: 0.1,
+ criticalThreshold: 0.3
+ },
+ result: App.healthStatusGreen
+ },
+ {
+ title: 'both thresholds existed 4',
+ data: {
+ value: 0.35,
+ warningThreshold: 0.3,
+ criticalThreshold: 0.1
+ },
+ result: App.healthStatusGreen
+ },
+ {
+ title: 'both thresholds existed 5',
+ data: {
+ value: 0.35,
+ warningThreshold: 0.1,
+ criticalThreshold: 0.3
+ },
+ result: App.healthStatusRed
+ },
+ {
+ title: 'both thresholds existed 6',
+ data: {
+ value: 0.05,
+ warningThreshold: 0.3,
+ criticalThreshold: 0.1
+ },
+ result: App.healthStatusRed
+ },
+ {
+ title: 'only warning threshold existed 1',
+ data: {
+ value: 0,
+ warningThreshold: 1,
+ criticalThreshold: null
+ },
+ result: App.healthStatusGreen
+ },
+ {
+ title: 'only warning threshold existed 2',
+ data: {
+ value: 2,
+ warningThreshold: 1,
+ criticalThreshold: null
+ },
+ result: App.healthStatusOrange
+ },
+ {
+ title: 'only critical threshold existed 1',
+ data: {
+ value: 0.5,
+ warningThreshold: null,
+ criticalThreshold: 1
+ },
+ result: App.healthStatusGreen
+ },
+ {
+ title: 'only critical threshold existed 2',
+ data: {
+ value: 1.5,
+ warningThreshold: null,
+ criticalThreshold: 1
+ },
+ result: App.healthStatusRed
+ },
+ {
+ title: 'invalid thresholds 1',
+ data: {
+ value: 1.5,
+ warningThreshold: '&*&%',
+ criticalThreshold: 1
+ },
+ result: App.healthStatusRed
+ },
+ {
+ title: 'invalid thresholds 2',
+ data: {
+ value: 1.5,
+ warningThreshold: '&*&%',
+ criticalThreshold: '@#^^'
+ },
+ result: App.healthStatusGreen
+ }
+ ];
+
+ testCases.forEach(function (test) {
+ it(test.title, function () {
+ view.set('value', test.data.value);
+ view.set('content.properties.warning_threshold', test.data.warningThreshold);
+ view.set('content.properties.error_threshold', test.data.criticalThreshold);
+ var chartView = view.chartView.create({
+ parentView: view
+ });
+ expect(chartView.get('contentColor')).to.eql(test.result);
+ });
+ });
+ });
+});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/e7a8b35d/ambari-web/test/views/common/widget/number_widget_view_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/views/common/widget/number_widget_view_test.js b/ambari-web/test/views/common/widget/number_widget_view_test.js
new file mode 100644
index 0000000..3a55314
--- /dev/null
+++ b/ambari-web/test/views/common/widget/number_widget_view_test.js
@@ -0,0 +1,190 @@
+/**
+ * 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('views/common/widget/number_widget_view');
+
+describe('App.NumberWidgetView', function () {
+ var view = App.NumberWidgetView.create({
+ value: 0,
+ content: {
+ properties: {
+ warning_threshold: 0,
+ critical_threshold: 0
+ }
+ }
+ });
+
+ describe("#contentColor()", function() {
+ var testCases = [
+ {
+ title: 'no value',
+ data: {
+ value: null,
+ warningThreshold: 1,
+ criticalThreshold: 3
+ },
+ result: 'grey'
+ },
+ {
+ title: 'no value',
+ data: {
+ value: null,
+ warningThreshold: null,
+ criticalThreshold: null
+ },
+ result: 'grey'
+ },
+ {
+ title: 'no value',
+ data: {
+ value: null,
+ warningThreshold: null,
+ criticalThreshold: 3
+ },
+ result: 'grey'
+ },
+ {
+ title: 'both thresholds NOT existed',
+ data: {
+ value: 2,
+ warningThreshold: null,
+ criticalThreshold: null
+ },
+ result: 'green'
+ },
+ {
+ title: 'both thresholds existed',
+ data: {
+ value: 2,
+ warningThreshold: 1,
+ criticalThreshold: 3
+ },
+ result: 'orange'
+ },
+ {
+ title: 'both thresholds existed',
+ data: {
+ value: 2,
+ warningThreshold: 3,
+ criticalThreshold: 1
+ },
+ result: 'orange'
+ },
+ {
+ title: 'both thresholds existed',
+ data: {
+ value: 0.5,
+ warningThreshold: 1,
+ criticalThreshold: 3
+ },
+ result: 'green'
+ },
+ {
+ title: 'both thresholds existed',
+ data: {
+ value: 3.5,
+ warningThreshold: 3,
+ criticalThreshold: 1
+ },
+ result: 'green'
+ },
+ {
+ title: 'both thresholds existed',
+ data: {
+ value: 3.5,
+ warningThreshold: 1,
+ criticalThreshold: 3
+ },
+ result: 'red'
+ },
+ {
+ title: 'both thresholds existed',
+ data: {
+ value: 0.5,
+ warningThreshold: 3,
+ criticalThreshold: 1
+ },
+ result: 'red'
+ },
+ {
+ title: 'only warning threshold existed',
+ data: {
+ value: 0,
+ warningThreshold: 1,
+ criticalThreshold: null
+ },
+ result: 'green'
+ },
+ {
+ title: 'only warning threshold existed',
+ data: {
+ value: 2,
+ warningThreshold: 1,
+ criticalThreshold: null
+ },
+ result: 'orange'
+ },
+ {
+ title: 'only critical threshold existed',
+ data: {
+ value: 0.5,
+ warningThreshold: null,
+ criticalThreshold: 1
+ },
+ result: 'green'
+ },
+ {
+ title: 'only critical threshold existed',
+ data: {
+ value: 1.5,
+ warningThreshold: null,
+ criticalThreshold: 1
+ },
+ result: 'red'
+ },
+ {
+ title: 'invalid thresholds',
+ data: {
+ value: 1.5,
+ warningThreshold: '&*&%',
+ criticalThreshold: 1
+ },
+ result: 'red'
+ },
+ {
+ title: 'invalid thresholds',
+ data: {
+ value: 1.5,
+ warningThreshold: '&*&%',
+ criticalThreshold: '@#^^'
+ },
+ result: 'green'
+ }
+ ];
+
+ testCases.forEach(function (test) {
+ it(test.title, function () {
+ view.set('value', test.data.value);
+ view.set('content.properties.warning_threshold', test.data.warningThreshold);
+ view.set('content.properties.error_threshold', test.data.criticalThreshold);
+ expect(view.get('contentColor')).to.eql(test.result);
+ });
+ });
+ });
+});
\ No newline at end of file