dojox
Version:
Dojo eXtensions, a rollup of many useful sub-projects and varying states of maturity – from very stable and robust, to alpha and experimental. See individual projects contain README files for details.
238 lines (201 loc) • 11.6 kB
JavaScript
dojo.provide("dojox.date.tests.buddhist.Date");
dojo.require("dojox.date.buddhist");
dojo.require("dojox.date.buddhist.Date");
dojo.require("dojox.date.buddhist.locale");
dojo.require("dojo.date.locale");
//dojo.requireLocalization("dojo.cldr", "gregorian");
//dojo.requireLocalization("dojo.cldr", "buddhist");
tests.register("dojox.date.tests.buddhist.Date",
[
{
// see tests for dojo.date.locale for setup info
name: "setup",
setUp: function(){
var partLocaleList = ["th"];
dojo.forEach(partLocaleList, function(locale){
dojo.requireLocalization("dojo.cldr", "gregorian", locale);
dojo.requireLocalization("dojo.cldr", "buddhist", locale);
});
},
runTest: function(t){
},
tearDown: function(){
//Clean up bundles that should not exist if
//the test is re-run.
// delete dojo.cldr.nls.greg;
// delete dojo.cldr.nls.buddhist;
}
},
{
name: "toGregorian",
runTest: function(t){
var dateBuddhist = new dojox.date.buddhist.Date(2551, 11, 19); //Buddhist.Date month 0-12
var dateGregorian = dateBuddhist.toGregorian();
t.is(0, dojo.date.compare(new Date(2008, 11, 19), dateGregorian, "date"));//Date month 0-11
dateBuddhist = new dojox.date.buddhist.Date(2548, 3, 18);
dateGregorian = dateBuddhist.toGregorian();
t.is(0, dojo.date.compare(new Date(2005, 3, 18), dateGregorian, "date"));
dateBuddhist = new dojox.date.buddhist.Date(2550, 7, 10);
dateGregorian = dateBuddhist.toGregorian();
t.is(0, dojo.date.compare(new Date(2007, 7, 10), dateGregorian, "date"));
dateBuddhist = new dojox.date.buddhist.Date(2552, 4, 20);
dateGregorian = dateBuddhist.toGregorian();
t.is(0, dojo.date.compare(new Date(2009, 4, 20), dateGregorian, "date"));
dateBuddhist = new dojox.date.buddhist.Date(2553, 6, 31);
dateGregorian = dateBuddhist.toGregorian();
t.is(0, dojo.date.compare(new Date(2010, 6, 31), dateGregorian, "date"));
dateBuddhist = new dojox.date.buddhist.Date(2554, 9, 1);
dateGregorian = dateBuddhist.toGregorian();
t.is(0, dojo.date.compare(new Date(2011, 9, 1), dateGregorian, "date"));
}
},
{
name: "fromGregorian",
runTest: function(t){
var dateGregorian = new Date(2009, 3, 12);
var dateBuddhistFromGreg = new dojox.date.buddhist.Date(dateGregorian);
t.is(0, dojo.date.compare( dateBuddhistFromGreg.toGregorian(), dateGregorian, "date"));
t.is(0, dojo.date.compare( dateBuddhistFromGreg.toGregorian(), dateGregorian));
dateGregorian = new Date(2008, 11, 18); //Date month 0-11
dateBuddhistFromGreg = new dojox.date.buddhist.Date(dateGregorian);
t.is(0, dojox.date.buddhist.compare(new dojox.date.buddhist.Date(2551, 11, 18), dateBuddhistFromGreg, "date")); //Buddhist.Date month 0-12
dateGregorian = new Date(2005, 3, 18);
dateBuddhistFromGreg = new dojox.date.buddhist.Date(dateGregorian);
t.is(0, dojox.date.buddhist.compare(new dojox.date.buddhist.Date(2548, 3, 18), dateBuddhistFromGreg, "date"));
dateGregorian = new Date(2007, 7, 10);
dateBuddhistFromGreg = new dojox.date.buddhist.Date(dateGregorian);
t.is(0, dojox.date.buddhist.compare(new dojox.date.buddhist.Date(2550, 7, 10), dateBuddhistFromGreg, "date"));
dateGregorian = new Date(2009, 4, 20);
dateBuddhistFromGreg = new dojox.date.buddhist.Date(dateGregorian);
t.is(0, dojox.date.buddhist.compare(new dojox.date.buddhist.Date(2552, 4, 20), dateBuddhistFromGreg, "date"));
dateGregorian = new Date(2010, 6, 31);
dateBuddhistFromGreg = new dojox.date.buddhist.Date(dateGregorian);
t.is(0, dojox.date.buddhist.compare(new dojox.date.buddhist.Date(2553, 6, 31), dateBuddhistFromGreg, "date"));
dateGregorian = new Date(2011, 9, 1);
dateBuddhistFromGreg = new dojox.date.buddhist.Date(dateGregorian);
t.is(0, dojox.date.buddhist.compare(new dojox.date.buddhist.Date(2554, 9, 1), dateBuddhistFromGreg, "date"));
}
},
{
name: "compare",
runTest: function(t){
var dateBuddhist = new dojox.date.buddhist.Date(2552, 5, 16);
var dateBuddhist1 = new dojox.date.buddhist.Date(2550, 10, 25);
t.is(1, dojo.date.compare(dateBuddhist.toGregorian(), dateBuddhist1.toGregorian()));
t.is(-1, dojo.date.compare(dateBuddhist1.toGregorian(), dateBuddhist.toGregorian()));
}
},
{
name: "add_and_difference",
runTest: function(t){
var dateBuddhist = new dojox.date.buddhist.Date(2552, 5, 16);
var dateBuddhistLeap = new dojox.date.buddhist.Date(2551, 5, 16);
var dateBuddhistAdd = dojox.date.buddhist.add(dateBuddhist, "month", 18);
var dateBuddhistAddLeap = dojox.date.buddhist.add(dateBuddhistLeap, "month", 18);
t.is(0, 18 - dojox.date.buddhist.difference(dateBuddhist, dateBuddhistAdd, "month"));
t.is(0, 18 - dojox.date.buddhist.difference(dateBuddhistLeap, dateBuddhistAddLeap, "month"));
var dateBuddhistAdd1= dojox.date.buddhist.add(dateBuddhist, "year", 2);
t.is(0, 2 - dojox.date.buddhist.difference(dateBuddhist, dateBuddhistAdd1, "year"));
t.is(0, 2 - dojox.date.buddhist.difference(dateBuddhistLeap, dojox.date.buddhist.add(dateBuddhistLeap, "year", 2), "year"));
var dateBuddhistAdd2= dojox.date.buddhist.add(dateBuddhist, "week", 12);
t.is(0, 12 - dojox.date.buddhist.difference(dateBuddhist, dateBuddhistAdd2, "week"));
t.is(0, 12 - dojox.date.buddhist.difference(dateBuddhistLeap, dojox.date.buddhist.add(dateBuddhistLeap, "week", 12), "week"));
var dateBuddhistAdd3= dojox.date.buddhist.add(dateBuddhist, "weekday", 20);
t.is(0, 20 - dojox.date.buddhist.difference(dateBuddhist, dateBuddhistAdd3, "weekday"));
t.is(0, 20 - dojox.date.buddhist.difference(dateBuddhistLeap, dojox.date.buddhist.add(dateBuddhistLeap, "weekday", 20), "weekday"));
var dateBuddhistAdd4= dojox.date.buddhist.add(dateBuddhist, "day", -50)
t.is(0, -50 - dojox.date.buddhist.difference(dateBuddhist, dateBuddhistAdd4, "day"));
t.is(0, -50 - dojox.date.buddhist.difference(dateBuddhistLeap, dojox.date.buddhist.add(dateBuddhistLeap, "day", -50), "day"));
var dateBuddhistAdd5= dojox.date.buddhist.add(dateBuddhist, "hour", 200);
t.is(0, 200 - dojox.date.buddhist.difference(dateBuddhist, dateBuddhistAdd5, "hour"));
t.is(0, 200 - dojox.date.buddhist.difference(dateBuddhistLeap, dojox.date.buddhist.add(dateBuddhistLeap, "hour", 200), "hour"));
var dateBuddhistAdd6= dojox.date.buddhist.add(dateBuddhist, "minute", -200);
t.is(0, -200 - dojox.date.buddhist.difference(dateBuddhist, dateBuddhistAdd6, "minute"));
t.is(0, -200 - dojox.date.buddhist.difference(dateBuddhistLeap, dojox.date.buddhist.add(dateBuddhistLeap, "minute", -200), "minute"));
var dateBuddhistDiff = new dojox.date.buddhist.Date(2552, 5, 17);
t.is(1, dojox.date.buddhist.difference(dateBuddhist, dateBuddhistDiff));
}
},
{
name: "parse_and_format",
runTest: function(t){
var dateBuddhist = new dojox.date.buddhist.Date(2552, 5, 16);
var options = {formatLength:'short'};
str= dojox.date.buddhist.locale.format(dateBuddhist, options);
dateBuddhist1 = dojox.date.buddhist.locale.parse(str, options);
t.is(0, dojo.date.compare(dateBuddhist.toGregorian(), dateBuddhist1.toGregorian(), 'date'));
var pat = 'dd/MM/yy h:m:s';
options = {datePattern:pat, selector:'date'};
str= dojox.date.buddhist.locale.format(dateBuddhist, options);
dateBuddhist1 = dojox.date.buddhist.locale.parse(str, options);
t.is(0, dojo.date.compare(dateBuddhist.toGregorian(), dateBuddhist1.toGregorian(), 'date'));
pat = 'dd#MM#yy HH$mm$ss';
options = {datePattern:pat, selector:'date'};
str= dojox.date.buddhist.locale.format(dateBuddhist, options);
dateBuddhist1 = dojox.date.buddhist.locale.parse(str, options);
t.is(0, dojo.date.compare(dateBuddhist.toGregorian(), dateBuddhist1.toGregorian(), 'date'));
pat = 'HH$mm$ss';
options = {timePattern:pat, selector:'time'};
str= dojox.date.buddhist.locale.format(dateBuddhist, options);
dateBuddhist1 = dojox.date.buddhist.locale.parse(str, options);
gregDate = dojo.date.locale.parse(str, options);
t.is(0, dojo.date.compare(gregDate, dateBuddhist1.toGregorian(), 'time'));
}
},
{
name: "addMilliseconds",
runTest: function(t){
var buddhistDates = [
[5771, 8, 21, 10, 30],
[5771, 8, 21, 2, 2],
[5771, 8, 21, 8, 10], // "absolute" index of month, non-leap year
[5771, 8, 21, 12, 59],
[5771, 8, 21, 3, 33]
];
var dates = [
[1432, 8, 21, 10, 30],
[1432, 8, 21, 2, 2],
[1432, 8, 21, 8, 10], // "absolute" index of month, non-leap year
[1432, 8, 21, 12, 59],
[1432, 8, 21, 3, 33]
];
var traceAttributes = function(date){
console.log("getHours():" + date.getHours()+" getMinutes():"+date.getMinutes()+" getSeconds():"+date.getSeconds()+" getMilliseconds():"+date.getMilliseconds());
};
var dateBuddhist, date2;
dojo.forEach(buddhistDates, function(date, i){
dateBuddhist = new dojox.date.buddhist.Date(date[0], date[1], date[2], date[3], date[4]);
date2 = new Date(dates[i][0], dates[i][1], dates[i][2], dates[i][3], dates[i][4]);
var newBuddhistDate = dojox.date.buddhist.add(dateBuddhist, "millisecond", 1200);
var newDate = dojo.date.add(date2, "millisecond", 1200);
t.is(newBuddhistDate.getHours(), newDate.getHours(), "Hours are different");
t.is(newBuddhistDate.getMinutes(), newDate.getMinutes(), "Minutes are different");
t.is(newBuddhistDate.getSeconds(), newDate.getSeconds(), "Seconds are different");
t.is(newBuddhistDate.getMilliseconds(), newDate.getMilliseconds(), "Milliseconds are different");
//traceAttributes(newBuddhistDate);
newBuddhistDate = dojox.date.buddhist.add(dateBuddhist, "millisecond", 12022);
newDate = dojo.date.add(date2, "millisecond", 12022);
t.is(newBuddhistDate.getHours(), newDate.getHours(), "Hours are different");
t.is(newBuddhistDate.getMinutes(), newDate.getMinutes(), "Minutes are different");
t.is(newBuddhistDate.getSeconds(), newDate.getSeconds(), "Seconds are different");
t.is(newBuddhistDate.getMilliseconds(), newDate.getMilliseconds(), "Milliseconds are different");
//traceAttributes(newBuddhistDate);
newBuddhistDate = dojox.date.buddhist.add(dateBuddhist, "millisecond", 120422);
newDate = dojo.date.add(date2, "millisecond", 120422);
t.is(newBuddhistDate.getHours(), newDate.getHours(), "Hours are different");
t.is(newBuddhistDate.getMinutes(), newDate.getMinutes(), "Minutes are different");
t.is(newBuddhistDate.getSeconds(), newDate.getSeconds(), "Seconds are different");
t.is(newBuddhistDate.getMilliseconds(), newDate.getMilliseconds(), "Milliseconds are different");
//traceAttributes(newBuddhistDate);
newBuddhistDate = dojox.date.buddhist.add(dateBuddhist, "millisecond", 1204422);
newDate = dojo.date.add(date2, "millisecond", 1204422);
t.is(newBuddhistDate.getHours(), newDate.getHours(), "Hours are different");
t.is(newBuddhistDate.getMinutes(), newDate.getMinutes(), "Minutes are different");
t.is(newBuddhistDate.getSeconds(), newDate.getSeconds(), "Seconds are different");
t.is(newBuddhistDate.getMilliseconds(), newDate.getMilliseconds(), "Milliseconds are different");
//traceAttributes(newBuddhistDate);
});
}
}
]
);