package com.adobe.utils
{
import flexunit.framework.TestCase;
import mx.formatters.DateBase;
public class DateUtilTest extends TestCase
{
public function DateUtilTest(methodName:String = null)
{
super(methodName);
}
public function testToW3CDTF():void
{
var s:String = "1994-11-05T08:15:30-08:00";
var d:Date = DateUtil.parseW3CDTF(s);
assertTrue(s + " == 1994-11-05T16:15:30-00:00",
DateUtil.toW3CDTF(d) == "1994-11-05T16:15:30-00:00");
}
public function testToW3CDTFWithMilliseconds():void
{
var s1:String = "1994-11-05T08:15:30.345-00:00";
var d:Date = DateUtil.parseW3CDTF(s1);
var s2:String = DateUtil.toW3CDTF(d,false);
var s3:String = DateUtil.toW3CDTF(d,true);
assertTrue(s1 + " != " + s2, s1 != s2);
assertTrue(s1 + " == " + s3, s1 == s3);
}
public function testParseW3CDTF():void
{
var s:String = "1994-11-05T08:15:30.123456-08:00";
var d:Date = DateUtil.parseW3CDTF(s);
assertNotNull("d is null", d);
assertTrue("d.date == 5",d.date == 5);
assertTrue("d.month == 10", d.month == 10); assertTrue("d.fullYear == 1994", d.fullYear == 1994);
assertTrue("d.hoursUTC == 16", d.hoursUTC == 16 );
assertTrue("d.minutes == 15", d.minutes == 15);
assertTrue("d.seconds == 30", d.seconds == 30);
}
public function testParseW3CDTFWithMilliseconds():void
{
var s:String = "1994-11-05T08:15:30.345-08:00";
var d:Date = DateUtil.parseW3CDTF(s);
assertNotNull("d is null", d);
assertTrue("d.date == 5",d.date == 5);
assertTrue("d.month == 10", d.month == 10); assertTrue("d.fullYear == 1994", d.fullYear == 1994);
assertTrue("d.hoursUTC == 16", d.hoursUTC == 16 );
assertTrue("d.minutes == 15", d.minutes == 15);
assertTrue("d.seconds == 30", d.seconds == 30);
assertTrue("d.milliseconds == 345", d.milliseconds == 345);
var s2:String = "1994-9-5T8:15:30.345-8:00";
var d2:Date = DateUtil.parseW3CDTF(s2);
assertNotNull("d2 is null", d2);
assertTrue("d2.date == 5",d2.date == 5);
assertTrue("d2.month == 10", d2.month == 8); assertTrue("d2.fullYear == 1994", d2.fullYear == 1994);
assertTrue("d2.hoursUTC == 16", d2.hoursUTC == 16 );
assertTrue("d2.minutes == 15", d2.minutes == 15);
assertTrue("d2.seconds == 30", d2.seconds == 30);
assertTrue("d2.milliseconds == 345", d2.milliseconds == 345);
}
public function testW3CDTF():void
{
var d1:Date = new Date();
d1.setMilliseconds(0);
var s:String = DateUtil.toW3CDTF(d1);
var d2:Date = DateUtil.parseW3CDTF(s);
assertTrue("DateUtil.compareDates(d1, d2) == 0",
DateUtil.compareDates(d1, d2) == 0);
}
public function testRFC822():void
{
var d1:Date = new Date();
d1.setMilliseconds(0);
var s:String = DateUtil.toRFC822(d1);
var d2:Date = DateUtil.parseRFC822(s);
assertTrue("DateUtil.compareDates(d1, d2) == 0",
DateUtil.compareDates(d1, d2) == 0);
}
public function testToRFC822():void
{
var d:Date = new Date(Date.UTC(2005,0,1,1,1,1,0));
assertTrue("DateUtil.toRFC822(d) == \"Sat, 01 Jan 2005 01:01:01 GMT\"",
DateUtil.toRFC822(d) == "Sat, 01 Jan 2005 01:01:01 GMT");
}
public function testGetAMPM():void
{
var d:Date = new Date(2005,1,1);
d.hours = 7;
assertTrue("DateUtil.getAMPM(d) == \"AM\"",
DateUtil.getAMPM(d) == "AM");
d.hours = 23;
assertTrue("DateUtil.getAMPM(d) == \"PM\"",
DateUtil.getAMPM(d) == "PM");
d.hours = 12;
assertTrue("DateUtil.getAMPM(d) == \"PM\"",
DateUtil.getAMPM(d) == "PM");
d.hours = 11;
assertTrue("DateUtil.getAMPM(d) == \"AM\"",
DateUtil.getAMPM(d) == "AM");
d.hours = 0;
assertTrue("DateUtil.getAMPM(d) == \"AM\"",
DateUtil.getAMPM(d) == "AM");
d.hours = 13;
assertTrue("DateUtil.getAMPM(d) == \"PM\"",
DateUtil.getAMPM(d) == "PM");
}
public function testGetShortHours():void
{
var d:Date = new Date(2005,1,1);
d.hours = 7;
assertTrue("DateUtil.getShortHour(d) == 7",
DateUtil.getShortHour(d) == 7);
d.hours = 23;
assertTrue("DateUtil.getShortHour(d) == 11",
DateUtil.getShortHour(d) == 11);
d.hours = 12;
assertTrue("DateUtil.getShortHour(d) == 12",
DateUtil.getShortHour(d) == 12);
d.hours = 0;
assertTrue("DateUtil.getShortHour(d) == 12",
DateUtil.getShortHour(d) == 12);
d.hours = 13;
assertTrue("DateUtil.getShortHour(d) == 1",
DateUtil.getShortHour(d) == 1);
}
public function testParseRFC822():void
{
var s:String = "Mon, 05 Dec 2005 14:55:43 -0800";
var d:Date = DateUtil.parseRFC822(s);
assertNotNull("d is null", d);
assertTrue("d.date == 5",d.date == 5);
assertTrue("d.month == 11", d.month == 11);
assertTrue("d.fullYear == 2005", d.fullYear == 2005);
assertTrue("d.hoursUTC == 22", d.hoursUTC == 22 );
assertTrue("d.minutes == 55", d.minutes == 55);
assertTrue("d.seconds == 43", d.seconds == 43);
var exception:Boolean = false;
try
{
DateUtil.parseRFC822("foo");
}
catch(e:Error)
{
exception = true;
}
if(!exception)
{
assertTrue("DateUtil.parseRFC822(\"foo\") did not throw an exception.", false);
}
var s2:String = "Mon, 5 Dec 2005 9:55:43 -0800";
var d2:Date = DateUtil.parseRFC822(s2);
assertNotNull("d is null", d2);
assertTrue("d2.date == 5",d2.date == 5);
assertTrue("d2.month == 11", d2.month == 11);
assertTrue("d2.fullYear == 2005", d2.fullYear == 2005);
assertTrue("d2.hoursUTC == 22", d2.hoursUTC == 17);
assertTrue("d2.minutes == 55", d2.minutes == 55);
assertTrue("d2.seconds == 43", d2.seconds == 43);
}
public function testCompareDates():void
{
var d1:Date = new Date(2005,0,1,1,1,1,1);
var d2:Date = new Date(2006,0,1,1,1,1,1);
var d4:Date = new Date(2005,0,1,1,1,1,1);
assertTrue("DateUtil.compareDates(d1, d2) == 1",
DateUtil.compareDates(d1, d2) == 1);
assertTrue("DateUtil.compareDates(d2, d1) == -1",
DateUtil.compareDates(d2, d1) == -1);
assertTrue("DateUtil.compareDates(d1, d1) == 0",
DateUtil.compareDates(d1, d1) == 0);
assertTrue("DateUtil.compareDates(d1, d4) == 0",
DateUtil.compareDates(d1, d4) == 0);
}
public function testGetShortYear():void
{
var d:Date = new Date(2005);
d.fullYear = 2005;
assertTrue("DateUtil.getShortYear(d) == \"05\"",
DateUtil.getShortYear(d) == "05");
d.fullYear = 2000;
assertTrue("DateUtil.getShortYear(d) == \"00\"",
DateUtil.getShortYear(d) == "00");
d.fullYear = 1900;
assertTrue("DateUtil.getShortYear(d) == \"00\"",
DateUtil.getShortYear(d) == "00");
d.fullYear = 21501;
assertTrue("DateUtil.getShortYear(d) == \"01\"",
DateUtil.getShortYear(d) == "01");
d.fullYear = 10;
assertTrue("DateUtil.getShortYear(d) == \"10\"",
DateUtil.getShortYear(d) == "10");
d.fullYear = 7;
assertTrue("DateUtil.getShortYear(d) == \"7\"",
DateUtil.getShortYear(d) == "7");
}
public function testGetFullDayIndex():void
{
var len:int = DateBase.dayNamesLong.length;
for(var i:int = 0; i < len; i++)
{
assertTrue("DateUtil.getFullDayIndex(DateBase.dayNamesLong["+i+"]) == i",
DateUtil.getFullDayIndex(DateBase.dayNamesLong[i]) == i);
}
}
public function testGetFullMonthIndex():void
{
var len:int = DateBase.monthNamesLong.length;
for(var i:int = 0; i < len; i++)
{
assertTrue("DateUtil.getFullMonthIndex(DateBase.monthNamesLong["+i+"]) == i",
DateUtil.getFullMonthIndex(DateBase.monthNamesLong[i]) == i);
}
}
public function testGetFullDayName():void
{
var d:Date;
var len:int = DateBase.dayNamesLong.length;
for(var i:uint = 0; i < len; i++)
{
d = new Date(2005,11, i + 4);
assertTrue("DateUtil.getFullDayName(d) == DateBase.dayNamesLong["+i+"]",
DateUtil.getFullDayName(d) == DateBase.dayNamesLong[i]);
}
}
public function testGetFullMonthName():void
{
var d:Date;
var len:int = DateBase.monthNamesLong.length;
for(var i:uint = 0; i < len; i++)
{
d = new Date(2005,i);
assertTrue("DateUtil.getFullMonthName(d) == DateBase.monthNamesLong["+i+"]",
DateUtil.getFullMonthName(d) == DateBase.monthNamesLong[i]);
}
}
public function testGetShortDayIndex():void
{
var len:int = DateBase.dayNamesShort.length;
for(var i:int = 0; i < len; i++)
{
assertTrue("DateUtil.getShortDayIndex(DateBase.dayNamesShort["+i+"]) == i",
DateUtil.getShortDayIndex(DateBase.dayNamesShort[i]) == i);
}
}
public function testGetShortMonthIndex():void
{
var len:int = DateBase.monthNamesShort.length;
for(var i:int = 0; i < len; i++)
{
assertTrue("DateUtil.getShortMonthIndex(DateBase.monthNamesShort["+i+"]) == i",
DateUtil.getShortMonthIndex(DateBase.monthNamesShort[i]) == i);
}
}
public function testGetShortDayName():void
{
var d:Date;
var len:int = DateBase.dayNamesShort.length;
for(var i:uint = 0; i < len; i++)
{
d = new Date(2005,11, i + 4);
assertTrue("DateUtil.getShortDayName(d) == DateBase.dayNamesShort["+i+"]",
DateUtil.getShortDayName(d) == DateBase.dayNamesShort[i]);
}
}
public function testGetShortMonthName():void
{
var d:Date;
var len:int = DateBase.monthNamesShort.length;
for(var i:uint = 0; i < len; i++)
{
d = new Date(2005,i);
assertTrue("DateUtil.getShortMonthName(d) == DateBase.monthNamesShort["+i+"]",
DateUtil.getShortMonthName(d) == DateBase.monthNamesShort[i]);
}
}
}
}