summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorChristian Mollekopf <mollekopf@kolabsys.com>2013-07-15 09:32:21 (GMT)
committerChristian Mollekopf <mollekopf@kolabsys.com>2013-07-15 13:40:18 (GMT)
commit36bac030591209447385392e9f0aaa4cb47abd68 (patch)
tree5f1b907425de8ff7c6539faa3bd019928b615c0d /tests
parent084987d42d837922bc71bd6810ed89f63a36513a (diff)
downloadlibkolab-36bac030591209447385392e9f0aaa4cb47abd68.tar.gz
Don't set the picture type.
Setting the type explicitly is not required and apparently breaks loading some images.
Diffstat (limited to 'tests')
-rw-r--r--tests/formattest.cpp1
-rw-r--r--tests/testfiles/v3/contacts/png.vcf131
-rw-r--r--tests/testfiles/v3/contacts/png.vcf.mime62
3 files changed, 194 insertions, 0 deletions
diff --git a/tests/formattest.cpp b/tests/formattest.cpp
index ad836aa..7db4617 100644
--- a/tests/formattest.cpp
+++ b/tests/formattest.cpp
@@ -188,6 +188,7 @@ void FormatTest::testContact_data()
QTest::newRow( "v3contactSimple" ) << Kolab::KolabV3 << Kolab::ContactObject << TESTFILEDIR+QString::fromLatin1("v3/contacts/simple.vcf") << TESTFILEDIR+QString::fromLatin1("v3/contacts/simple.vcf.mime");
QTest::newRow( "v3contactComplex" ) << Kolab::KolabV3 << Kolab::ContactObject << TESTFILEDIR+QString::fromLatin1("v3/contacts/complex.vcf") << TESTFILEDIR+QString::fromLatin1("v3/contacts/complex.vcf.mime");
+ QTest::newRow( "v3contactPng" ) << Kolab::KolabV3 << Kolab::ContactObject << TESTFILEDIR+QString::fromLatin1("v3/contacts/png.vcf") << TESTFILEDIR+QString::fromLatin1("v3/contacts/png.vcf.mime");
}
bool comparePictureToReference(const QImage &picture)
diff --git a/tests/testfiles/v3/contacts/png.vcf b/tests/testfiles/v3/contacts/png.vcf
new file mode 100644
index 0000000..341b0f9
--- /dev/null
+++ b/tests/testfiles/v3/contacts/png.vcf
@@ -0,0 +1,131 @@
+BEGIN:VCARD
+CLASS:PUBLIC
+FN:Picture Perfect
+N:Perfect;Picture;;;
+PHOTO;ENCODING=b;TYPE=png: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
+ =
+UID:4f641580-eb05-11e2-a64e-525400896ca1
+VERSION:3.0
+END:VCARD \ No newline at end of file
diff --git a/tests/testfiles/v3/contacts/png.vcf.mime b/tests/testfiles/v3/contacts/png.vcf.mime
new file mode 100644
index 0000000..6f6c4db
--- /dev/null
+++ b/tests/testfiles/v3/contacts/png.vcf.mime
@@ -0,0 +1,62 @@
+MIME-Version: 1.0
+Content-Type: multipart/mixed;
+ boundary="=_40faed378be3e90d8d34690488727b1d"
+From: john.doe@example.org
+To: john.doe@example.org
+Date: Fri, 12 Jul 2013 15:11:21 +0000
+X-Kolab-Type: application/x-vnd.kolab.contact
+X-Kolab-Mime-Version: 3.0
+Subject: 4f641580-eb05-11e2-a64e-525400896ca1
+User-Agent: Roundcube Webmail/0.9.1-2.el6.kolab_3.0
+
+
+--=_40faed378be3e90d8d34690488727b1d
+Content-Transfer-Encoding: quoted-printable
+Content-Type: text/plain; charset=ISO-8859-1
+
+This is a Kolab Groupware object. To view this object you will need an emai=
+l client that understands the Kolab Groupware format. For a list of such em=
+ail clients please visit http://www.kolab.org/
+
+
+--=_40faed378be3e90d8d34690488727b1d
+Content-Transfer-Encoding: 8bit
+Content-Type: application/vcard+xml; charset=UTF-8;
+ name=kolab.xml
+Content-Disposition: attachment;
+ filename=kolab.xml
+
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<vcards xmlns="urn:ietf:params:xml:ns:vcard-4.0">
+
+ <vcard>
+ <uid>
+ <uri>urn:uuid:4f641580-eb05-11e2-a64e-525400896ca1</uri>
+ </uid>
+ <x-kolab-version>
+ <text>3.0dev1</text>
+ </x-kolab-version>
+ <prodid>
+ <text>Roundcube-libkolab-0.9 Libkolabxml-0.8.4</text>
+ </prodid>
+ <rev>
+ <timestamp>20130712T151121Z</timestamp>
+ </rev>
+ <kind>
+ <text>individual</text>
+ </kind>
+ <fn>
+ <text>Picture Perfect</text>
+ </fn>
+ <n>
+ <surname>Perfect</surname>
+ <given>Picture</given>
+ </n>
+ <photo>
+ <uri>data:image/png;base64,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</uri>
+ </photo>
+ </vcard>
+
+</vcards>
+
+--=_40faed378be3e90d8d34690488727b1d-- \ No newline at end of file