~ubuntu-branches/ubuntu/karmic/kdepim/karmic-backports

« back to all changes in this revision

Viewing changes to akonadi/plugins/tests/mailserializertest.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Alessandro Ghersi, Alessandro Ghersi, Harald Sitter
  • Date: 2009-06-27 04:40:05 UTC
  • mfrom: (1.1.39 upstream)
  • Revision ID: james.westby@ubuntu.com-20090627044005-4y2vm9xz7rvmzi4p
Tags: 4:4.2.95svn20090701-0ubuntu1
[ Alessandro Ghersi ]
* New upstream release
  - Bump build-deps
* Remove akonadi-kde and libmaildir4 packages
  - remove akonadi-kde.install and libmaildir4.install
  - remove libmaildir4 from debian/rules
  - remove akonadi-kde and libmaildir4 from depends
  - remove akonadi-kde and libmaildir4 from installgen
* Update kdepim-dev.install
* Update kpilot.install
* Add akonadi-kde and libmaildir4 transitional packages

[ Harald Sitter ]
* KAddressbook replaces Kontact << 4.2.85 (LP: #378373)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
    Copyright (c) 2007 Volker Krause <vkrause@kde.org>
 
3
 
 
4
    This library is free software; you can redistribute it and/or modify it
 
5
    under the terms of the GNU Library General Public License as published by
 
6
    the Free Software Foundation; either version 2 of the License, or (at your
 
7
    option) any later version.
 
8
 
 
9
    This library is distributed in the hope that it will be useful, but WITHOUT
 
10
    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 
11
    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
 
12
    License for more details.
 
13
 
 
14
    You should have received a copy of the GNU Library General Public License
 
15
    along with this library; see the file COPYING.LIB.  If not, write to the
 
16
    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 
17
    02110-1301, USA.
 
18
*/
 
19
 
 
20
#include "mailserializertest.h"
 
21
#include "mailserializertest.moc"
 
22
 
 
23
#include "akonadi_serializer_mail.cpp"
 
24
 
 
25
#include <akonadi/kmime/messageparts.h>
 
26
 
 
27
#include <qtest_kde.h>
 
28
 
 
29
QTEST_KDEMAIN( MailSerializerTest, NoGUI )
 
30
 
 
31
typedef boost::shared_ptr<KMime::Message> MessagePtr;
 
32
 
 
33
void MailSerializerTest::testEnvelopeDeserialize()
 
34
{
 
35
  Item i;
 
36
  i.setMimeType( "message/rfc822" );
 
37
 
 
38
  SerializerPluginMail *serializer = new SerializerPluginMail();
 
39
 
 
40
  // envelope
 
41
  QByteArray env( "(\"Wed, 1 Feb 2006 13:37:19 UT\" \"IMPORTANT: Akonadi Test\" ((\"Tobias Koenig\" NIL \"tokoe\" \"kde.org\")) ((\"Tobias Koenig\" NIL \"tokoe\" \"kde.org\")) NIL ((\"Ingo Kloecker\" NIL \"kloecker\" \"kde.org\")) NIL NIL NIL <{7b55527e-77f4-489d-bf18-e805be96718c}@server.kde.org>)" );
 
42
  QBuffer buffer;
 
43
  buffer.setData( env );
 
44
  buffer.open( QIODevice::ReadOnly );
 
45
  buffer.seek( 0 );
 
46
  serializer->deserialize( i, MessagePart::Envelope, buffer, 0 );
 
47
  QVERIFY( i.hasPayload<MessagePtr>() );
 
48
 
 
49
  MessagePtr msg = i.payload<MessagePtr>();
 
50
  QCOMPARE( msg->subject()->asUnicodeString(), QString::fromUtf8( "IMPORTANT: Akonadi Test" ) );
 
51
  QCOMPARE( msg->from()->asUnicodeString(), QString::fromUtf8( "Tobias Koenig <tokoe@kde.org>" ) );
 
52
  QCOMPARE( msg->to()->asUnicodeString(), QString::fromUtf8( "Ingo Kloecker <kloecker@kde.org>" ) );
 
53
 
 
54
  delete serializer;
 
55
}
 
56
 
 
57
void MailSerializerTest::testEnvelopeSerialize()
 
58
{
 
59
  Item i;
 
60
  i.setMimeType( "message/rfc822" );
 
61
  Message* msg = new Message();
 
62
  msg->date()->from7BitString( "Wed, 1 Feb 2006 13:37:19 UT" );
 
63
  msg->subject()->from7BitString( "IMPORTANT: Akonadi Test" );
 
64
  msg->from()->from7BitString( "Tobias Koenig <tokoe@kde.org>" );
 
65
  msg->sender()->from7BitString( "Tobias Koenig <tokoe@kde.org>" );
 
66
  msg->to()->from7BitString( "Ingo Kloecker <kloecker@kde.org>" );
 
67
  msg->messageID()->from7BitString( "<{7b55527e-77f4-489d-bf18-e805be96718c}@server.kde.org>" );
 
68
  i.setPayload( MessagePtr( msg ) );
 
69
 
 
70
  SerializerPluginMail *serializer = new SerializerPluginMail();
 
71
 
 
72
  // envelope
 
73
  QByteArray expEnv( "(\"Wed, 01 Feb 2006 13:37:19 +0000\" \"IMPORTANT: Akonadi Test\" ((\"Tobias Koenig\" NIL \"tokoe\" \"kde.org\")) ((\"Tobias Koenig\" NIL \"tokoe\" \"kde.org\")) NIL ((\"Ingo Kloecker\" NIL \"kloecker\" \"kde.org\")) NIL NIL NIL \"<{7b55527e-77f4-489d-bf18-e805be96718c}@server.kde.org>\")" );
 
74
  QByteArray env;
 
75
  QBuffer buffer;
 
76
  buffer.setBuffer( &env );
 
77
  buffer.open( QIODevice::ReadWrite );
 
78
  buffer.seek( 0 );
 
79
  int version = 0;
 
80
  serializer->serialize( i, MessagePart::Envelope, buffer, version );
 
81
  QCOMPARE( env, expEnv );
 
82
 
 
83
  delete serializer;
 
84
 
 
85
}
 
86
 
 
87
void MailSerializerTest::testParts()
 
88
{
 
89
  Item item;
 
90
  item.setMimeType( "message/rfc822" );
 
91
  KMime::Message *m = new Message;
 
92
  MessagePtr msg( m );
 
93
  item.setPayload( msg );
 
94
 
 
95
  SerializerPluginMail *serializer = new SerializerPluginMail();
 
96
  QVERIFY( serializer->parts( item ).isEmpty() );
 
97
 
 
98
  msg->setHead( "foo" );
 
99
  QSet<QByteArray> parts = serializer->parts( item );
 
100
  QCOMPARE( parts.count(), 2 );
 
101
  QVERIFY( parts.contains( MessagePart::Envelope ) );
 
102
  QVERIFY( parts.contains( MessagePart::Header ) );
 
103
 
 
104
  msg->setBody( "bar" );
 
105
  parts = serializer->parts( item );
 
106
  QCOMPARE( parts.count(), 3 );
 
107
  QVERIFY( parts.contains( MessagePart::Envelope ) );
 
108
  QVERIFY( parts.contains( MessagePart::Header ) );
 
109
  QVERIFY( parts.contains( MessagePart::Body ) );
 
110
 
 
111
  delete serializer;
 
112
}
 
113
 
 
114