From: Tim Wood Date: Tue, 15 Mar 2011 22:54:01 +0000 (-0700) Subject: added test suite for _.customizeDate() X-Git-Tag: 0.3.0~2^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6d072020e620194bc84b9ece99dbb8d8cf362d48;p=thirdparty%2Fmoment.git added test suite for _.customizeDate() --- diff --git a/lib/underscore.date.js b/lib/underscore.date.js index 6750d161c..b25638c07 100644 --- a/lib/underscore.date.js +++ b/lib/underscore.date.js @@ -29,16 +29,14 @@ MM: "%d months", y: "about a year", yy: "%d years" + }, + createOrdinal = function(number) { + var b = number % 10; + return ((number % 100 / 10 | 0) === 1) ? 'th' : + (b === 1) ? 'st' : + (b === 2) ? 'nd' : + (b === 3) ? 'rd' : 'th'; }; - - // add ordinal to number - function createOrdinal(number) { - var b = number % 10; - return ((number % 100 / 10 | 0) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - } // left zero fill a number function leftZeroFill(number, targetLength) { @@ -124,7 +122,7 @@ inputWeekdaysShort = input.weekdaysShort, inputMonths = input.months, inputMonthsShort = input.monthsShort, - inputTimeago = input.timeago, + inputRelativeTime = input.relativeTime, inputOrdinal = input.ordinal; if (inputWeekdays && _.isArray(inputWeekdays) && inputWeekdays.length === 7) { wordsWeekdays = inputWeekdays; @@ -138,8 +136,8 @@ if (inputMonthsShort && _.isArray(inputMonthsShort) && inputMonthsShort.length === 12) { wordsMonthsShort = inputMonthsShort; } - if (inputTimeago) { - _.extend(wordsTimeAgo, inputTimeago); + if (inputRelativeTime) { + _.extend(wordsTimeAgo, inputRelativeTime); } if (inputOrdinal && _.isFunction(inputOrdinal)) { createOrdinal = inputOrdinal; diff --git a/test/customize.html b/test/customize.html new file mode 100644 index 000000000..5fd882fda --- /dev/null +++ b/test/customize.html @@ -0,0 +1,18 @@ + + + + Underscore.date customization test suite + + + + + + + + +

Underscore.date customization test suite

+

+

