blob: 57c34d45f3a4ab7705e86e6ae9a5795211cf2661 [file] [log] [blame] [edit]
/*
* Copyright 2012 ZXing authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#import "ZXAddressBookParsedResultTestCase.h"
@implementation ZXAddressBookParsedResultTestCase
- (void)testAddressBookDocomo {
[self doTestWithContents:@"MECARD:N:Sean Owen;;"
title:nil
names:@[@"Sean Owen"]
pronunciation:nil
addresses:nil
emails:nil
phoneNumbers:nil
org:nil
urls:nil
birthday:nil
note:nil];
[self doTestWithContents:@"MECARD:NOTE:ZXing Team;N:Sean Owen;URL:google.com;EMAIL:srowen@example.org;;"
title:nil
names:@[@"Sean Owen"]
pronunciation:nil
addresses:nil
emails:@[@"srowen@example.org"]
phoneNumbers:nil
org:nil
urls:@[@"google.com"]
birthday:nil
note:@"ZXing Team"];
}
- (void)testAddressBookAU {
[self doTestWithContents:@"MEMORY:foo\r\nNAME1:Sean\r\nTEL1:+12125551212\r\n"
title:nil
names:@[@"Sean"]
pronunciation:nil
addresses:nil
emails:nil
phoneNumbers:@[@"+12125551212"]
org:nil
urls:nil
birthday:nil
note:@"foo"];
}
- (void)testVCard {
[self doTestWithContents:@"BEGIN:VCARD\r\nADR;HOME:123 Main St\r\nVERSION:2.1\r\nN:Owen;Sean\r\nEND:VCARD"
title:nil
names:@[@"Sean Owen"]
pronunciation:nil
addresses:@[@"123 Main St"]
emails:nil
phoneNumbers:nil
org:nil
urls:nil
birthday:nil
note:nil];
}
- (void)testVCardCaseInsensitive {
[self doTestWithContents:@"begin:vcard\r\nadr;HOME:123 Main St\r\nVersion:2.1\r\nn:Owen;Sean\r\nEND:VCARD"
title:nil
names:@[@"Sean Owen"]
pronunciation:nil
addresses:@[@"123 Main St"]
emails:nil
phoneNumbers:nil
org:nil
urls:nil
birthday:nil
note:nil];
}
- (void)testEscapedVCard {
[self doTestWithContents:@"BEGIN:VCARD\r\nADR;HOME:123\\;\\\\ Main\\, St\\nHome\r\nVERSION:2.1\r\nN:Owen;Sean\r\nEND:VCARD"
title:nil
names:@[@"Sean Owen"]
pronunciation:nil
addresses:@[@"123;\\ Main, St\nHome"]
emails:nil
phoneNumbers:nil
org:nil
urls:nil
birthday:nil
note:nil];
}
- (void)testBizcard {
[self doTestWithContents:@"BIZCARD:N:Sean;X:Owen;C:Google;A:123 Main St;M:+12125551212;E:srowen@example.org;"
title:nil
names:@[@"Sean Owen"]
pronunciation:nil
addresses:@[@"123 Main St"]
emails:@[@"srowen@example.org"]
phoneNumbers:@[@"+12125551212"]
org:@"Google"
urls:nil
birthday:nil
note:nil];
}
- (void)testSeveralAddresses {
[self doTestWithContents:@"MECARD:N:Foo Bar;ORG:Company;TEL:5555555555;EMAIL:foo.bar@xyz.com;ADR:City, 10001;"
@"ADR:City, 10001;NOTE:This is the memo.;;"
title:nil
names:@[@"Foo Bar"]
pronunciation:nil
addresses:@[@"City, 10001", @"City, 10001"]
emails:@[@"foo.bar@xyz.com"]
phoneNumbers:@[@"5555555555"]
org:@"Company"
urls:nil
birthday:nil
note:@"This is the memo."];
}
- (void)testQuotedPrintable {
[self doTestWithContents:@"BEGIN:VCARD\r\nADR;HOME;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:;;"
@"=38=38=20=4C=79=6E=62=72=6F=6F=6B=0D=0A=43=\r\n"
@"=4F=20=36=39=39=\r\n"
@"=39=39;;;\r\nEND:VCARD"
title:nil
names:nil
pronunciation:nil
addresses:@[@"88 Lynbrook\r\nCO 69999"]
emails:nil
phoneNumbers:nil
org:nil
urls:nil
birthday:nil
note:nil];
}
- (void)testVCardEscape {
[self doTestWithContents:@"BEGIN:VCARD\r\nNOTE:foo\\nbar\r\nEND:VCARD"
title:nil
names:nil
pronunciation:nil
addresses:nil
emails:nil
phoneNumbers:nil
org:nil
urls:nil
birthday:nil
note:@"foo\nbar"];
[self doTestWithContents:@"BEGIN:VCARD\r\nNOTE:foo\\;bar\r\nEND:VCARD"
title:nil
names:nil
pronunciation:nil
addresses:nil
emails:nil
phoneNumbers:nil
org:nil
urls:nil
birthday:nil
note:@"foo;bar"];
[self doTestWithContents:@"BEGIN:VCARD\r\nNOTE:foo\\\\bar\r\nEND:VCARD"
title:nil
names:nil
pronunciation:nil
addresses:nil
emails:nil
phoneNumbers:nil
org:nil
urls:nil
birthday:nil
note:@"foo\\bar"];
[self doTestWithContents:@"BEGIN:VCARD\r\nNOTE:foo\\,bar\r\nEND:VCARD"
title:nil
names:nil
pronunciation:nil
addresses:nil
emails:nil
phoneNumbers:nil
org:nil
urls:nil
birthday:nil
note:@"foo,bar"];
}
- (void)doTestWithContents:(NSString *)contents
title:(NSString *)title
names:(NSArray *)names
pronunciation:(NSArray *)pronunciation
addresses:(NSArray *)addresses
emails:(NSArray *)emails
phoneNumbers:(NSArray *)phoneNumbers
org:(NSString *)org
urls:(NSArray *)urls
birthday:(NSString *)birthday
note:(NSString *)note {
ZXResult *fakeResult = [ZXResult resultWithText:contents rawBytes:NULL length:0 resultPoints:nil format:kBarcodeFormatQRCode];
ZXParsedResult *result = [ZXResultParser parseResult:fakeResult];
STAssertEquals(kParsedResultTypeAddressBook, result.type, @"Result type mismatch");
ZXAddressBookParsedResult *addressResult = (ZXAddressBookParsedResult *)result;
STAssertEqualObjects(addressResult.title, title, @"Titles do not match");
STAssertEqualObjects(addressResult.names, names, @"Names do not match");
STAssertEqualObjects(addressResult.pronunciation, pronunciation, @"Pronunciation does not match");
STAssertEqualObjects(addressResult.addresses, addresses, @"Addresses do not match");
STAssertEqualObjects(addressResult.emails, emails, @"Emails do not match");
STAssertEqualObjects(addressResult.phoneNumbers, phoneNumbers, @"Phone numbers do not match");
STAssertEqualObjects(addressResult.org, org, @"Org does not match");
STAssertEqualObjects(addressResult.urls, urls, @"URLs do not match");
STAssertEqualObjects(addressResult.birthday, birthday, @"Birthday does not match");
STAssertEqualObjects(addressResult.note, note, @"Note does not match");
}
@end