use of ezvcard.property.Photo in project ez-vcard by mangstadt.
the class VCardWriterTest method setTargetApplication_outlook.
@Test
public void setTargetApplication_outlook() throws Throwable {
VCard vcard = new VCard();
byte[] data = "foobar".getBytes();
vcard.addKey(new Key(data, KeyType.X509));
vcard.addPhoto(new Photo(data, ImageType.JPEG));
vcard.addLogo(new Logo("http://www.company.com/logo.png", ImageType.PNG));
vcard.addNote("note");
{
StringWriter sw = new StringWriter();
VCardWriter writer = new VCardWriter(sw, VCardVersion.V2_1);
writer.setAddProdId(false);
writer.write(vcard);
writer.setTargetApplication(TargetApplication.OUTLOOK);
writer.write(vcard);
String actual = sw.toString();
// @formatter:off
String expected = "BEGIN:VCARD\r\n" + "VERSION:2.1\r\n" + "KEY;ENCODING=BASE64;TYPE=x509:Zm9vYmFy\r\n" + "PHOTO;ENCODING=BASE64;TYPE=jpeg:Zm9vYmFy\r\n" + "LOGO;TYPE=png;VALUE=url:http://www.company.com/logo.png\r\n" + "NOTE:note\r\n" + "END:VCARD\r\n" + "BEGIN:VCARD\r\n" + "VERSION:2.1\r\n" + "KEY;ENCODING=BASE64;TYPE=x509:Zm9vYmFy\r\n" + "\r\n" + "PHOTO;ENCODING=BASE64;TYPE=jpeg:Zm9vYmFy\r\n" + "\r\n" + "LOGO;TYPE=png;VALUE=url:http://www.company.com/logo.png\r\n" + "NOTE:note\r\n" + "END:VCARD\r\n";
// @formatter:on
assertEquals(expected, actual);
}
{
StringWriter sw = new StringWriter();
VCardWriter writer = new VCardWriter(sw, VCardVersion.V3_0);
writer.setAddProdId(false);
writer.write(vcard);
writer.setTargetApplication(TargetApplication.OUTLOOK);
writer.write(vcard);
String actual = sw.toString();
// @formatter:off
String expected = "BEGIN:VCARD\r\n" + "VERSION:3.0\r\n" + "KEY;ENCODING=b;TYPE=x509:Zm9vYmFy\r\n" + "PHOTO;ENCODING=b;TYPE=jpeg:Zm9vYmFy\r\n" + "LOGO;TYPE=png;VALUE=uri:http://www.company.com/logo.png\r\n" + "NOTE:note\r\n" + "END:VCARD\r\n" + "BEGIN:VCARD\r\n" + "VERSION:3.0\r\n" + "KEY;ENCODING=b;TYPE=x509:Zm9vYmFy\r\n" + "\r\n" + "PHOTO;ENCODING=b;TYPE=jpeg:Zm9vYmFy\r\n" + "\r\n" + "LOGO;TYPE=png;VALUE=uri:http://www.company.com/logo.png\r\n" + "NOTE:note\r\n" + "END:VCARD\r\n";
// @formatter:on
assertEquals(expected, actual);
}
{
StringWriter sw = new StringWriter();
VCardWriter writer = new VCardWriter(sw, VCardVersion.V4_0);
writer.setAddProdId(false);
writer.write(vcard);
writer.setTargetApplication(TargetApplication.OUTLOOK);
writer.write(vcard);
String actual = sw.toString();
// @formatter:off
String expected = "BEGIN:VCARD\r\n" + "VERSION:4.0\r\n" + "KEY:data:application/x509;base64,Zm9vYmFy\r\n" + "PHOTO:data:image/jpeg;base64,Zm9vYmFy\r\n" + "LOGO;MEDIATYPE=image/png:http://www.company.com/logo.png\r\n" + "NOTE:note\r\n" + "END:VCARD\r\n" + "BEGIN:VCARD\r\n" + "VERSION:4.0\r\n" + "KEY:data:application/x509;base64,Zm9vYmFy\r\n" + "PHOTO:data:image/jpeg;base64,Zm9vYmFy\r\n" + "LOGO;MEDIATYPE=image/png:http://www.company.com/logo.png\r\n" + "NOTE:note\r\n" + "END:VCARD\r\n";
// @formatter:on
assertEquals(expected, actual);
}
}
use of ezvcard.property.Photo in project ez-vcard by mangstadt.
the class HCardPageTest method createFullVCard.
private VCard createFullVCard() throws IOException {
VCard vcard = new VCard();
StructuredName n = new StructuredName();
n.setFamily("Claus");
n.setGiven("Santa");
n.getAdditionalNames().add("Saint Nicholas");
n.getAdditionalNames().add("Father Christmas");
n.getPrefixes().add("Mr");
n.getPrefixes().add("Dr");
n.getSuffixes().add("M.D.");
n.setSortAs("Claus");
vcard.setStructuredName(n);
vcard.setClassification("public");
vcard.setMailer("Thunderbird");
vcard.setFormattedName("Santa Claus");
vcard.setNickname("Kris Kringle");
vcard.addTitle("Manager");
vcard.addRole("Executive");
vcard.addRole("Team Builder");
vcard.addEmail("johndoe@hotmail.com", EmailType.HOME, EmailType.WORK);
vcard.addEmail("doe.john@company.com", EmailType.WORK);
Telephone tel = new Telephone(new TelUri.Builder("+1-555-222-3333").extension("101").build());
vcard.addTelephoneNumber(tel);
tel = new Telephone(new TelUri.Builder("+1-555-333-4444").build());
tel.getTypes().add(TelephoneType.WORK);
vcard.addTelephoneNumber(tel);
vcard.addTelephoneNumber("(555) 111-2222", TelephoneType.HOME, TelephoneType.VOICE, TelephoneType.PREF);
Address adr = new Address();
adr.setStreetAddress("123 Main St");
adr.setExtendedAddress("Apt 11");
adr.setLocality("Austin");
adr.setRegion("Tx");
adr.setPostalCode("12345");
adr.setCountry("USA");
adr.setLabel("123 Main St." + NEWLINE + "Austin TX, 12345" + NEWLINE + "USA");
adr.getTypes().add(AddressType.HOME);
vcard.addAddress(adr);
adr = new Address();
adr.setPoBox("123");
adr.setStreetAddress("456 Wall St.");
adr.setLocality("New York");
adr.setRegion("NY");
adr.setPostalCode("11111");
adr.setCountry("USA");
adr.getTypes().add(AddressType.PREF);
adr.getTypes().add(AddressType.WORK);
vcard.addAddress(adr);
vcard.setOrganization("Google", "GMail");
Birthday bday = new Birthday(date("1970-03-08"), false);
vcard.setBirthday(bday);
vcard.addUrl("http://company.com");
vcard.setCategories("business owner", "jolly");
vcard.addImpp(Impp.aim("myhandle"));
vcard.addImpp(Impp.yahoo("myhandle@yahoo.com"));
vcard.addNote("I am proficient in Tiger-Crane Style," + NEWLINE + "and I am more than proficient in the exquisite art of the Samurai sword.");
vcard.setGeo(123.456, -98.123);
vcard.setTimezone(new Timezone(new UtcOffset(false, -6, 0), "America/Chicago"));
InputStream in = getClass().getResourceAsStream("hcard-portrait.jpg");
Photo photo = new Photo(in, ImageType.JPEG);
vcard.addPhoto(photo);
in = getClass().getResourceAsStream("hcard-sound.ogg");
Sound sound = new Sound(in, SoundType.OGG);
vcard.addSound(sound);
vcard.setUid(new Uid("urn:uuid:ffce1595-cbe9-4418-9d0d-b015655d45f6"));
vcard.setRevision(date("2000-03-10 13:22:44"));
return vcard;
}
use of ezvcard.property.Photo in project ez-vcard by mangstadt.
the class HCardPageTest method create_then_parse.
@Test
public void create_then_parse() throws Exception {
// create template
VCard expected = createFullVCard();
HCardPage template = new HCardPage();
template.add(expected);
String html = template.write();
// write to file for manual inspection
FileWriter writer = new FileWriter(new File("target", "vcard.html"));
writer.write(html);
writer.close();
// parse template
HCardParser reader = new HCardParser(html);
VCard actual = reader.readNext();
reader.close();
assertEquals("Claus", actual.getSortString().getValue());
assertEquals(expected.getClassification().getValue(), actual.getClassification().getValue());
assertEquals(expected.getMailer().getValue(), actual.getMailer().getValue());
assertEquals(expected.getFormattedName().getValue(), actual.getFormattedName().getValue());
assertEquals(expected.getUid().getValue(), actual.getUid().getValue());
assertEquals(expected.getNickname().getValues(), actual.getNickname().getValues());
assertEquals(expected.getOrganization().getValues(), actual.getOrganization().getValues());
assertEquals(expected.getCategories().getValues(), actual.getCategories().getValues());
assertEquals(expected.getBirthday().getDate(), actual.getBirthday().getDate());
assertEquals(expected.getRevision().getValue(), actual.getRevision().getValue());
assertEquals(expected.getGeo().getLatitude(), actual.getGeo().getLatitude());
assertEquals(expected.getGeo().getLongitude(), actual.getGeo().getLongitude());
assertEquals(expected.getTimezone().getOffset(), actual.getTimezone().getOffset());
// text value is not written
assertNull(actual.getTimezone().getText());
{
StructuredName e = expected.getStructuredName();
StructuredName a = actual.getStructuredName();
assertEquals(e.getFamily(), a.getFamily());
assertEquals(e.getGiven(), a.getGiven());
assertEquals(e.getAdditionalNames(), a.getAdditionalNames());
assertEquals(e.getPrefixes(), a.getPrefixes());
assertEquals(e.getSuffixes(), a.getSuffixes());
assertTrue(a.getSortAs().isEmpty());
}
assertEquals(expected.getTitles().size(), actual.getTitles().size());
for (int i = 0; i < expected.getTitles().size(); i++) {
Title e = expected.getTitles().get(i);
Title a = actual.getTitles().get(i);
assertEquals(e.getValue(), a.getValue());
}
assertEquals(expected.getRoles().size(), actual.getRoles().size());
for (int i = 0; i < expected.getRoles().size(); i++) {
Role e = expected.getRoles().get(i);
Role a = actual.getRoles().get(i);
assertEquals(e.getValue(), a.getValue());
}
assertEquals(expected.getNotes().size(), actual.getNotes().size());
for (int i = 0; i < expected.getNotes().size(); i++) {
Note e = expected.getNotes().get(i);
Note a = actual.getNotes().get(i);
assertEquals(e.getValue(), a.getValue());
}
assertEquals(expected.getUrls().size(), actual.getUrls().size());
for (int i = 0; i < expected.getUrls().size(); i++) {
Url e = expected.getUrls().get(i);
Url a = actual.getUrls().get(i);
assertEquals(e.getValue(), a.getValue());
}
assertEquals(expected.getImpps().size(), actual.getImpps().size());
for (int i = 0; i < expected.getImpps().size(); i++) {
Impp e = expected.getImpps().get(i);
Impp a = actual.getImpps().get(i);
assertEquals(e.getUri(), a.getUri());
}
assertEquals(expected.getEmails().size(), actual.getEmails().size());
for (int i = 0; i < expected.getEmails().size(); i++) {
Email e = expected.getEmails().get(i);
Email a = actual.getEmails().get(i);
assertEquals(e.getValue(), a.getValue());
assertEquals(e.getTypes(), a.getTypes());
}
assertEquals(expected.getTelephoneNumbers().size(), actual.getTelephoneNumbers().size());
for (int i = 0; i < expected.getTelephoneNumbers().size(); i++) {
Telephone e = expected.getTelephoneNumbers().get(i);
Telephone a = actual.getTelephoneNumbers().get(i);
if (e.getText() != null) {
assertEquals(e.getText(), a.getText());
} else {
TelUri uri = e.getUri();
if (uri.getExtension() == null) {
assertEquals(e.getUri().getNumber(), a.getText());
} else {
assertEquals(e.getUri().getNumber() + " x" + uri.getExtension(), a.getText());
}
}
assertEquals(e.getTypes(), a.getTypes());
}
assertEquals(expected.getAddresses().size(), actual.getAddresses().size());
for (int i = 0; i < expected.getAddresses().size(); i++) {
Address e = expected.getAddresses().get(i);
Address a = actual.getAddresses().get(i);
assertEquals(e.getPoBox(), a.getPoBox());
assertEquals(e.getExtendedAddress(), a.getExtendedAddress());
assertEquals(e.getStreetAddress(), a.getStreetAddress());
assertEquals(e.getLocality(), a.getLocality());
assertEquals(e.getRegion(), a.getRegion());
assertEquals(e.getPostalCode(), a.getPostalCode());
assertEquals(e.getCountry(), a.getCountry());
assertEquals(e.getLabel(), a.getLabel());
assertEquals(e.getTypes(), a.getTypes());
}
assertEquals(expected.getPhotos().size(), actual.getPhotos().size());
for (int i = 0; i < expected.getPhotos().size(); i++) {
Photo e = expected.getPhotos().get(i);
Photo a = actual.getPhotos().get(i);
assertEquals(e.getContentType(), a.getContentType());
assertArrayEquals(e.getData(), a.getData());
}
assertEquals(expected.getSounds().size(), actual.getSounds().size());
for (int i = 0; i < expected.getSounds().size(); i++) {
Sound e = expected.getSounds().get(i);
Sound a = actual.getSounds().get(i);
assertEquals(e.getContentType(), a.getContentType());
assertArrayEquals(e.getData(), a.getData());
}
assertEquals("ez-vcard " + Ezvcard.VERSION, actual.getProductId().getValue());
}
use of ezvcard.property.Photo in project ez-vcard by mangstadt.
the class EzvcardTest method write_targetApplication.
@Test
public void write_targetApplication() throws Exception {
byte[] data = "data".getBytes();
VCard vcard = new VCard();
vcard.addPhoto(new Photo(data, ImageType.JPEG));
// default value (null)
{
String actual = Ezvcard.write(vcard).prodId(false).version(VCardVersion.V2_1).go();
// @formatter:off
String expected = "BEGIN:VCARD\r\n" + "VERSION:2.1\r\n" + "PHOTO;ENCODING=BASE64;TYPE=jpeg:ZGF0YQ==\r\n" + "END:VCARD\r\n";
// @formatter:on
assertEquals(expected, actual);
}
// with value
{
String actual = Ezvcard.write(vcard).prodId(false).version(VCardVersion.V2_1).targetApplication(TargetApplication.OUTLOOK).go();
// @formatter:off
String expected = "BEGIN:VCARD\r\n" + "VERSION:2.1\r\n" + "PHOTO;ENCODING=BASE64;TYPE=jpeg:ZGF0YQ==\r\n" + "\r\n" + "END:VCARD\r\n";
// @formatter:on
assertEquals(expected, actual);
}
}
Aggregations