+
    + + diff --git a/test/customizeDate.js b/test/customizeDate.js new file mode 100644 index 000000000..20d93c30a --- /dev/null +++ b/test/customizeDate.js @@ -0,0 +1,67 @@ +$(function() { + + module("Customize"); + + _.customizeDate({ + months : ["enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"], + monthsShort : ["ene", "feb", "mar", "abr", "may", "jun", "jul", "ago", "sep", "oct", "nov", "dic"], + weekdays : ["domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"], + weekdaysShort : ["dom", "lun", "mar", "mié", "jue", "vie", "sáb"], + relativeTime : { + future: "%s from now", + past: "%s ago", + s: "seconds", + m: "a minute", + mm: "%d minutes", + h: "an hour", + hh: "%d hours", + d: "a day", + dd: "%d days", + M: "a month", + MM: "%d months", + y: "a year", + yy: "%d years" + }, + ordinal : function(number) { + return 'o'; + } + }); + + test("_.formatDate()", 14, function() { + var dateTest = new Date(2010, 1, 14, 15, 25, 50, 125); + equal(_.formatDate([2010, 1, 14, 15, 25, 50, 125], "dddd, MMMM Do YYYY, h:mm:ss a"), "domingo, febrero 14o 2010, 3:25:50 pm"); + equal(_.formatDate([2010, 1, 14, 15, 25, 50, 125], "ddd, hA"), "dom, 3PM"); + equal(_.formatDate(dateTest, "M Mo MM MMMM MMM"), "2 2o 02 febrero feb"); + equal(_.formatDate(dateTest, "YYYY YY"), "2010 10"); + equal(_.formatDate(dateTest, "D Do DD"), "14 14o 14"); + equal(_.formatDate(dateTest, "d do dddd ddd"), "0 0o domingo dom"); + equal(_.formatDate(dateTest, "DDD DDDo DDDD"), "45 45o 045"); + equal(_.formatDate(dateTest, "w wo ww"), "8 8o 08"); + equal(_.formatDate(dateTest, "h hh"), "3 03"); + equal(_.formatDate(dateTest, "H HH"), "15 15"); + equal(_.formatDate(dateTest, "m mm"), "25 25"); + equal(_.formatDate(dateTest, "s ss"), "50 50"); + equal(_.formatDate(dateTest, "a A"), "pm PM"); + equal(_.formatDate(dateTest, "t\\he DDDo \\d\\ay of t\\he ye\\ar"), "the 45o day of the year"); + }); + + test("_.relativeTime()", 11, function() { + equal(_.relativeTime(1000 * 30), "seconds"); + equal(_.relativeTime(1000 * 60), "a minute"); + equal(_.relativeTime(1000 * 60 * 5), "5 minutes"); + equal(_.relativeTime(1000 * 60 * 60), "an hour"); + equal(_.relativeTime(1000 * 60 * 60 * 5), "5 hours"); + equal(_.relativeTime(1000 * 60 * 60 * 24), "a day"); + equal(_.relativeTime(1000 * 60 * 60 * 24 * 5), "5 days"); + equal(_.relativeTime(1000 * 60 * 60 * 24 * 30), "a month"); + equal(_.relativeTime(1000 * 60 * 60 * 24 * 30 * 5), "5 months"); + equal(_.relativeTime(1000 * 60 * 60 * 24 * 30 * 12), "a year"); + equal(_.relativeTime(1000 * 60 * 60 * 24 * 365 * 5), "5 years"); + }); + + test("_.fromNow()", 2, function() { + equal(_.fromNow(30000, 0), "seconds from now"); + equal(_.fromNow(0, 30000), "seconds ago"); + }); + +}); diff --git a/test/date.js b/test/date.js index d2b454cd2..8794e70ef 100644 --- a/test/date.js +++ b/test/date.js @@ -1,95 +1,84 @@ -$(document).ready(function() { +$(function() { - module("Date"); - - test("formatDate", function() { - var dateTest = new Date(2010, 1, 14, 15, 25, 50, 125); - expect(14); - equal(_.formatDate([2010, 1, 14, 15, 25, 50, 125], "dddd, MMMM Do YYYY, h:mm:ss a"), "Sunday, February 14th 2010, 3:25:50 pm"); - equal(_.formatDate([2010, 1, 14, 15, 25, 50, 125], "ddd, hA"), "Sun, 3PM"); - equal(_.formatDate(dateTest, "M Mo MM MMMM MMM"), "2 2nd 02 February Feb"); - equal(_.formatDate(dateTest, "YYYY YY"), "2010 10"); - equal(_.formatDate(dateTest, "D Do DD"), "14 14th 14"); - equal(_.formatDate(dateTest, "d do dddd ddd"), "0 0th Sunday Sun"); - equal(_.formatDate(dateTest, "DDD DDDo DDDD"), "45 45th 045"); - equal(_.formatDate(dateTest, "w wo ww"), "8 8th 08"); - equal(_.formatDate(dateTest, "h hh"), "3 03"); - equal(_.formatDate(dateTest, "H HH"), "15 15"); - equal(_.formatDate(dateTest, "m mm"), "25 25"); - equal(_.formatDate(dateTest, "s ss"), "50 50"); - equal(_.formatDate(dateTest, "a A"), "pm PM"); - equal(_.formatDate(dateTest, "t\\he DDDo \\d\\ay of t\\he ye\\ar"), "the 45th day of the year"); - }); - - test("date", function() { - expect(6); - ok(_.isDate(_.date([2010, 1, 12])), "[2010, 1, 12]"); - ok(_.isDate(_.date([2010, 1, 12, 1])), "[2010, 1, 12, 1]"); - ok(_.isDate(_.date()), "undefined"); - ok(_.isDate(_.date("Aug 9, 1995")), "Aug 9, 1995"); - ok(_.isDate(_.date("Mon, 25 Dec 1995 13:30:00 GMT")), "Mon, 25 Dec 1995 13:30:00 GMT"); - deepEqual(_.date(new Date(2010, 1, 14, 15, 25, 50, 125)), _.date([2010, 1, 14, 15, 25, 50, 125]), "native date constructor === _.date([]);"); - }); - - - test("addTime + subtractTime", function() { - expect(5); - equal(_([2010, 1, 14, 15, 25, 50, 125]).chain().date().addTime({ms:200,s:10,m:10,h:2,d:3,M:2,y:3}).formatDate("MMMM Do YYYY, h:mm:ss a").value(), "April 17th 2013, 5:36:00 pm"); - equal(_([2010, 0, 31]).chain().date().formatDate("MMMM Do YYYY").value(), "January 31st 2010"); - equal(_([2010, 0, 31]).chain().date().addTime({M:1}).formatDate("MMMM Do YYYY").value(), "February 28th 2010"); - equal(_([2007, 1, 28]).chain().date().formatDate("MMMM Do YYYY").value(), "February 28th 2007"); - equal(_([2007, 1, 28]).chain().date().subtractTime({M:1}).formatDate("MMMM Do YYYY").value(), "January 28th 2007"); - }); - - - test("relativeTime", function() { - expect(11); - equal(_.relativeTime(1000 * 30), "less than a minute"); - equal(_.relativeTime(1000 * 60), "about a minute"); - equal(_.relativeTime(1000 * 60 * 5), "5 minutes"); - equal(_.relativeTime(1000 * 60 * 60), "about an hour"); - equal(_.relativeTime(1000 * 60 * 60 * 5), "about 5 hours"); - equal(_.relativeTime(1000 * 60 * 60 * 24), "a day"); - equal(_.relativeTime(1000 * 60 * 60 * 24 * 5), "5 days"); - equal(_.relativeTime(1000 * 60 * 60 * 24 * 30), "about a month"); - equal(_.relativeTime(1000 * 60 * 60 * 24 * 30 * 5), "5 months"); - equal(_.relativeTime(1000 * 60 * 60 * 24 * 30 * 12), "about a year"); - equal(_.relativeTime(1000 * 60 * 60 * 24 * 365 * 5), "5 years"); - }); - - test("msApart", function() { - expect(5); - equal(_.msApart(1000, 0), 1000, "1 second (ms) - 0 = 1000"); - equal(_.msApart(1000, 500), 500, "1 second (ms) - .5 second (ms) = -500"); - equal(_.msApart(0, 1000), -1000, "0 - 1 second (ms) = -1000"); - equal(_.msApart(new Date(1000), 1000), 0, "1 second (date) - 1 second (ms) = 0"); - var oneHourDate = new Date(), - nowDate = new Date(); - oneHourDate.setHours(oneHourDate.getHours() + 1); - equal(_.msApart(oneHourDate, nowDate), 60 * 60 * 1000, "1 hour from now = 360000"); - }); - - test("fromNow", function() { - expect(2); - equal(_.fromNow(30000, 0), "in less than a minute"); - equal(_.fromNow(0, 30000), "less than a minute ago"); - }); - - test("isLeapYear", function() { - expect(7); - equal(_.isLeapYear(2010), false); - equal(_.isLeapYear(2100), false); - equal(_.isLeapYear(2008), true); - equal(_.isLeapYear(2000), true); - equal(_.isLeapYear([2100, 0, 1]), false); - equal(_.isLeapYear(new Date(2008, 0, 1)), true); - equal(_.isLeapYear(new Date(2000, 0, 1)), true); - }); - - /* - test("isdst", function() { - expect(2); - equal(new Date(2010, 0, 1).isdst(), false); - equal(new Date(2010, 6, 1).isdst(), true); - });*/ + module("Date"); + + test("_.formatDate()", 14, function() { + var dateTest = new Date(2010, 1, 14, 15, 25, 50, 125); + + equal(_.formatDate([2010, 1, 14, 15, 25, 50, 125], "dddd, MMMM Do YYYY, h:mm:ss a"), "Sunday, February 14th 2010, 3:25:50 pm"); + equal(_.formatDate([2010, 1, 14, 15, 25, 50, 125], "ddd, hA"), "Sun, 3PM"); + equal(_.formatDate(dateTest, "M Mo MM MMMM MMM"), "2 2nd 02 February Feb"); + equal(_.formatDate(dateTest, "YYYY YY"), "2010 10"); + equal(_.formatDate(dateTest, "D Do DD"), "14 14th 14"); + equal(_.formatDate(dateTest, "d do dddd ddd"), "0 0th Sunday Sun"); + equal(_.formatDate(dateTest, "DDD DDDo DDDD"), "45 45th 045"); + equal(_.formatDate(dateTest, "w wo ww"), "8 8th 08"); + equal(_.formatDate(dateTest, "h hh"), "3 03"); + equal(_.formatDate(dateTest, "H HH"), "15 15"); + equal(_.formatDate(dateTest, "m mm"), "25 25"); + equal(_.formatDate(dateTest, "s ss"), "50 50"); + equal(_.formatDate(dateTest, "a A"), "pm PM"); + equal(_.formatDate(dateTest, "t\\he DDDo \\d\\ay of t\\he ye\\ar"), "the 45th day of the year"); + }); + + test("_.date()", 6, function() { + ok(_.isDate(_.date([2010, 1, 12])), "[2010, 1, 12]"); + ok(_.isDate(_.date([2010, 1, 12, 1])), "[2010, 1, 12, 1]"); + ok(_.isDate(_.date()), "undefined"); + ok(_.isDate(_.date("Aug 9, 1995")), "Aug 9, 1995"); + ok(_.isDate(_.date("Mon, 25 Dec 1995 13:30:00 GMT")), "Mon, 25 Dec 1995 13:30:00 GMT"); + deepEqual(_.date(new Date(2010, 1, 14, 15, 25, 50, 125)), _.date([2010, 1, 14, 15, 25, 50, 125]), "native date constructor === _.date([]);"); + }); + + + test("_.addTime() + _.subtractTime()", 5, function() { + equal(_([2010, 1, 14, 15, 25, 50, 125]).chain().date().addTime({ms:200,s:10,m:10,h:2,d:3,M:2,y:3}).formatDate("MMMM Do YYYY, h:mm:ss a").value(), "April 17th 2013, 5:36:00 pm"); + equal(_([2010, 0, 31]).chain().date().formatDate("MMMM Do YYYY").value(), "January 31st 2010"); + equal(_([2010, 0, 31]).chain().date().addTime({M:1}).formatDate("MMMM Do YYYY").value(), "February 28th 2010"); + equal(_([2007, 1, 28]).chain().date().formatDate("MMMM Do YYYY").value(), "February 28th 2007"); + equal(_([2007, 1, 28]).chain().date().subtractTime({M:1}).formatDate("MMMM Do YYYY").value(), "January 28th 2007"); + }); + + + test("_.relativeTime()", 11, function() { + equal(_.relativeTime(1000 * 30), "less than a minute"); + equal(_.relativeTime(1000 * 60), "about a minute"); + equal(_.relativeTime(1000 * 60 * 5), "5 minutes"); + equal(_.relativeTime(1000 * 60 * 60), "about an hour"); + equal(_.relativeTime(1000 * 60 * 60 * 5), "about 5 hours"); + equal(_.relativeTime(1000 * 60 * 60 * 24), "a day"); + equal(_.relativeTime(1000 * 60 * 60 * 24 * 5), "5 days"); + equal(_.relativeTime(1000 * 60 * 60 * 24 * 30), "about a month"); + equal(_.relativeTime(1000 * 60 * 60 * 24 * 30 * 5), "5 months"); + equal(_.relativeTime(1000 * 60 * 60 * 24 * 30 * 12), "about a year"); + equal(_.relativeTime(1000 * 60 * 60 * 24 * 365 * 5), "5 years"); + }); + + test("_.msApart()", 5, function() { + equal(_.msApart(1000, 0), 1000, "1 second (ms) - 0 = 1000"); + equal(_.msApart(1000, 500), 500, "1 second (ms) - .5 second (ms) = -500"); + equal(_.msApart(0, 1000), -1000, "0 - 1 second (ms) = -1000"); + equal(_.msApart(new Date(1000), 1000), 0, "1 second (date) - 1 second (ms) = 0"); + var oneHourDate = new Date(), + nowDate = new Date(); + oneHourDate.setHours(oneHourDate.getHours() + 1); + equal(_.msApart(oneHourDate, nowDate), 60 * 60 * 1000, "1 hour from now = 360000"); + }); + + test("_.fromNow()", 2, function() { + equal(_.fromNow(30000, 0), "in less than a minute"); + equal(_.fromNow(0, 30000), "less than a minute ago"); + }); + + test("_.isLeapYear()", function() { + expect(7); + equal(_.isLeapYear(2010), false); + equal(_.isLeapYear(2100), false); + equal(_.isLeapYear(2008), true); + equal(_.isLeapYear(2000), true); + equal(_.isLeapYear([2100, 0, 1]), false); + equal(_.isLeapYear(new Date(2008, 0, 1)), true); + equal(_.isLeapYear(new Date(2000, 0, 1)), true); + }); + }); \ No newline at end of file diff --git a/test/speed.js b/test/speed.js index 513daf765..802f08e3f 100644 --- a/test/speed.js +++ b/test/speed.js @@ -4,10 +4,6 @@ date2 = new Date(1000), rt1 = 1000 * 60 * 60 * 24 * 365 * 5, rt2 = 1000 * 30; - - JSLitmus.test('_.fromnow(1000 * 30, 0)', function() { - return _.fromnow(1000, 0); - }); JSLitmus.test('_.relativeTime(1000 * 30)', function() { return _.relativeTime(rt2); diff --git a/test/test.html b/test/test.html index edb0de721..c69879082 100644 --- a/test/test.html +++ b/test/test.html @@ -1,7 +1,7 @@ - underscore.date.js test suite + Underscore.date test suite @@ -10,10 +10,9 @@ - -

    underscore.date.js test suite

    +

    Underscore.date test suite