aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test-util.js
diff options
context:
space:
mode:
authorMatěj Cepl <mcepl@redhat.com>2010-05-31 22:19:07 +0200
committerMatěj Cepl <mcepl@redhat.com>2010-05-31 22:19:07 +0200
commit93570dc0f18dbe255cf453c947c5d521acae9c69 (patch)
treefe3cdd73196087d6c988a0fcc05cd5bbf2768998 /tests/test-util.js
parent475c2df048fa5c42ba913ceeba3e6201938031f7 (diff)
downloadbugzilla-triage-93570dc0f18dbe255cf453c947c5d521acae9c69.tar.gz
* Added hopefully a full coverage of unit tests for:
util.valToArray util.addCSVValue util.removeCSVValue * Cleaning up to make jslint happy for */util*.js
Diffstat (limited to 'tests/test-util.js')
-rw-r--r--tests/test-util.js93
1 files changed, 90 insertions, 3 deletions
diff --git a/tests/test-util.js b/tests/test-util.js
index 5af8eee..c97776a 100644
--- a/tests/test-util.js
+++ b/tests/test-util.js
@@ -1,7 +1,94 @@
+/*global exports: false, require: false */
+/*jslint plusplus: false */
+// TODO: add some failing tests as well
+"use strict";
var util = require("util");
-exports.ensureGetHost = function(test) {
- var uri = util.getHost("https://bugzilla.redhat.com/show_bug.cgi?id=597141");
- test.assertEqual(uri, "bugzilla.redhat.com", "checking right hostname from URL");
+// shamelessly stolen from
+// http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256BFB0077DFFD
+var areArraysEqual = function areArraysEqual(array1, array2) {
+ var temp = [], i = 0, key = "";
+ if ((!array1[0]) || (!array2[0])) { // If either is not an array
+ return false;
+ }
+ if (array1.length !== array2.length) {
+ return false;
+ }
+ // Put all the elements from array1 into a "tagged" array
+ for (i = 0; i < array1.length; i++) {
+ key = (typeof array1[i]) + "~" + array1[i];
+ // Use "typeof" so a number 1 isn't equal to a string "1".
+ if (temp[key]) {
+ temp[key]++;
+ } else {
+ temp[key] = 1;
+ }
+ // temp[key] = # of occurrences of the value (so an element could appear multiple times)
+ }
+ // Go through array2 - if same tag missing in "tagged" array, not equal
+ for (i = 0; i < array2.length; i++) {
+ key = (typeof array2[i]) + "~" + array2[i];
+ if (temp[key]) {
+ if (temp[key] === 0) {
+ return false;
+ } else {
+ temp[key]--;
+ }
+ // Subtract to keep track of # of appearances in array2
+ } else { // Key didn't appear in array1, arrays are not equal.
+ return false;
+ }
+ }
+ return true;
};
+// testing util.valToArray
+exports.ensureValToArray = function (test) {
+ test.assert(areArraysEqual(util.valToArray("a"), ["a"]),
+ "conversion of a string to an array");
+};
+
+// testing util.addCSVValue
+exports.ensureCSVAddedToNull = function (test) {
+ test.assertEqual(util.addCSVValue("", "b"), "b",
+ "adding a string to empty string");
+};
+
+exports.ensureCSVAddedNull = function (test) {
+ test.assertEqual(util.addCSVValue("a", ""), "a",
+ "adding nothing to a string");
+};
+
+exports.ensureCSVAddedString = function (test) {
+ test.assertEqual(util.addCSVValue("a", "b"), "a, b",
+ "adding one string to another one");
+};
+
+exports.ensureCSVAddedArray = function (test) {
+ test.assertEqual(util.addCSVValue("a", ["b", "c"]), "a, b, c",
+ "adding array to a string");
+};
+
+exports.ensureCSVAddedArray2Array = function (test) {
+ test.assertEqual(util.addCSVValue("a, b", ["c", "d"]), "a, b, c, d",
+ "adding one array to another");
+};
+
+// testing util.removeCSVValue
+exports.ensureCSVRemoveSimple = function (test) {
+ test.assertEqual(util.removeCSVValue("a, b", "b"), "a",
+ "removing one string from an array");
+
+};
+
+exports.ensureCSVRemoveNonMember = function (test) {
+ test.assertEqual(util.removeCSVValue("a, b", "c"), "a, b",
+ "removing a string from an array of which it isn't a member");
+
+};
+
+exports.ensureCSVRemoveEmpty = function (test) {
+ test.assertEqual(util.removeCSVValue("", "c"), "",
+ "removing a string from an empty array");
+
+};