aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-web
diff options
context:
space:
mode:
authorStas Vilchik <vilchiks@gmail.com>2015-04-10 17:49:37 +0200
committerStas Vilchik <vilchiks@gmail.com>2015-04-10 17:49:37 +0200
commita510bd69f4f66eb4b81ae19bca8b768ddc1c1ced (patch)
treee367fb843ec5063e6bab733c6154a8fddd586d2b /server/sonar-web
parent6294bc5b0b72515ed6eb0b0a3daed695081e5e25 (diff)
downloadsonarqube-a510bd69f4f66eb4b81ae19bca8b768ddc1c1ced.tar.gz
sonarqube-a510bd69f4f66eb4b81ae19bca8b768ddc1c1ced.zip
cover formatMeasure with tests
Diffstat (limited to 'server/sonar-web')
-rw-r--r--server/sonar-web/src/main/js/application.js7
-rw-r--r--server/sonar-web/src/test/js/format-measures.js169
-rw-r--r--server/sonar-web/src/test/views/layouts/main.jade1
3 files changed, 174 insertions, 3 deletions
diff --git a/server/sonar-web/src/main/js/application.js b/server/sonar-web/src/main/js/application.js
index 592c1265493..c6af8866c87 100644
--- a/server/sonar-web/src/main/js/application.js
+++ b/server/sonar-web/src/main/js/application.js
@@ -300,11 +300,14 @@ function closeModalWindow () {
}
function shortIntVariationFormatter (value) {
+ if (value === 0) {
+ return '0';
+ }
var format = '+0,0';
- if (value >= 1000) {
+ if (Math.abs(value) >= 1000) {
format = '+0.[0]a';
}
- if (value >= 10000) {
+ if (Math.abs(value) >= 10000) {
format = '+0a';
}
return numeral(value).format(format);
diff --git a/server/sonar-web/src/test/js/format-measures.js b/server/sonar-web/src/test/js/format-measures.js
new file mode 100644
index 00000000000..dfcee7c49ce
--- /dev/null
+++ b/server/sonar-web/src/test/js/format-measures.js
@@ -0,0 +1,169 @@
+/*
+ * SonarQube, open source software quality management tool.
+ * Copyright (C) 2008-2014 SonarSource
+ * mailto:contact AT sonarsource DOT com
+ *
+ * SonarQube is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * SonarQube is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+/* globals casper: false */
+var lib = require('../lib'),
+ testName = lib.testName('Format Measures');
+
+lib.initMessages();
+lib.configureCasper();
+
+
+function formatMeasure (measure, type) {
+ return casper.evaluate(function (measure, type) {
+ return formatMeasure(measure, type);
+ }, measure, type);
+}
+
+function formatMeasureVariation (measure, type) {
+ return casper.evaluate(function (measure, type) {
+ return formatMeasureVariation(measure, type);
+ }, measure, type);
+}
+
+var HOURS_IN_DAY = 8,
+ ONE_MINUTE = 1,
+ ONE_HOUR = ONE_MINUTE * 60,
+ ONE_DAY = HOURS_IN_DAY * ONE_HOUR;
+
+
+casper.test.begin(testName(), function (test) {
+ casper
+ .start(lib.buildUrl('ui-global-messages'), function () {
+ lib.setDefaultViewport();
+ })
+
+ .then(function () {
+ casper.evaluate(function (hoursInDay) {
+ window.messages = {
+ 'work_duration.x_days': '{0}d',
+ 'work_duration.x_hours': '{0}h',
+ 'work_duration.x_minutes': '{0}min'
+ };
+ window.hoursInDay = hoursInDay;
+ }, HOURS_IN_DAY);
+ })
+
+ .then(function () {
+ test.assertEqual(formatMeasure(0, 'INT'), '0');
+ test.assertEqual(formatMeasure(1, 'INT'), '1');
+ test.assertEqual(formatMeasure(-5, 'INT'), '-5');
+ test.assertEqual(formatMeasure(999, 'INT'), '999');
+ test.assertEqual(formatMeasure(1000, 'INT'), '1,000');
+ test.assertEqual(formatMeasure(1529, 'INT'), '1,529');
+ test.assertEqual(formatMeasure(10000, 'INT'), '10,000');
+ test.assertEqual(formatMeasure(1234567890, 'INT'), '1,234,567,890');
+
+ test.assertEqual(formatMeasure(0, 'SHORT_INT'), '0');
+ test.assertEqual(formatMeasure(1, 'SHORT_INT'), '1');
+ test.assertEqual(formatMeasure(999, 'SHORT_INT'), '999');
+ test.assertEqual(formatMeasure(1000, 'SHORT_INT'), '1k');
+ test.assertEqual(formatMeasure(1529, 'SHORT_INT'), '1.5k');
+ test.assertEqual(formatMeasure(10000, 'SHORT_INT'), '10k');
+ test.assertEqual(formatMeasure(10678, 'SHORT_INT'), '11k');
+ test.assertEqual(formatMeasure(1234567890, 'SHORT_INT'), '1b');
+
+ test.assertEqual(formatMeasure(0.0, 'FLOAT'), '0.0');
+ test.assertEqual(formatMeasure(1.0, 'FLOAT'), '1.0');
+ test.assertEqual(formatMeasure(1.3, 'FLOAT'), '1.3');
+ test.assertEqual(formatMeasure(1.34, 'FLOAT'), '1.3');
+ test.assertEqual(formatMeasure(50.89, 'FLOAT'), '50.9');
+ test.assertEqual(formatMeasure(100.0, 'FLOAT'), '100.0');
+ test.assertEqual(formatMeasure(123.456, 'FLOAT'), '123.5');
+ test.assertEqual(formatMeasure(123456.7, 'FLOAT'), '123,456.7');
+ test.assertEqual(formatMeasure(1234567890.0, 'FLOAT'), '1,234,567,890.0');
+
+ test.assertEqual(formatMeasure(0.0, 'PERCENT'), '0.0%');
+ test.assertEqual(formatMeasure(1.0, 'PERCENT'), '1.0%');
+ test.assertEqual(formatMeasure(1.3, 'PERCENT'), '1.3%');
+ test.assertEqual(formatMeasure(1.34, 'PERCENT'), '1.3%');
+ test.assertEqual(formatMeasure(50.89, 'PERCENT'), '50.9%');
+ test.assertEqual(formatMeasure(100.0, 'PERCENT'), '100.0%');
+
+ test.assertEqual(formatMeasure(0, 'WORK_DUR'), '0');
+ test.assertEqual(formatMeasure(5 * ONE_DAY, 'WORK_DUR'), '5d');
+ test.assertEqual(formatMeasure(2 * ONE_HOUR, 'WORK_DUR'), '2h');
+ test.assertEqual(formatMeasure(ONE_MINUTE, 'WORK_DUR'), '1min');
+ test.assertEqual(formatMeasure(5 * ONE_DAY + 2 * ONE_HOUR, 'WORK_DUR'), '5d 2h');
+ test.assertEqual(formatMeasure(2 * ONE_HOUR + ONE_MINUTE, 'WORK_DUR'), '2h 1min');
+ test.assertEqual(formatMeasure(5 * ONE_DAY + 2 * ONE_HOUR + ONE_MINUTE, 'WORK_DUR'), '5d 2h');
+ test.assertEqual(formatMeasure(15 * ONE_DAY + 2 * ONE_HOUR + ONE_MINUTE, 'WORK_DUR'), '15d');
+ test.assertEqual(formatMeasure(-5 * ONE_DAY, 'WORK_DUR'), '-5d');
+ test.assertEqual(formatMeasure(-2 * ONE_HOUR, 'WORK_DUR'), '-2h');
+ test.assertEqual(formatMeasure(-1 * ONE_MINUTE, 'WORK_DUR'), '-1min');
+
+ test.assertEqual(formatMeasure(1, 'RATING'), 'A');
+ test.assertEqual(formatMeasure(2, 'RATING'), 'B');
+ test.assertEqual(formatMeasure(3, 'RATING'), 'C');
+ test.assertEqual(formatMeasure(4, 'RATING'), 'D');
+ test.assertEqual(formatMeasure(5, 'RATING'), 'E');
+
+ test.assertEqual(formatMeasure('random value', 'RANDOM_TYPE'), 'random value');
+
+ test.assertEqual(formatMeasure(), '');
+ })
+
+ .then(function () {
+ test.assertEqual(formatMeasureVariation(0, 'INT'), '0');
+ test.assertEqual(formatMeasureVariation(1, 'INT'), '+1');
+ test.assertEqual(formatMeasureVariation(-1, 'INT'), '-1');
+ test.assertEqual(formatMeasureVariation(1529, 'INT'), '+1,529');
+ test.assertEqual(formatMeasureVariation(-1529, 'INT'), '-1,529');
+
+ test.assertEqual(formatMeasureVariation(0, 'SHORT_INT'), '0');
+ test.assertEqual(formatMeasureVariation(1, 'SHORT_INT'), '+1');
+ test.assertEqual(formatMeasureVariation(-1, 'SHORT_INT'), '-1');
+ test.assertEqual(formatMeasureVariation(1529, 'SHORT_INT'), '+1.5k');
+ test.assertEqual(formatMeasureVariation(-1529, 'SHORT_INT'), '-1.5k');
+ test.assertEqual(formatMeasureVariation(10678, 'SHORT_INT'), '+11k');
+ test.assertEqual(formatMeasureVariation(-10678, 'SHORT_INT'), '-11k');
+
+ test.assertEqual(formatMeasureVariation(0.0, 'FLOAT'), '0');
+ test.assertEqual(formatMeasureVariation(1.0, 'FLOAT'), '+1.0');
+ test.assertEqual(formatMeasureVariation(-1.0, 'FLOAT'), '-1.0');
+ test.assertEqual(formatMeasureVariation(50.89, 'FLOAT'), '+50.9');
+ test.assertEqual(formatMeasureVariation(-50.89, 'FLOAT'), '-50.9');
+
+ test.assertEqual(formatMeasureVariation(0.0, 'PERCENT'), '0%');
+ test.assertEqual(formatMeasureVariation(1.0, 'PERCENT'), '+1.0%');
+ test.assertEqual(formatMeasureVariation(-1.0, 'PERCENT'), '-1.0%');
+ test.assertEqual(formatMeasureVariation(50.89, 'PERCENT'), '+50.9%');
+ test.assertEqual(formatMeasureVariation(-50.89, 'PERCENT'), '-50.9%');
+
+ test.assertEqual(formatMeasureVariation(0, 'WORK_DUR'), '0');
+ test.assertEqual(formatMeasureVariation(5 * ONE_DAY, 'WORK_DUR'), '+5d');
+ test.assertEqual(formatMeasureVariation(2 * ONE_HOUR, 'WORK_DUR'), '+2h');
+ test.assertEqual(formatMeasureVariation(ONE_MINUTE, 'WORK_DUR'), '+1min');
+ test.assertEqual(formatMeasureVariation(-5 * ONE_DAY, 'WORK_DUR'), '-5d');
+ test.assertEqual(formatMeasureVariation(-2 * ONE_HOUR, 'WORK_DUR'), '-2h');
+ test.assertEqual(formatMeasureVariation(-1 * ONE_MINUTE, 'WORK_DUR'), '-1min');
+
+ test.assertEqual(formatMeasureVariation('random value', 'RANDOM_TYPE'), 'random value');
+
+ test.assertEqual(formatMeasureVariation(), '');
+ })
+
+ .then(function () {
+ lib.sendCoverage();
+ })
+
+ .run(function () {
+ test.done();
+ });
+});
diff --git a/server/sonar-web/src/test/views/layouts/main.jade b/server/sonar-web/src/test/views/layouts/main.jade
index 9c6e867aaa5..c53ddbdcaa4 100644
--- a/server/sonar-web/src/test/views/layouts/main.jade
+++ b/server/sonar-web/src/test/views/layouts/main.jade
@@ -32,7 +32,6 @@ html
script(src='/js/widgets/tag-cloud.js')
script(src='/js/widgets/treemap.js')
script(src='/js/graphics/pie-chart.js')
- script(src='/js/graphics/sparkline.js')
script(src='/js/graphics/barchart.js')
script(src='/js/sortable.js')
script(src='/js/common/inputs.js')