aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatěj Cepl <mcepl@redhat.com>2011-04-17 08:44:49 +0200
committerMatěj Cepl <mcepl@redhat.com>2011-06-05 14:44:43 +0200
commit0ccc730b8cf0f66a8e9a15cc07b5b6613fc0e015 (patch)
tree3dece2704b161fce5ef4e963a18aec624a782ee9
parent4d29c8b4eb1f3e66da8d60fd1f42f3e4c06d2b39 (diff)
downloadbugzilla-triage-0ccc730b8cf0f66a8e9a15cc07b5b6613fc0e015.tar.gz
Auch! Say NO to the copy&paste inheritance!
* leadingZero made into special function exported from xmlrpc module (it is now able to accept either number of string as its parameter) * added tests for leadingZero
-rw-r--r--lib/logger.js14
-rw-r--r--lib/xmlrpc.js24
-rw-r--r--tests/test-xmlrpc.js13
3 files changed, 34 insertions, 17 deletions
diff --git a/lib/logger.js b/lib/logger.js
index 7e0c516..d4c5dc9 100644
--- a/lib/logger.js
+++ b/lib/logger.js
@@ -79,21 +79,13 @@ exports.generateTimeSheet = function generateTimeSheet() {
};
function timeSheetRecordsPrinter(records) {
- function leadingZero(n) {
- // pads a single number with a leading zero. Heh.
- var s = n.toString();
- if (s.length === 1) {
- s = "0" + s;
- }
- return s;
- }
-
var commentBugRE = new RegExp("[bB]ug\\s+([0-9]+)","g");
// sort the records into temporary array
var tmpArr = [];
var today = new Date();
- var todayStr = today.getFullYear()+"-"+leadingZero(today.getMonth()+1)+
- "-"+leadingZero(today.getDate());
+ var todayStr = today.getFullYear() + "-" +
+ xrpc.leadingZero(today.getMonth()+1) + "-" +
+ xrpc.leadingZero(today.getDate());
var outStr = '<!DOCTYPE html>' +
"<html><head>\n"+
"<meta charset='utf-8'/>\n"+
diff --git a/lib/xmlrpc.js b/lib/xmlrpc.js
index 6576f31..e038c4e 100644
--- a/lib/xmlrpc.js
+++ b/lib/xmlrpc.js
@@ -26,15 +26,27 @@
* not an instance of SAME Array.
*/
-var dateToISO8601 = exports.dateToISO8601 = function dateToISO8601(date) {
- function leadingZero(n) {
- // pads a single number with a leading zero. Heh.
- if (n.length === 1) {
- n = "0" + n;
- }
+/**
+ * pads a single number with a leading zero. Heh.
+ *
+ * @param n String or Number
+ * @return String with leading zero added if necessary
+ *
+ * If the real parameter is not numerical, it is just returned as it is.
+ */
+var leadingZero = exports.leadingZero = function leadingZero(n) {
+ if (isNaN(Number(n))) {
return n;
+ };
+
+ var s = "0" + n;
+ if (s.length > 2) {
+ s = s.slice(1);
}
+ return s;
+};
+var dateToISO8601 = exports.dateToISO8601 = function dateToISO8601(date) {
// wow I hate working with the Date object
console.log("date = " + date);
var year = date.getYear();
diff --git a/tests/test-xmlrpc.js b/tests/test-xmlrpc.js
index 677a581..f3f2e56 100644
--- a/tests/test-xmlrpc.js
+++ b/tests/test-xmlrpc.js
@@ -15,6 +15,19 @@ var xmlOut = "<?xml version=\"1.0\"?>\n" +
"<param>\n<value><boolean>1</boolean></value>\n</param>\n" +
"</params>\n</methodCall>";
+exports.ensureLeadingZero = function (test) {
+ test.assert(typeof(xrpc.leadingZero) == "function");
+ test.assertEqual(xrpc.leadingZero("1"), "01");
+ test.assertEqual(xrpc.leadingZero(1), "01");
+ test.assertEqual(xrpc.leadingZero("11"), "11");
+ test.assertEqual(xrpc.leadingZero(11), "11");
+ test.assertEqual(xrpc.leadingZero("111"), "111");
+ test.assertEqual(xrpc.leadingZero(111), "111");
+ test.assertEqual(xrpc.leadingZero("-1"), "-1");
+ test.assertEqual(xrpc.leadingZero(-1), "-1");
+ test.assertEqual(xrpc.leadingZero("zzz"),"zzz");
+};
+
// testing xrpc.XMLRPCMessage
exports.ensureGenerateXMLRPC = function (test) {
var msg = new xrpc.XMLRPCMessage("bugzilla.updateAttachMimeType");