summaryrefslogtreecommitdiff
path: root/tests/libebook/vcard
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2011-03-22 13:57:21 -0400
committerMatthew Barnes <mbarnes@redhat.com>2011-03-22 15:50:04 -0400
commit450e98c83234f6d82f46c0124f874f47b785923f (patch)
tree3e07b75868d85abff88b05e261b3fa97069c1874 /tests/libebook/vcard
parent99f96227311145922e3d0319dd9b3aed2e784584 (diff)
downloadevolution-data-server-450e98c83234f6d82f46c0124f874f47b785923f.tar.gz
Collect all test code into a top-level "tests" directory
This includes both automated unit tests and standalone demo programs. Test code is partitioned by library. So far we have: tests/libebook tests/libecal tests/libedata-cal tests/libedataserver tests/libedataserverui This makes for a natural place to put additional E-D-S test code, but still have it compartmentalized in one place (excluding Camel, which is still tagging along with E-D-S but is not really part of E-D-S).
Diffstat (limited to 'tests/libebook/vcard')
-rw-r--r--tests/libebook/vcard/1.vcf12
-rw-r--r--tests/libebook/vcard/10.vcf9
-rw-r--r--tests/libebook/vcard/11.vcf9
-rw-r--r--tests/libebook/vcard/12.vcf23
-rw-r--r--tests/libebook/vcard/13.vcf23
-rw-r--r--tests/libebook/vcard/2.vcf10
-rw-r--r--tests/libebook/vcard/3.vcf13
-rw-r--r--tests/libebook/vcard/4.vcf11
-rw-r--r--tests/libebook/vcard/5.vcf32
-rw-r--r--tests/libebook/vcard/6.vcf12
-rw-r--r--tests/libebook/vcard/7.vcf11
-rw-r--r--tests/libebook/vcard/8.vcf11
-rw-r--r--tests/libebook/vcard/9.vcf9
-rw-r--r--tests/libebook/vcard/Makefile.am17
-rw-r--r--tests/libebook/vcard/README49
-rw-r--r--tests/libebook/vcard/dump-vcard.c41
16 files changed, 292 insertions, 0 deletions
diff --git a/tests/libebook/vcard/1.vcf b/tests/libebook/vcard/1.vcf
new file mode 100644
index 000000000..308144c5f
--- /dev/null
+++ b/tests/libebook/vcard/1.vcf
@@ -0,0 +1,12 @@
+BEGIN:vCard
+VERSION:3.0
+FN:Frank Dawson
+ORG:Lotus Development Corporation
+ADR;TYPE=WORK,POSTAL,PARCEL:;;6544 Battleford Drive
+ ;Raleigh;NC;27613-3502;U.S.A.
+TEL;TYPE=VOICE,MSG,WORK:+1-919-676-9515
+TEL;TYPE=FAX,WORK:+1-919-676-9564
+EMAIL;TYPE=INTERNET,PREF:Frank_Dawson@Lotus.com
+EMAIL;TYPE=INTERNET:fdawson@earthlink.net
+URL:http://home.earthlink.net/~fdawson
+END:vCard
diff --git a/tests/libebook/vcard/10.vcf b/tests/libebook/vcard/10.vcf
new file mode 100644
index 000000000..665835190
--- /dev/null
+++ b/tests/libebook/vcard/10.vcf
@@ -0,0 +1,9 @@
+BEGIN:vCard
+VERSION:3.0
+FN:Frank Dawson
+ORG:Lotus Development Corporation
+ADR;TYPE="Both work and home",POSTAL,PARCEL:;;6544 Battleford Drive
+ ;Raleigh;NC;27613-3502;U.S.A.
+TEL;TYPE=VOICE,MSG,WORK:+1-919-676-9515
+TEL;TYPE=FAX,WORK:+1-919-676-9564
+END:vCard
diff --git a/tests/libebook/vcard/11.vcf b/tests/libebook/vcard/11.vcf
new file mode 100644
index 000000000..e56c60ddd
--- /dev/null
+++ b/tests/libebook/vcard/11.vcf
@@ -0,0 +1,9 @@
+BEGIN:VCARD
+VERSION:3.0
+X-EVOLUTION-FILE-AS:AttributeParam\, Invalid
+FN:Invalid AttributeParam
+N:AttributeParam;Invalid;;;
+NOPARAM;:pas-id-4094434A00000001
+TAIL;PARAM=value;:pas-id-4094434A00000001
+MIDDLE;PARAM=value;;PARAM2=value2:pas-id-4094434A00000001
+END:VCARD \ No newline at end of file
diff --git a/tests/libebook/vcard/12.vcf b/tests/libebook/vcard/12.vcf
new file mode 100644
index 000000000..d1c059841
--- /dev/null
+++ b/tests/libebook/vcard/12.vcf
@@ -0,0 +1,23 @@
+BEGIN:VCARD
+VERSION:2.1
+N;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:=
+Br=C3=BCning;=
+Michael
+FN;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:=
+Michael Br=C3=BCning
+TEL;CELL;WORK:+491622433834
+TEL;CELL;HOME:017623384942
+TEL;WORK:+4973117546691
+EMAIL;WORK:ext-Michael.Bruning@nokia.com
+ADR;HOME;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:=
+;=
+;=
+M=C3=BCnsterplatz 21;=
+Ulm;=
+Baden-W=C3=BCrttemberg;=
+89073;=
+
+LABEL;HOME;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:=
+M=C3=BCnsterplatz 21=0D=0A89073 Ulm, Baden-W=C3=BCrttemberg
+BDAY:19781229
+END:VCARD
diff --git a/tests/libebook/vcard/13.vcf b/tests/libebook/vcard/13.vcf
new file mode 100644
index 000000000..77831b84d
--- /dev/null
+++ b/tests/libebook/vcard/13.vcf
@@ -0,0 +1,23 @@
+BEGIN:vCard
+VERSION:3.0
+FN:Ralf Engels
+ORG:Ralf Engels evil tests
+ADR;TYPE=WORK,POSTAL,PARCEL:;;Evil semicolon city\;
+ ;Semicolon\;way;NC;27613-3502;U.S.A.
+TEL;TYPE=VOICE,M
+ SG,WORK:+1-919-676-9515
+TEL;TYPE=
+ FAX,WORK:+1-919-676-9564
+EMAIL;TYPE=INTERNET
+ ,PREF:Frank_Dawson@Lotus.com
+EMAIL;TYPE=INTERNET:semicolon\;@points.net
+URL:http://home%32%20.earthlink.net/~fdawson
+ADR;HOME;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:=
+;=
+;=
+Evil backslash \\ way;=
+Ulm;=
+Newlines\nCountry\Nevil;=
+89073;=
+
+END:vCard
diff --git a/tests/libebook/vcard/2.vcf b/tests/libebook/vcard/2.vcf
new file mode 100644
index 000000000..bdf14ea1b
--- /dev/null
+++ b/tests/libebook/vcard/2.vcf
@@ -0,0 +1,10 @@
+BEGIN:vCard
+VERSION:3.0
+FN:Tim Howes
+ORG:Netscape Communications Corp.
+ADR;TYPE=WORK:;;501 E. Middlefield Rd.;Mountain View;
+ CA; 94043;U.S.A.
+TEL;TYPE=VOICE,MSG,WORK:+1-415-937-3419
+TEL;TYPE=FAX,WORK:+1-415-528-4164
+EMAIL;TYPE=INTERNET:howes@netscape.com
+END:vCard
diff --git a/tests/libebook/vcard/3.vcf b/tests/libebook/vcard/3.vcf
new file mode 100644
index 000000000..0428d6a72
--- /dev/null
+++ b/tests/libebook/vcard/3.vcf
@@ -0,0 +1,13 @@
+BEGIN:VCARD
+VERSION:2.1
+X-EVOLUTION-FILE-AS:Friedman, Nat
+FN:Nat
+N:Friedman;Nat;D;Mr.
+ADR;POSTAL;WORK:P.O. Box 101;;;Any Town;CA;91921-1234
+TEL;WORK:617 679 1984
+TEL;CELL:123 456 7890
+EMAIL;INTERNET:nat@nat.org
+EMAIL;INTERNET:nat@ximian.com
+BDAY:1977-08-06
+UID:pas-id-3E65886900000002
+END:VCARD
diff --git a/tests/libebook/vcard/4.vcf b/tests/libebook/vcard/4.vcf
new file mode 100644
index 000000000..305088a91
--- /dev/null
+++ b/tests/libebook/vcard/4.vcf
@@ -0,0 +1,11 @@
+BEGIN:VCARD
+VERSION:2.1
+X-EVOLUTION-FILE-AS:address, canada
+FN:canada address
+N:address;canada
+ADR;WORK:;;92 Main St. N.;Newmarket;ON;L3Y 4A1;Canada
+ADR;HOME;PREF:;;92 Main St. N.;Newmarket;ON;L3Y 4A1;Canada
+LABEL;QUOTED-PRINTABLE;WORK:92 Main St. N.=0ANewmarket, ON L3Y 4A1=0ACanada
+LABEL;QUOTED-PRINTABLE;HOME;PREF:92 Main St. N.=0ANewmarket, ON L3Y 4A1=0ACanada
+UID:pas-id-3E84C16E00000001
+END:VCARD
diff --git a/tests/libebook/vcard/5.vcf b/tests/libebook/vcard/5.vcf
new file mode 100644
index 000000000..f42433061
--- /dev/null
+++ b/tests/libebook/vcard/5.vcf
@@ -0,0 +1,32 @@
+BEGIN:VCARD
+VERSION:2.1
+X-EVOLUTION-FILE-AS;CHARSET=UTF-8;QUOTED-PRINTABLE:=E5=8D=81=E5=9F=8E=E7=9B=AE=E7=AE=A1=E7=90=86=E5=A4=A7=E5=9E=8B=E7=9F=A5=E5=
+=BA=A7
+FN;CHARSET=UTF-8;QUOTED-PRINTABLE:=E5=8D=81=E5=9F=8E=E7=9B=AE=E7=AE=A1=E7=90=86=E5=A4=A7=E5=9E=8B=E7=9F=A5=E5=
+=BA=A7
+N;CHARSET=UTF-8:;十城目管理大型知座
+ADR;WORK;PREF;QUOTED-PRINTABLE;CHARSET=UTF-8:;=E5=8D=81=E5=9F=8E=E7=9B=AE=E7=AE=A1=E7=90=86=E5=A4=A7=E5=9E=8B=E7=9F=A5=E5=
+=BA=A7=0A=E5=8D=81=E5=9F=8E=E7=9B=AE=E7=AE=A1=E7=90=86=E5=A4=A7=E5=9E=8B=E7=
+=9F=A5=E5=BA=A7=0A=E5=8D=81=E5=9F=8E=E7=9B=AE=E7=AE=A1=E7=90=86=E5=A4=A7=E5=
+=9E=8B=E7=9F=A5=E5=BA=A7;=E5=8D=81=E5=9F=8E=E7=9B=AE=E7=AE=A1=E7=90=86=E5=A4=A7=E5=9E=8B=E7=9F=A5=E5=
+=BA=A7
+LABEL;CHARSET=UTF-8;QUOTED-PRINTABLE;WORK;PREF:=E5=8D=81=E5=9F=8E=E7=9B=AE=E7=AE=A1=E7=90=86=E5=A4=A7=E5=9E=8B=E7=9F=A5=E5=
+=BA=A7=0A=E5=8D=81=E5=9F=8E=E7=9B=AE=E7=AE=A1=E7=90=86=E5=A4=A7=E5=9E=8B=E7=
+=9F=A5=E5=BA=A7=0A=E5=8D=81=E5=9F=8E=E7=9B=AE=E7=AE=A1=E7=90=86=E5=A4=A7=E5=
+=9E=8B=E7=9F=A5=E5=BA=A7=0A=E5=8D=81=E5=9F=8E=E7=9B=AE=E7=AE=A1=E7=90=86=E5=
+=A4=A7=E5=9E=8B=E7=9F=A5=E5=BA=A7
+TEL;CHARSET=UTF-8;QUOTED-PRINTABLE;WORK;VOICE:=E5=8D=81=E5=9F=8E=E7=9B=AE=E7=AE=A1=E7=90=86=E5=A4=A7=E5=9E=8B=E7=9F=A5=E5=
+=BA=A7
+TEL;CHARSET=UTF-8;QUOTED-PRINTABLE;WORK;FAX:=E5=8D=81=E5=9F=8E=E7=9B=AE=E7=AE=A1=E7=90=86=E5=A4=A7=E5=9E=8B=E7=9F=A5=E5=
+=BA=A7
+TEL;CHARSET=UTF-8;QUOTED-PRINTABLE;HOME:=E5=8D=81=E5=9F=8E=E7=9B=AE=E7=AE=A1=E7=90=86=E5=A4=A7=E5=9E=8B=E7=9F=A5=E5=
+=BA=A7
+TEL;CHARSET=UTF-8;QUOTED-PRINTABLE;CELL:=E5=8D=81=E5=9F=8E=E7=9B=AE=E7=AE=A1=E7=90=86=E5=A4=A7=E5=9E=8B=E7=9F=A5=E5=
+=BA=A7
+EMAIL;INTERNET:weird@weird.com
+ORG;CHARSET=UTF-8:十城目管理大型知座
+TITLE;CHARSET=UTF-8;QUOTED-PRINTABLE:=E5=8D=81=E5=9F=8E=E7=9B=AE=E7=AE=A1=E7=90=86=E5=A4=A7=E5=9E=8B=E7=9F=A5=E5=
+=BA=A7
+UID:pas-id-3E52FE2E00000000
+END:VCARD
+
diff --git a/tests/libebook/vcard/6.vcf b/tests/libebook/vcard/6.vcf
new file mode 100644
index 000000000..e5e8310eb
--- /dev/null
+++ b/tests/libebook/vcard/6.vcf
@@ -0,0 +1,12 @@
+BEGIN:vCard
+VERSION:3.0
+FN:Frank Dawson
+ORG:Lotus Development Corporation
+ADR;TYPE=WORK,:;;6544 Battleford Drive
+ ;Raleigh;NC;27613-3502;U.S.A.
+TEL;TYPE=VOICE;MSG,WORK:+1-919-676-9515
+TEL;FAX,WORK:+1-919-676-9564
+EMAIL;TYPE=INTERNET,PREF:Frank_Dawson@Lotus.com
+EMAIL;TYPE=INTERNET:fdawson@earthlink.net
+URL:http://home.earthlink.net/~fdawson
+END:vCard
diff --git a/tests/libebook/vcard/7.vcf b/tests/libebook/vcard/7.vcf
new file mode 100644
index 000000000..fb8817303
--- /dev/null
+++ b/tests/libebook/vcard/7.vcf
@@ -0,0 +1,11 @@
+VERSION:3.0
+FN:Frank Dawson
+ORG:Lotus Development Corporation
+ADR;TYPE=WORK,POSTAL,PARCEL:;;6544 Battleford Drive
+ ;Raleigh;NC;27613-3502;U.S.A.
+TEL;TYPE=VOICE,MSG,WORK:+1-919-676-9515
+TEL;TYPE=FAX,WORK:+1-919-676-9564
+EMAIL;TYPE=INTERNET,PREF:Frank_Dawson@Lotus.com
+EMAIL;TYPE=INTERNET:fdawson@earthlink.net
+URL:http://home.earthlink.net/~fdawson
+END:vCard
diff --git a/tests/libebook/vcard/8.vcf b/tests/libebook/vcard/8.vcf
new file mode 100644
index 000000000..172d1d2c6
--- /dev/null
+++ b/tests/libebook/vcard/8.vcf
@@ -0,0 +1,11 @@
+BEGIN:vCard
+VERSION:3.0
+FN:Frank Dawson
+ORG:Lotus Development Corporation
+ADR;TYPE=WORK,POSTAL,PARCEL:;;6544 Battleford Drive
+ ;Raleigh;NC;27613-3502;U.S.A.
+TEL;TYPE=VOICE,MSG,WORK:+1-919-676-9515
+TEL;TYPE=FAX,WORK:+1-919-676-9564
+EMAIL;TYPE=INTERNET,PREF:Frank_Dawson@Lotus.com
+EMAIL;TYPE=INTERNET:fdawson@earthlink.net
+URL:http://home.earthlink.net/~fdawson
diff --git a/tests/libebook/vcard/9.vcf b/tests/libebook/vcard/9.vcf
new file mode 100644
index 000000000..7043ab8c1
--- /dev/null
+++ b/tests/libebook/vcard/9.vcf
@@ -0,0 +1,9 @@
+BEGIN:vCard
+VERSION:3.0
+FN:Frank Dawson
+ORG:Lotus Development Corporation
+ADR;TYPE=WORK,POSTAL,PARCEL:;;6544 Battleford Drive
+ ;Raleigh;NC;27613-3502;U.S.A.
+TEL;TYPE=VOICE,MSG,WORK:+1-919-676-9515
+TEL;TYPE=FAX,WORK:+1-919-676-9564
+E
diff --git a/tests/libebook/vcard/Makefile.am b/tests/libebook/vcard/Makefile.am
new file mode 100644
index 000000000..7b1832ad5
--- /dev/null
+++ b/tests/libebook/vcard/Makefile.am
@@ -0,0 +1,17 @@
+noinst_PROGRAMS = dump-vcard
+
+dump_vcard_CPPFLAGS = \
+ -I$(top_srcdir) \
+ -I$(top_builddir) \
+ -I$(top_srcdir)/addressbook \
+ -I$(top_builddir)/addressbook \
+ $(EVOLUTION_ADDRESSBOOK_CFLAGS)
+
+dump_vcard_LDADD = \
+ $(top_builddir)/addressbook/libebook/libebook-1.2.la \
+ $(top_builddir)/libedataserver/libedataserver-1.2.la \
+ $(EVOLUTION_ADDRESSBOOK_LIBS)
+
+EXTRA_DIST=1.vcf 2.vcf 3.vcf 4.vcf 5.vcf 6.vcf 7.vcf 8.vcf 9.vcf 10.vcf 11.vcf
+
+-include $(top_srcdir)/git.mk
diff --git a/tests/libebook/vcard/README b/tests/libebook/vcard/README
new file mode 100644
index 000000000..46220132e
--- /dev/null
+++ b/tests/libebook/vcard/README
@@ -0,0 +1,49 @@
+This is the list of tests I've been using while writing e-vcard.c.
+The parser is all handcrafted, and it's not a validating parser by any
+stretch of the imagination. It tries very hard to deal with any
+possible input (it'll even parse rfc822 mail headers and spit out
+vCard-ish results.)
+
+Test : Description
+----------------------
+
+1.vcf : Frank Dawson's vCard from RFC 2426 (missing the required N
+ attribute.)
+
+2.vcf : Tim Howes's vCard from from RFC 2426 (missing the required N
+ attribute.)
+
+3.vcf : Nat's old vCard.
+
+4.vcf : A vCard containing a canadian address (quoted-printable
+ encoded attribute values.)
+
+5.vcf : A vCard containing utf8 characters quoted-printable encoded.
+
+6.vcf : A vCard with several errors in attribute parameters:
+ line 5: an missing parameter value (a , with nothing after it).
+ line 6: a missing parameter name when using multiple
+ values. (this may not be in violation of the rfc.)
+ line 7: a missing parameter name when using multiple
+ values. (this may not be in violation of the rfc.)
+
+7.vcf : A vCard missing its begin:vcard attribute, as well as missing
+ the required N attribute.
+
+8.vcf : A vCard missing its end: vcard attribute, as well as missing
+ the required N attribute.
+
+9.vcf : A vCard that ends (\0) in the middle of an attribute
+ name/group.
+
+10.vcf : A vCard with an attribute with more than 1 group specified. Also
+ has an attributed with a quoted parameter value.
+
+11.vcf : A vCard with invalid attribute parameter specs.
+
+12.vcf : A vCard with quoted parameter values that get corrupted if the
+ line folding mechanism does not correctly remove the equal sign
+
+13.vcf : A vCard with various escaped characters
+
+----------------------
diff --git a/tests/libebook/vcard/dump-vcard.c b/tests/libebook/vcard/dump-vcard.c
new file mode 100644
index 000000000..307d34e02
--- /dev/null
+++ b/tests/libebook/vcard/dump-vcard.c
@@ -0,0 +1,41 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+
+#include <stdio.h>
+#include <libebook/e-vcard.h>
+
+gint
+main (gint argc, gchar **argv)
+{
+ FILE *fp;
+ EVCard *vcard;
+ GString *str = g_string_new ("");
+ gchar *parsed_vcard;
+
+ if (argc < 2)
+ return 0;
+
+ g_type_init_with_debug_flags (G_TYPE_DEBUG_OBJECTS);
+
+ fp = fopen (argv[1], "r");
+
+ while (!feof (fp)) {
+ gchar buf[1024];
+ if (fgets (buf, sizeof (buf), fp))
+ str = g_string_append (str, buf);
+ }
+ fclose (fp);
+
+ vcard = e_vcard_new_from_string (str->str);
+
+ e_vcard_dump_structure (vcard);
+
+ parsed_vcard = e_vcard_to_string (vcard, EVC_FORMAT_VCARD_30);
+
+ printf ("\nvcard: %s\n", parsed_vcard);
+
+ g_object_unref (vcard);
+
+ g_free (parsed_vcard);
+
+ return 0;
+}