Files
cappuccino/Tests/Foundation/CPDateFormatterTest.j
T

1428 lines
50 KiB
Plaintext

/* CPDateFormatterTest.j
* Foundation
*
* Created by Alexandre Wilhelm
* Copyright 2012 <alexandre.wilhelmfr@gmail.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
@import <Foundation/CPDateFormatter.j>
@import <Foundation/CPLocale.j>
@import <Foundation/CPDate.j>
@import <OJUnit/OJTestCase.j>
@global CPDateFormatterNoStyle
@global CPDateFormatterShortStyle
@global CPDateFormatterMediumStyle
@global CPDateFormatterLongStyle
@global CPDateFormatterFullStyle
@implementation CPDateFormatterTest : OJTestCase
{
CPDate _date;
CPDateFormatter _dateFormatter;
CPDateFormatter _nonEnDateFormatter;
}
- (void)setUp
{
_date = [[CPDate alloc] initWithString:@"2011-10-05 16:34:38 -0900"];
_dateFormatter = [[CPDateFormatter alloc] init];
[_dateFormatter setDateStyle:CPDateFormatterMediumStyle];
[_dateFormatter setTimeStyle:CPDateFormatterShortStyle];
[_dateFormatter setLocale:[[CPLocale alloc] initWithLocaleIdentifier:@"en_US"]];
[_dateFormatter setTimeZone:[CPTimeZone timeZoneWithAbbreviation:@"PDT"]];
_nonEnDateFormatter = [[CPDateFormatter alloc] init];
[_nonEnDateFormatter setLocale:[[CPLocale alloc] initWithLocaleIdentifier:@"pt"]];
}
#pragma mark -
#pragma mark Setter
- (void)testSetterAMSymbol
{
[_dateFormatter setAMSymbol:@"Hej hej"];
[self assert:[_dateFormatter AMSymbol] equals:@"Hej hej"];
}
- (void)testSetterPMSymbol
{
[_dateFormatter setPMSymbol:@"Hej hej"];
[self assert:[_dateFormatter PMSymbol] equals:@"Hej hej"];
}
- (void)testSetterWeekdaySymbols
{
[_dateFormatter setWeekdaySymbols:[@"Hej hej"]];
[self assert:[_dateFormatter weekdaySymbols] equals:[@"Hej hej"]];
}
- (void)testSetterShortWeekdaySymbols
{
[_dateFormatter setShortWeekdaySymbols:[@"Hej hej"]];
[self assert:[_dateFormatter shortWeekdaySymbols] equals:[@"Hej hej"]];
}
- (void)testSetterVeryShortWeekdaySymbols
{
[_dateFormatter setVeryShortWeekdaySymbols:[@"Hej hej"]];
[self assert:[_dateFormatter veryShortWeekdaySymbols] equals:[@"Hej hej"]];
}
- (void)testSetterStandaloneWeekdaySymbols
{
[_dateFormatter setStandaloneWeekdaySymbols:[@"Hej hej"]];
[self assert:[_dateFormatter standaloneWeekdaySymbols] equals:[@"Hej hej"]];
}
- (void)testSetterShortStandaloneWeekdaySymbols
{
[_dateFormatter setShortStandaloneWeekdaySymbols:[@"Hej hej"]];
[self assert:[_dateFormatter shortStandaloneWeekdaySymbols] equals:[@"Hej hej"]];
}
- (void)testSetterVeryShortStandaloneWeekdaySymbols
{
[_dateFormatter setVeryShortStandaloneWeekdaySymbols:[@"Hej hej"]];
[self assert:[_dateFormatter veryShortStandaloneWeekdaySymbols] equals:[@"Hej hej"]];
}
- (void)testSetterMonthSymbols
{
[_dateFormatter setMonthSymbols:[@"Hej hej"]];
[self assert:[_dateFormatter monthSymbols] equals:[@"Hej hej"]];
}
- (void)testSetterShortMonthSymbols
{
[_dateFormatter setShortMonthSymbols:[@"Hej hej"]];
[self assert:[_dateFormatter shortMonthSymbols] equals:[@"Hej hej"]];
}
- (void)testSetterVeryShortMonthSymbols
{
[_dateFormatter setVeryShortMonthSymbols:[@"Hej hej"]];
[self assert:[_dateFormatter veryShortMonthSymbols] equals:[@"Hej hej"]];
}
- (void)testSetterStandaloneMonthSymbols
{
[_dateFormatter setStandaloneMonthSymbols:[@"Hej hej"]];
[self assert:[_dateFormatter standaloneMonthSymbols] equals:[@"Hej hej"]];
}
- (void)testSetterShortStandaloneMonthSymbols
{
[_dateFormatter setShortStandaloneMonthSymbols:[@"Hej hej"]];
[self assert:[_dateFormatter shortStandaloneMonthSymbols] equals:[@"Hej hej"]];
}
- (void)testSetterVeryShortStandaloneMonthSymbols
{
[_dateFormatter setVeryShortStandaloneMonthSymbols:[@"Hej hej"]];
[self assert:[_dateFormatter veryShortStandaloneMonthSymbols] equals:[@"Hej hej"]];
}
- (void)testSetterQuarterSymbols
{
[_dateFormatter setQuarterSymbols:[@"Hej hej"]];
[self assert:[_dateFormatter quarterSymbols] equals:[@"Hej hej"]];
}
- (void)testSetterShortQuarterSymbols
{
[_dateFormatter setShortQuarterSymbols:[@"Hej hej"]];
[self assert:[_dateFormatter shortQuarterSymbols] equals:[@"Hej hej"]];
}
- (void)testSetterStandaloneQuarterSymbols
{
[_dateFormatter setStandaloneQuarterSymbols:[@"Hej hej"]];
[self assert:[_dateFormatter standaloneQuarterSymbols] equals:[@"Hej hej"]];
}
- (void)testSetterShortStandaloneQuarterSymbols
{
[_dateFormatter setShortStandaloneQuarterSymbols:[@"Hej hej"]];
[self assert:[_dateFormatter shortStandaloneQuarterSymbols] equals:[@"Hej hej"]];
}
#pragma mark -
#pragma mark string from date
- (void)testLocalizedStringFromDate
{
var result = [CPDateFormatter localizedStringFromDate:[[CPDate alloc] initWithString:@"2011-10-05 23:59:59 +1200"] dateStyle:CPDateFormatterMediumStyle timeStyle:CPDateFormatterNoStyle];
if (![[[CPLocale currentLocale] objectForKey:CPLocaleCountryCode] isEqualToString:@"US"])
[self assert:result equals:@"5 Oct 2011"];
else
[self assert:result equals:@"Oct 5, 2011"];
}
- (void)testInit
{
var dateFormatter = [[CPDateFormatter alloc] init],
result = [dateFormatter stringFromDate:_date];
[self assert:result.length equals:@"".length];
}
- (void)testInitWithDateFormat
{
var dateFormatter = [[CPDateFormatter alloc] initWithDateFormat:@"d EEEE, MMM, Y 'at' H:mm:ss a z" allowNaturalLanguage:NO];
[dateFormatter setLocale:[[CPLocale alloc] initWithLocaleIdentifier:@"en_US"]];
[dateFormatter setTimeZone:[CPTimeZone timeZoneWithAbbreviation:@"PDT"]];
var result = [dateFormatter stringFromDate:_date];
[self assert:result equals:@"5 Wednesday, Oct, 2011 at 18:34:38 PM PDT"]
}
- (void)testStringFromDateDateNoStyleTimeNoStyle
{
[_dateFormatter setDateStyle:CPDateFormatterNoStyle];
[_dateFormatter setTimeStyle:CPDateFormatterNoStyle];
var result = [_dateFormatter stringFromDate:_date];
[self assert:result.length equals:@"".length];
}
- (void)testStringFromDateDateShortStyleTimeNoStyle
{
[_dateFormatter setDateStyle:CPDateFormatterShortStyle];
[_dateFormatter setTimeStyle:CPDateFormatterNoStyle];
var result = [_dateFormatter stringFromDate:_date];
[self assert:result equals:@"10/5/11"];
}
- (void)testStringFromDateDateMediumStyleTimeNoStyle
{
[_dateFormatter setDateStyle:CPDateFormatterMediumStyle];
[_dateFormatter setTimeStyle:CPDateFormatterNoStyle];
var result = [_dateFormatter stringFromDate:_date];
[self assert:result equals:@"Oct 5, 2011"];
}
- (void)testStringFromDateDateLongStyleTimeNoStyle
{
[_dateFormatter setDateStyle:CPDateFormatterLongStyle];
[_dateFormatter setTimeStyle:CPDateFormatterNoStyle];
var result = [_dateFormatter stringFromDate:_date];
[self assert:result equals:@"October 5, 2011"];
}
- (void)testStringFromDateDateFullStyleTimeNoStyle
{
[_dateFormatter setDateStyle:CPDateFormatterFullStyle];
[_dateFormatter setTimeStyle:CPDateFormatterNoStyle];
var result = [_dateFormatter stringFromDate:_date];
[self assert:result equals:@"Wednesday, October 5, 2011"];
}
- (void)testStringFromDateDateNoStyleTimeShortStyle
{
[_dateFormatter setDateStyle:CPDateFormatterNoStyle];
[_dateFormatter setTimeStyle:CPDateFormatterShortStyle];
var result = [_dateFormatter stringFromDate:_date];
[self assert:result equals:@"6:34 PM"];
}
- (void)testStringFromDateDateNoStyleTimeMediumStyle
{
[_dateFormatter setDateStyle:CPDateFormatterNoStyle];
[_dateFormatter setTimeStyle:CPDateFormatterMediumStyle];
var result = [_dateFormatter stringFromDate:_date];
[self assert:result equals:@"6:34:38 PM"];
}
- (void)testStringFromDateDateNoStyleTimeLongStyle
{
[_dateFormatter setDateStyle:CPDateFormatterNoStyle];
[_dateFormatter setTimeStyle:CPDateFormatterLongStyle];
var result = [_dateFormatter stringFromDate:_date];
[self assert:result equals:@"6:34:38 PM PDT"];
}
- (void)testStringFromDateDateNoStyleTimeFullStyle
{
[_dateFormatter setDateStyle:CPDateFormatterNoStyle];
[_dateFormatter setTimeStyle:CPDateFormatterFullStyle];
var result = [_dateFormatter stringFromDate:_date];
[self assert:result equals:@"6:34:38 PM Pacific Daylight Time"];
}
- (void)testStringFromDateDateFullStyleTimeFullStyle
{
[_dateFormatter setDateStyle:CPDateFormatterFullStyle];
[_dateFormatter setTimeStyle:CPDateFormatterFullStyle];
var result = [_dateFormatter stringFromDate:_date];
[self assert:result equals:@"Wednesday, October 5, 2011 6:34:38 PM Pacific Daylight Time"];
}
- (void)testStringForObjectValueWithDate
{
[_dateFormatter setDateStyle:CPDateFormatterMediumStyle];
[_dateFormatter setTimeStyle:CPDateFormatterShortStyle];
var result = [_dateFormatter stringForObjectValue:_date];
[self assert:result equals:@"Oct 5, 2011 6:34 PM"];
}
- (void)testStringForObjectValueWithString
{
[_dateFormatter setDateStyle:CPDateFormatterMediumStyle];
[_dateFormatter setTimeStyle:CPDateFormatterShortStyle];
var result = [_dateFormatter stringForObjectValue:@"Test String"];
[self assert:result equals:nil];
}
- (void)testEditingStringForObjectValueWithDate
{
[_dateFormatter setDateStyle:CPDateFormatterMediumStyle];
[_dateFormatter setTimeStyle:CPDateFormatterShortStyle];
var result = [_dateFormatter editingStringForObjectValue:_date];
[self assert:result equals:@"Oct 5, 2011 6:34 PM"];
}
- (void)testDoesRelativeDateFormatting
{
[_dateFormatter setTimeStyle:CPDateFormatterNoStyle];
[_dateFormatter setDoesRelativeDateFormatting:YES];
var date = [CPDate date];
date.setDate(date.getDate() + 1);
var result = [_dateFormatter editingStringForObjectValue:date];
[self assert:result equals:@"tomorrow"];
date.setDate(date.getDate() - 2);
result = [_dateFormatter editingStringForObjectValue:date];
[self assert:result equals:@"yesterday"];
}
- (void)testStringFromDateTokensYears
{
[_dateFormatter setDateFormat:@"y yy yyy yyyy Y YY YYY YYYY"];
var result = [_dateFormatter stringFromDate:_date];
[self assert:result equals:@"2011 11 2011 2011 2011 11 2011 2011"];
}
- (void)testStringFromDateTokensQuarters
{
[_dateFormatter setDateFormat:@"Q QQ QQQ QQQQ q qq qqq qqqq"];
var result = [_dateFormatter stringFromDate:_date];
[self assert:result equals:@"4 04 Q4 4th quarter 4 04 Q4 4th quarter"];
}
- (void)testStringFromDateTokensMonths
{
[_dateFormatter setDateFormat:@"M MM MMM MMMM MMMMM L LL LLL LLLL LLLLL"];
var result = [_dateFormatter stringFromDate:_date];
[self assert:result equals:@"10 10 Oct October O 10 10 Oct October O"];
}
- (void)testStringFromDateTokensWeeks
{
[_dateFormatter setDateFormat:@"w ww W"];
var result = [_dateFormatter stringFromDate:_date];
[self assert:result equals:@"41 41 2"];
}
- (void)testStringFromDateTokensDays
{
[_dateFormatter setDateFormat:@"d dd D DD DDD F"];
var result = [_dateFormatter stringFromDate:_date];
[self assert:result equals:@"5 05 278 278 278 1"];
}
- (void)testStringFromDateTokensWeekDays
{
[_dateFormatter setDateFormat:@"E EE EEE EEEE EEEEE e ee eee eeee eeeee c cc ccc cccc ccccc"];
var result = [_dateFormatter stringFromDate:_date];
[self assert:result equals:@"Wed Wed Wed Wednesday W 4 04 Wed Wednesday W 4 4 Wed Wednesday W"];
}
- (void)testStringFromDateTokensPeriods
{
[_dateFormatter setDateFormat:@"a"];
var result = [_dateFormatter stringFromDate:_date];
[self assert:result equals:@"PM"];
_date = [[CPDate alloc] initWithString:@"2011-10-05 05:34:38 -0900"];
var result = [_dateFormatter stringFromDate:_date];
[self assert:result equals:@"AM"];
}
- (void)testStringFromDateTokensSeconds
{
[_dateFormatter setDateFormat:@"s ss S SS SSS SSSS A AA AAA AAAA"];
_date.setSeconds(8);
var result = [_dateFormatter stringFromDate:_date];
[self assert:result equals:@"8 08 0 00 000 0000 66848000 66848000 66848000 66848000"];
}
- (void)testStringFromDateTokensMinutes
{
[_dateFormatter setDateFormat:@"m mm"];
_date.setMinutes(5);
var result = [_dateFormatter stringFromDate:_date];
[self assert:result equals:@"5 05"];
}
- (void)testStringFromDateTokensHours
{
var date = [[CPDate alloc] initWithString:@"2011-10-05 22:34:08 -0900"];
[_dateFormatter setDateFormat:@"h hh HH k kk K KK"];
var result = [_dateFormatter stringFromDate:date];
[self assert:result equals:@"12 12 00 24 24 0 00"];
date = [[CPDate alloc] initWithString:@"2011-10-05 06:34:08 -0900"];
[_dateFormatter setDateFormat:@"h hh HH k kk K KK"];
result = [_dateFormatter stringFromDate:date];
[self assert:result equals:@"8 08 08 8 08 8 08"];
date = [[CPDate alloc] initWithString:@"2011-10-05 16:34:08 -0900"];
[_dateFormatter setDateFormat:@"h hh HH k kk K KK"];
var result = [_dateFormatter stringFromDate:date];
[self assert:result equals:@"6 06 18 18 18 6 06"];
}
- (void)testStringFromDateTokensZones
{
[_dateFormatter setDateFormat:@"z zz zzz zzzz Z ZZ ZZZ ZZZZ ZZZZ v vvvv V"];
var result = [_dateFormatter stringFromDate:_date];
[self assert:result equals:@"PDT PDT PDT Pacific Daylight Time -0700 -0700 -0700 GMT-07:00 GMT-07:00 PT Pacific Time PDT"];
}
#pragma mark -
#pragma mark Date From string
- (void)testDateFromStringToken
{
[_dateFormatter setDateFormat:@""];
var result = [_dateFormatter dateFromString:@""];
[self assert:[result isEqualToDate:[[CPDate alloc] initWithString:@"2000-01-01 00:00:00 +0000"]] equals:YES];
}
- (void)testDateFromStringTokeny
{
[_dateFormatter setDateFormat:@"y"];
var result = [_dateFormatter dateFromString:@"9"];
[self assert:[result isEqualToDate:[[CPDate alloc] initWithString:@"0009-01-01 08:00:00 +0000"]] equals:YES];
[_dateFormatter setDateFormat:@"yy"];
result = [_dateFormatter dateFromString:@"49"];
[self assert:[result isEqualToDate:[[CPDate alloc] initWithString:@"2049-01-01 08:00:00 +0000"]] equals:YES];
[_dateFormatter setDateFormat:@"yy"];
result = [_dateFormatter dateFromString:@"56"];
[self assert:[result isEqualToDate:[[CPDate alloc] initWithString:@"1956-01-01 08:00:00 +0000"]] equals:YES];
[_dateFormatter setDateFormat:@"yy"];
result = [_dateFormatter dateFromString:@"563"];
[self assert:[result isEqualToDate:[[CPDate alloc] initWithString:@"0563-01-01 08:00:00 +0000"]] equals:YES];
[_dateFormatter setDateFormat:@"yyy"];
result = [_dateFormatter dateFromString:@"563"];
[self assert:[result isEqualToDate:[[CPDate alloc] initWithString:@"0563-01-01 08:00:00 +0000"]] equals:YES];
[_dateFormatter setDateFormat:@"yyyy"];
result = [_dateFormatter dateFromString:@"2012"];
[self assert:[result isEqualToDate:[[CPDate alloc] initWithString:@"2012-01-01 08:00:00 +0000"]] equals:YES];
[_dateFormatter setDateFormat:@"y"];
var result = [_dateFormatter dateFromString:@"eze"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"yy"];
result = [_dateFormatter dateFromString:@"dezd"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"yyy"];
result = [_dateFormatter dateFromString:@"dezdez"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"yyyy"];
result = [_dateFormatter dateFromString:@"dezdezd"];
[self assert:result equals:nil];
}
- (void)testDateFromStringTokenY
{
[_dateFormatter setDateFormat:@"Y"];
var result = [_dateFormatter dateFromString:@"9"];
[self assert:result equals:[[CPDate alloc] initWithString:@"0009-01-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"YY"];
result = [_dateFormatter dateFromString:@"49"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2049-01-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"YY"];
result = [_dateFormatter dateFromString:@"56"];
[self assert:result equals:[[CPDate alloc] initWithString:@"1956-01-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"YY"];
result = [_dateFormatter dateFromString:@"563"];
[self assert:result equals:[[CPDate alloc] initWithString:@"0563-01-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"YYY"];
result = [_dateFormatter dateFromString:@"563"];
[self assert:result equals:[[CPDate alloc] initWithString:@"0563-01-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"YYYY"];
result = [_dateFormatter dateFromString:@"2012"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2012-01-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"Y"];
var result = [_dateFormatter dateFromString:@"eze"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"YY"];
result = [_dateFormatter dateFromString:@"dezd"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"YYY"];
result = [_dateFormatter dateFromString:@"dezdez"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"YYYY"];
result = [_dateFormatter dateFromString:@"dezdezd"];
[self assert:result equals:nil];
}
- (void)testDateFromStringTokenq
{
[_dateFormatter setDateFormat:@"q"];
var result = [_dateFormatter dateFromString:@"2"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-04-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"qq"];
var result = [_dateFormatter dateFromString:@"2"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-04-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"qqq"];
var result = [_dateFormatter dateFromString:@"Q3"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-07-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"qqqq"];
var result = [_dateFormatter dateFromString:@"2nd quarter"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-04-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"q"];
var result = [_dateFormatter dateFromString:@"12"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"q"];
var result = [_dateFormatter dateFromString:@"eze"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"qq"];
var result = [_dateFormatter dateFromString:@"12"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"qq"];
var result = [_dateFormatter dateFromString:@"zaz"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"qqq"];
var result = [_dateFormatter dateFromString:@"Q8"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"qqqq"];
var result = [_dateFormatter dateFromString:@"2nd quarteer"];
[self assert:result equals:nil];
}
- (void)testDateFromStringTokenQ
{
[_dateFormatter setDateFormat:@"Q"];
var result = [_dateFormatter dateFromString:@"2"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-04-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"QQ"];
var result = [_dateFormatter dateFromString:@"2"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-04-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"QQQ"];
var result = [_dateFormatter dateFromString:@"Q3"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-07-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"QQQQ"];
var result = [_dateFormatter dateFromString:@"2nd quarter"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-04-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"Q"];
var result = [_dateFormatter dateFromString:@"12"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"Q"];
var result = [_dateFormatter dateFromString:@"ezeze"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"QQ"];
var result = [_dateFormatter dateFromString:@"12"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"QQ"];
var result = [_dateFormatter dateFromString:@"zazasz"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"QQQ"];
var result = [_dateFormatter dateFromString:@"Q6"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"QQQQ"];
var result = [_dateFormatter dateFromString:@"2nd quarteereze"];
[self assert:result equals:nil];
}
- (void)testDateFromStringTokenM
{
[_dateFormatter setDateFormat:@"M"];
var result = [_dateFormatter dateFromString:@"10"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-10-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"M"];
var result = [_dateFormatter dateFromString:@"1"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"M"];
var result = [_dateFormatter dateFromString:@"12"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-12-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"MM"];
var result = [_dateFormatter dateFromString:@"7"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-07-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"MM"];
var result = [_dateFormatter dateFromString:@"1"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"MM"];
var result = [_dateFormatter dateFromString:@"12"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-12-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"MMM"];
var result = [_dateFormatter dateFromString:@"Sep"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-09-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"MMM"];
var result = [_dateFormatter dateFromString:@"Jan"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"MMM"];
var result = [_dateFormatter dateFromString:@"Dec"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-12-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"MMMM"];
var result = [_dateFormatter dateFromString:@"September"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-09-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"MMMM"];
var result = [_dateFormatter dateFromString:@"December"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-12-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"MMMM"];
var result = [_dateFormatter dateFromString:@"January"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"MMMMM"];
var result = [_dateFormatter dateFromString:@"S"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"M"];
var result = [_dateFormatter dateFromString:@"76"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"M"];
var result = [_dateFormatter dateFromString:@"ezeze"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"MM"];
var result = [_dateFormatter dateFromString:@"76"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"MM"];
var result = [_dateFormatter dateFromString:@"zdazdza"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"MMM"];
var result = [_dateFormatter dateFromString:@"Seepre"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"MMMM"];
var result = [_dateFormatter dateFromString:@"Septembeer"];
[self assert:result equals:nil];
}
- (void)testDateFromStringTokenL
{
[_dateFormatter setDateFormat:@"L"];
var result = [_dateFormatter dateFromString:@"10"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-10-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"L"];
var result = [_dateFormatter dateFromString:@"1"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"L"];
var result = [_dateFormatter dateFromString:@"12"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-12-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"LL"];
var result = [_dateFormatter dateFromString:@"7"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-07-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"LL"];
var result = [_dateFormatter dateFromString:@"1"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"LL"];
var result = [_dateFormatter dateFromString:@"12"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-12-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"LLL"];
var result = [_dateFormatter dateFromString:@"Sep"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-09-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"LLL"];
var result = [_dateFormatter dateFromString:@"Dec"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-12-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"LLL"];
var result = [_dateFormatter dateFromString:@"Jan"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"LLLL"];
var result = [_dateFormatter dateFromString:@"September"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-09-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"LLLL"];
var result = [_dateFormatter dateFromString:@"December"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-12-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"LLLL"];
var result = [_dateFormatter dateFromString:@"January"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"LLLLL"];
var result = [_dateFormatter dateFromString:@"S"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"L"];
var result = [_dateFormatter dateFromString:@"76"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"L"];
var result = [_dateFormatter dateFromString:@"dzadza"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"LL"];
var result = [_dateFormatter dateFromString:@"76"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"LL"];
var result = [_dateFormatter dateFromString:@"dzadza"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"LLL"];
var result = [_dateFormatter dateFromString:@"Seepre"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"LLLL"];
var result = [_dateFormatter dateFromString:@"Septemberezd"];
[self assert:result equals:nil];
}
- (void)testDateFromStringTokenw
{
[_dateFormatter setDateFormat:@"w"];
var result = [_dateFormatter dateFromString:@"26"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-06-24 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"w"];
var result = [_dateFormatter dateFromString:@"76"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"w"];
var result = [_dateFormatter dateFromString:@"dzadza"];
[self assert:result equals:nil];
}
- (void)testDateFromStringTokenW
{
[_dateFormatter setDateFormat:@"W"];
var result = [_dateFormatter dateFromString:@"2"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-08 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"W LL"];
var result = [_dateFormatter dateFromString:@"2 7"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-07-08 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"W"];
var result = [_dateFormatter dateFromString:@"76"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"W"];
var result = [_dateFormatter dateFromString:@"dzadzad"];
[self assert:result equals:nil];
}
- (void)testDateFromStringTokend
{
[_dateFormatter setDateFormat:@"d"];
var result = [_dateFormatter dateFromString:@"6"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-06 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"dd"];
var result = [_dateFormatter dateFromString:@"16"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-16 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"d LL"];
var result = [_dateFormatter dateFromString:@"6 7"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-07-06 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"ddd"];
var result = [_dateFormatter dateFromString:@"6"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-06 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"ddd"];
var result = [_dateFormatter dateFromString:@"62"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"ddd"];
var result = [_dateFormatter dateFromString:@"dzadza"];
[self assert:result equals:nil];
}
- (void)testDateFromStringTokenD
{
[_dateFormatter setDateFormat:@"D"];
var result = [_dateFormatter dateFromString:@"76"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-03-16 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"D"];
var result = [_dateFormatter dateFromString:@"1076"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"D"];
var result = [_dateFormatter dateFromString:@"dzeezd"];
[self assert:result equals:nil];
}
- (void)testDateFromStringTokenF
{
[_dateFormatter setDateFormat:@"F"];
var result = [_dateFormatter dateFromString:@"2"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-08 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"F"];
var result = [_dateFormatter dateFromString:@"23"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"F"];
var result = [_dateFormatter dateFromString:@"dezdez"];
[self assert:result equals:nil];
}
- (void)testDateFromStringTokenE
{
// No logic in cocoa (or I didn't get it :/)
[_dateFormatter setDateFormat:@"EEE"];
var result = [_dateFormatter dateFromString:@"Tue"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"EEEE"];
var result = [_dateFormatter dateFromString:@"Tuesday"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"EEEEE"];
var result = [_dateFormatter dateFromString:@"T"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"EEE"];
var result = [_dateFormatter dateFromString:@"dehez"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"EEEE"];
var result = [_dateFormatter dateFromString:@"dehez"];
[self assert:result equals:nil];
}
- (void)testDateFromStringTokene
{
// No logic in cocoa (or I didn't get it :/)
[_dateFormatter setDateFormat:@"ee"];
var result = [_dateFormatter dateFromString:@"1"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"eee"];
var result = [_dateFormatter dateFromString:@"Tue"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"eeee"];
var result = [_dateFormatter dateFromString:@"Tuesday"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"eeeee"];
var result = [_dateFormatter dateFromString:@"T"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"ee"];
var result = [_dateFormatter dateFromString:@"frefre"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"eee"];
var result = [_dateFormatter dateFromString:@"dehez"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"eeee"];
var result = [_dateFormatter dateFromString:@"dehez"];
[self assert:result equals:nil];
}
- (void)testDateFromStringTokenc
{
// No logic in cocoa (or I didn't get it :/)
[_dateFormatter setDateFormat:@"cc"];
var result = [_dateFormatter dateFromString:@"1"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"ccc"];
var result = [_dateFormatter dateFromString:@"Tue"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"cccc"];
var result = [_dateFormatter dateFromString:@"Tuesday"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"ccccc"];
var result = [_dateFormatter dateFromString:@"T"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"cc"];
var result = [_dateFormatter dateFromString:@"dezde"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"ccc"];
var result = [_dateFormatter dateFromString:@"dehez"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"cccc"];
var result = [_dateFormatter dateFromString:@"dehez"];
[self assert:result equals:nil];
}
- (void)testDateFromStringTokena
{
[_dateFormatter setDateFormat:@"a"];
var result = [_dateFormatter dateFromString:@"PM"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 20:00:00 +0000"]];
[_dateFormatter setDateFormat:@"a"];
var result = [_dateFormatter dateFromString:@"AM"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"a"];
var result = [_dateFormatter dateFromString:@"PdM"];
[self assert:result equals:nil];
}
- (void)testDateFromStringTokenh
{
[_dateFormatter setDateFormat:@"h"];
var result = [_dateFormatter dateFromString:@"11"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 19:00:00 +0000"]];
[_dateFormatter setDateFormat:@"hh"];
var result = [_dateFormatter dateFromString:@"3"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 11:00:00 +0000"]];
[_dateFormatter setDateFormat:@"hh"];
var result = [_dateFormatter dateFromString:@"0"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"hh a"];
var result = [_dateFormatter dateFromString:@"3 PM"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 23:00:00 +0000"]];
[_dateFormatter setDateFormat:@"hh a"];
var result = [_dateFormatter dateFromString:@"3 AM"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 11:00:00 +0000"]];
[_dateFormatter setDateFormat:@"hh"];
var result = [_dateFormatter dateFromString:@"13"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"hh"];
var result = [_dateFormatter dateFromString:@"edze"];
[self assert:result equals:nil];
}
- (void)testDateFromStringTokenH
{
[_dateFormatter setDateFormat:@"H"];
var result = [_dateFormatter dateFromString:@"18"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-02 02:00:00 +0000"]];
[_dateFormatter setDateFormat:@"HH"];
var result = [_dateFormatter dateFromString:@"3"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 11:00:00 +0000"]];
[_dateFormatter setDateFormat:@"HH a"];
var result = [_dateFormatter dateFromString:@"2 PM"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 22:00:00 +0000"]];
[_dateFormatter setDateFormat:@"HH"];
var result = [_dateFormatter dateFromString:@"24"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"HH"];
var result = [_dateFormatter dateFromString:@"dezdez"];
[self assert:result equals:nil];
}
- (void)testDateFromStringTokenK
{
[_dateFormatter setDateFormat:@"K"];
var result = [_dateFormatter dateFromString:@"11"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 19:00:00 +0000"]];
[_dateFormatter setDateFormat:@"KK"];
var result = [_dateFormatter dateFromString:@"3"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 11:00:00 +0000"]];
[_dateFormatter setDateFormat:@"KK"];
var result = [_dateFormatter dateFromString:@"0"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"KK a"];
var result = [_dateFormatter dateFromString:@"3 PM"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 23:00:00 +0000"]];
[_dateFormatter setDateFormat:@"KK a"];
var result = [_dateFormatter dateFromString:@"3 AM"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 11:00:00 +0000"]];
[_dateFormatter setDateFormat:@"KK"];
var result = [_dateFormatter dateFromString:@"13"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"KK"];
var result = [_dateFormatter dateFromString:@"dezdez"];
[self assert:result equals:nil];
}
- (void)testDateFromStringTokenk
{
[_dateFormatter setDateFormat:@"k"];
var result = [_dateFormatter dateFromString:@"11"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 19:00:00 +0000"]];
[_dateFormatter setDateFormat:@"kk"];
var result = [_dateFormatter dateFromString:@"3"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 11:00:00 +0000"]];
[_dateFormatter setDateFormat:@"kk"];
var result = [_dateFormatter dateFromString:@"0"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"kk a"];
var result = [_dateFormatter dateFromString:@"3 PM"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 23:00:00 +0000"]];
[_dateFormatter setDateFormat:@"kk"];
var result = [_dateFormatter dateFromString:@"13"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"kk"];
var result = [_dateFormatter dateFromString:@"dezdezd"];
[self assert:result equals:nil];
}
- (void)testDateFromStringTokenm
{
[_dateFormatter setDateFormat:@"m"];
var result = [_dateFormatter dateFromString:@"11"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:11:00 +0000"]];
[_dateFormatter setDateFormat:@"mm"];
var result = [_dateFormatter dateFromString:@"11"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:11:00 +0000"]]
[_dateFormatter setDateFormat:@"mm"];
var result = [_dateFormatter dateFromString:@"61"];
[self assert:result equals:nil]
[_dateFormatter setDateFormat:@"mm"];
var result = [_dateFormatter dateFromString:@"ezdezd"];
[self assert:result equals:nil]
}
- (void)testDateFromStringTokens
{
[_dateFormatter setDateFormat:@"s"];
var result = [_dateFormatter dateFromString:@"11"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:11 +0000"]];
[_dateFormatter setDateFormat:@"ss"];
var result = [_dateFormatter dateFromString:@"4"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:04 +0000"]]
[_dateFormatter setDateFormat:@"ss"];
var result = [_dateFormatter dateFromString:@"64"];
[self assert:result equals:nil]
[_dateFormatter setDateFormat:@"ss"];
var result = [_dateFormatter dateFromString:@"dezdez"];
[self assert:result equals:nil]
}
- (void)testDateFromStringTokenS
{
// No logic in cocoa (or I didn't get it :/)
[_dateFormatter setDateFormat:@"SSS"];
var result = [_dateFormatter dateFromString:@"21212"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 08:00:00 +0000"]];
[_dateFormatter setDateFormat:@"SSS"];
var result = [_dateFormatter dateFromString:@"rer"];
[self assert:result equals:nil];
}
- (void)testDateFromStringTokenA
{
[_dateFormatter setDateFormat:@"AAAAAAAA"];
var result = [_dateFormatter dateFromString:@"69540000"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-02 03:19:00 +0000"]];
[_dateFormatter setDateFormat:@"AAAAAAAA"];
var result = [_dateFormatter dateFromString:@"ezde"];
[self assert:result equals:nil];
}
- (void)testDataFromStringTokenz
{
[_dateFormatter setDateFormat:@"hh zzz"];
var result = [_dateFormatter dateFromString:@"10 PDT"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 17:00:00 +0000"]];
[_dateFormatter setDateFormat:@"hh zzzz"];
var result = [_dateFormatter dateFromString:@"10 GMT+08:35"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 01:25:00 +0000"]];
[_dateFormatter setDateFormat:@"zzz"];
var result = [_dateFormatter dateFromString:@"PezST"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"zzzz"];
var result = [_dateFormatter dateFromString:@"dehez"];
[self assert:result equals:nil];
}
- (void)testDataFromStringTokenZ
{
[_dateFormatter setDateFormat:@"hh ZZZ"];
var result = [_dateFormatter dateFromString:@"10 -0600"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 16:00:00 +0000"]];
[_dateFormatter setDateFormat:@"hh ZZZZ"];
var result = [_dateFormatter dateFromString:@"10 GMT-05:00"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 15:00:00 +0000"]];
[_dateFormatter setDateFormat:@"hh ZZZZZ"];
var result = [_dateFormatter dateFromString:@"10 +04:00"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 06:00:00 +0000"]];
[_dateFormatter setDateFormat:@"ZZZ"];
var result = [_dateFormatter dateFromString:@"dehez"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"ZZZZ"];
var result = [_dateFormatter dateFromString:@"dehez"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"ZZZZZ"];
var result = [_dateFormatter dateFromString:@"dehez"];
[self assert:result equals:nil];
}
//
- (void)testDataFromStringTokenv
{
[_dateFormatter setDateFormat:@"hh v"];
var result = [_dateFormatter dateFromString:@"02 PT"];
// As the CPTimeZone does not care about daylight saving time. The 'PT' time zone can result in 'PST' or 'PDT'.
// The assert below can be any of the two version depending which time zone abbreviation CPDictionary 'keyEnumerator'
// will return first. This behaviour is undefined.
if ([[CPTimeZone _timeZoneFromString:@"PT" style:CPTimeZoneNameStyleShortGeneric locale:[_dateFormatter locale]] abbreviation] === @"PDT")
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 09:00:00 +0000"]];
else
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 10:00:00 +0000"]];
[_dateFormatter setDateFormat:@"hh vvvv"];
var result = [_dateFormatter dateFromString:@"8 GMT-08:35"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 16:35:00 +0000"]];
[_dateFormatter setDateFormat:@"v"];
var result = [_dateFormatter dateFromString:@"PezST"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"vvvv"];
var result = [_dateFormatter dateFromString:@"dehez"];
[self assert:result equals:nil];
}
- (void)testDataFromStringTokenV
{
[_dateFormatter setDateFormat:@"hh V"];
var result = [_dateFormatter dateFromString:@"6 PST"];
[self assert:result equals:[[CPDate alloc] initWithString:@"2000-01-01 14:00:00 +0000"]];
[_dateFormatter setDateFormat:@"hh VVVV"];
var result = [_dateFormatter dateFromString:@"6 GMT+06:35"];
[self assert:result equals:[[CPDate alloc] initWithString:@"1999-12-31 23:25:00 +0000"]];
[_dateFormatter setDateFormat:@"V"];
var result = [_dateFormatter dateFromString:@"PezST"];
[self assert:result equals:nil];
[_dateFormatter setDateFormat:@"VVVV"];
var result = [_dateFormatter dateFromString:@"dehez"];
[self assert:result equals:nil];
}
- (void)testGetObjectValueAcceptsNilErrorDescription
{
var date = nil,
result = [_dateFormatter getObjectValue:@ref(date) forString:@"a" errorDescription:nil];
[self assertFalse:result];
[self assertTrue:date === nil];
}
- (void)testGetObjectValueForEmptyStringReturnsReferenceDate
{
[_dateFormatter setDateFormat:@"d mm"];
var date = nil,
error = @"",
result = [_dateFormatter getObjectValue:@ref(date) forString:@"" errorDescription:@ref(error)];
[self assertTrue:result];
[self assert:[[CPDate alloc] initWithString:@"2000-01-01 00:00:00 +0000"] equals:date];
[self assert:error equals:@""];
}
- (void)testGetObjectValueReturnYes
{
[_dateFormatter setDateFormat:@"d mm"];
var date = nil,
error = @"",
result = [_dateFormatter getObjectValue:@ref(date) forString:@"10 12" errorDescription:@ref(error)];
[self assertTrue:result];
[self assert:date equals:[[CPDate alloc] initWithString:@"2000-01-10 08:12:00 +0000"]];
[self assert:error equals:@""];
}
- (void)testGetObjectValueReturnNo
{
[_dateFormatter setDateFormat:@"d mm"];
var date = nil,
error = @"",
result = [_dateFormatter getObjectValue:@ref(date) forString:@"ezr 12" errorDescription:@ref(error)];
[self assert:result equals:NO];
[self assert:date equals:nil];
[self assert:error equals:@"The value \"ezr 12\" is invalid."];
}
#pragma mark -
#pragma mark non-en locales
// Unless we have full locale support any non-supported locale should return the english values as they are the only defined ones at the moment.
- (void)testGetNonEnAMSymbol
{
var enValue = [_dateFormatter AMSymbol],
value = [_nonEnDateFormatter AMSymbol];
[self assert:enValue equals:value];
}
- (void)testGetNonEnPMSymbol
{
var enValue = [_dateFormatter PMSymbol],
value = [_nonEnDateFormatter PMSymbol];
[self assert:enValue equals:value];
}
- (void)testGetNonEnWeekdaySymbols
{
var enValue = [_dateFormatter weekdaySymbols],
value = [_nonEnDateFormatter weekdaySymbols];
[self assert:enValue equals:value];
}
- (void)testGetNonEnShortWeekdaySymbols
{
var enValue = [_dateFormatter shortWeekdaySymbols],
value = [_nonEnDateFormatter shortWeekdaySymbols];
[self assert:enValue equals:value];
}
- (void)testGetNonEnVeryShortWeekdaySymbols
{
var enValue = [_dateFormatter veryShortWeekdaySymbols],
value = [_nonEnDateFormatter veryShortWeekdaySymbols];
[self assert:enValue equals:value];
}
- (void)testGetNonEnStandaloneWeekdaySymbols
{
var enValue = [_dateFormatter standaloneWeekdaySymbols],
value = [_nonEnDateFormatter standaloneWeekdaySymbols];
[self assert:enValue equals:value];
}
- (void)testGetNonEnShortStandaloneWeekdaySymbols
{
var enValue = [_dateFormatter shortStandaloneWeekdaySymbols],
value = [_nonEnDateFormatter shortStandaloneWeekdaySymbols];
[self assert:enValue equals:value];
}
- (void)testGetNonEnVeryShortStandaloneWeekdaySymbols
{
var enValue = [_dateFormatter veryShortStandaloneWeekdaySymbols],
value = [_nonEnDateFormatter veryShortStandaloneWeekdaySymbols];
[self assert:enValue equals:value];
}
- (void)testGetNonEnMonthSymbols
{
var enValue = [_dateFormatter monthSymbols],
value = [_nonEnDateFormatter monthSymbols];
[self assert:enValue equals:value];
}
- (void)testGetNonEnShortMonthSymbols
{
var enValue = [_dateFormatter shortMonthSymbols],
value = [_nonEnDateFormatter shortMonthSymbols];
[self assert:enValue equals:value];
}
- (void)testGetNonEnVeryShortMonthSymbols
{
var enValue = [_dateFormatter veryShortMonthSymbols],
value = [_nonEnDateFormatter veryShortMonthSymbols];
[self assert:enValue equals:value];
}
- (void)testGetNonEnStandaloneMonthSymbols
{
var enValue = [_dateFormatter standaloneMonthSymbols],
value = [_nonEnDateFormatter standaloneMonthSymbols];
[self assert:enValue equals:value];
}
- (void)testGetNonEnShortStandaloneMonthSymbols
{
var enValue = [_dateFormatter shortStandaloneMonthSymbols],
value = [_nonEnDateFormatter shortStandaloneMonthSymbols];
[self assert:enValue equals:value];
}
- (void)testGetNonEnVeryShortStandaloneMonthSymbols
{
var enValue = [_dateFormatter veryShortStandaloneMonthSymbols],
value = [_nonEnDateFormatter veryShortStandaloneMonthSymbols];
[self assert:enValue equals:value];
}
- (void)testGetNonEnQuarterSymbols
{
var enValue = [_dateFormatter quarterSymbols],
value = [_nonEnDateFormatter quarterSymbols];
[self assert:enValue equals:value];
}
- (void)testGetNonEnShortQuarterSymbols
{
var enValue = [_dateFormatter shortQuarterSymbols],
value = [_nonEnDateFormatter shortQuarterSymbols];
[self assert:enValue equals:value];
}
- (void)testGetNonEnStandaloneQuarterSymbols
{
var enValue = [_dateFormatter standaloneQuarterSymbols],
value = [_nonEnDateFormatter standaloneQuarterSymbols];
[self assert:enValue equals:value];
}
- (void)testGetNonEnShortStandaloneQuarterSymbols
{
var enValue = [_dateFormatter shortStandaloneQuarterSymbols],
value = [_nonEnDateFormatter shortStandaloneQuarterSymbols];
[self assert:enValue equals:value];
}
@end