diff options
author | Matěj Cepl <mcepl@redhat.com> | 2010-05-31 22:19:07 +0200 |
---|---|---|
committer | Matěj Cepl <mcepl@redhat.com> | 2010-05-31 22:19:07 +0200 |
commit | 93570dc0f18dbe255cf453c947c5d521acae9c69 (patch) | |
tree | fe3cdd73196087d6c988a0fcc05cd5bbf2768998 /tests | |
parent | 475c2df048fa5c42ba913ceeba3e6201938031f7 (diff) | |
download | bugzilla-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')
-rw-r--r-- | tests/test-util.js | 93 |
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"); + +}; |