Warning, file /frameworks/kcontacts/autotests/soundtest.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 This file is part of the KContacts framework. 0003 SPDX-FileCopyrightText: 2007 Tobias Koenig <tokoe@kde.org> 0004 0005 SPDX-License-Identifier: LGPL-2.0-or-later 0006 */ 0007 0008 #include "soundtest.h" 0009 #include "addressee.h" 0010 #include "kcontacts/sound.h" 0011 #include "vcardtool_p.h" 0012 #include <QTest> 0013 0014 QTEST_MAIN(SoundTest) 0015 0016 static QByteArray testData() 0017 { 0018 static QByteArray data; 0019 0020 if (data.isNull()) { 0021 for (int i = 0; i < 20; ++i) { 0022 data.append(char(i)); 0023 } 0024 } 0025 0026 return data; 0027 } 0028 0029 void SoundTest::emptyTest() 0030 { 0031 KContacts::Sound sound; 0032 0033 QVERIFY(sound.isEmpty()); 0034 } 0035 0036 void SoundTest::storeTestIntern() 0037 { 0038 KContacts::Sound sound; 0039 0040 sound.setData(testData()); 0041 0042 QVERIFY(sound.isIntern() == true); 0043 QVERIFY(sound.data() == testData()); 0044 } 0045 0046 void SoundTest::storeTestExtern() 0047 { 0048 KContacts::Sound sound; 0049 0050 sound.setUrl(QLatin1String("http://myhomepage.com/sound.wav")); 0051 0052 QVERIFY(sound.isIntern() == false); 0053 QVERIFY(sound.url() == QLatin1String("http://myhomepage.com/sound.wav")); 0054 } 0055 0056 void SoundTest::equalsTestIntern() 0057 { 0058 KContacts::Sound sound1; 0059 KContacts::Sound sound2; 0060 0061 sound1.setData(testData()); 0062 sound2.setData(testData()); 0063 0064 QVERIFY(sound1 == sound2); 0065 } 0066 0067 void SoundTest::equalsTestExtern() 0068 { 0069 KContacts::Sound sound1; 0070 KContacts::Sound sound2; 0071 0072 sound1.setUrl(QStringLiteral("http://myhomepage.com/sound.wav")); 0073 sound2.setUrl(QStringLiteral("http://myhomepage.com/sound.wav")); 0074 0075 QVERIFY(sound1 == sound2); 0076 } 0077 0078 void SoundTest::differsTest() 0079 { 0080 KContacts::Sound sound1; 0081 KContacts::Sound sound2; 0082 0083 sound1.setUrl(QStringLiteral("http://myhomepage.com/sound.wav")); 0084 sound2.setData(testData()); 0085 0086 QVERIFY(sound1 != sound2); 0087 } 0088 0089 void SoundTest::assignmentTestIntern() 0090 { 0091 KContacts::Sound sound1; 0092 KContacts::Sound sound2; 0093 0094 sound1.setData(testData()); 0095 0096 sound2 = sound1; 0097 0098 QVERIFY(sound1 == sound2); 0099 } 0100 0101 void SoundTest::assignmentTestExtern() 0102 { 0103 KContacts::Sound sound1; 0104 KContacts::Sound sound2; 0105 0106 sound1.setUrl(QStringLiteral("http://myhomepage.com/sound.wav")); 0107 0108 sound2 = sound1; 0109 0110 QVERIFY(sound1 == sound2); 0111 } 0112 0113 void SoundTest::serializeTest() 0114 { 0115 KContacts::Sound sound1; 0116 KContacts::Sound sound2; 0117 0118 sound1.setUrl(QStringLiteral("http://myhomepage.com/sound.wav")); 0119 sound1.setData(testData()); 0120 0121 QByteArray data; 0122 QDataStream s(&data, QIODevice::WriteOnly); 0123 s << sound1; 0124 0125 QDataStream t(&data, QIODevice::ReadOnly); 0126 t >> sound2; 0127 0128 QVERIFY(sound1 == sound2); 0129 } 0130 0131 void SoundTest::shouldParseSource() 0132 { 0133 QByteArray vcarddata( 0134 "BEGIN:VCARD\n" 0135 "VERSION:3.0\n" 0136 "N:LastName;FirstName;;;\n" 0137 "UID:c80cf296-0825-4eb0-ab16-1fac1d522a33@xxxxxx.xx\n" 0138 "REV:2015-03-14T09:24:45+00:00\n" 0139 "SOUND;VALUE=URI:http://myhomepage.com/sound.wav\n" 0140 "FN:FirstName LastName\n" 0141 "END:VCARD\n"); 0142 0143 KContacts::VCardTool vcard; 0144 const KContacts::AddresseeList lst = vcard.parseVCards(vcarddata); 0145 QCOMPARE(lst.count(), 1); 0146 QVERIFY(!lst.at(0).sound().isEmpty()); 0147 KContacts::Sound sound = lst.at(0).sound(); 0148 QVERIFY(!sound.isIntern()); 0149 QCOMPARE(sound.url(), QStringLiteral("http://myhomepage.com/sound.wav")); 0150 } 0151 0152 void SoundTest::shouldGenerateVCard4WithData() 0153 { 0154 KContacts::Addressee::List lst; 0155 KContacts::Addressee addr; 0156 addr.setEmails(QStringList() << QStringLiteral("foo@kde.org")); 0157 addr.setUid(QStringLiteral("testuid")); 0158 KContacts::Sound sound1; 0159 0160 sound1.setUrl(QStringLiteral("http://myhomepage.com/sound.wav")); 0161 sound1.setData(testData()); 0162 addr.setSound(sound1); 0163 0164 lst << addr; 0165 KContacts::VCardTool vcard; 0166 const QByteArray ba = vcard.exportVCards(lst, KContacts::VCard::v4_0); 0167 QByteArray expected; 0168 expected = QByteArray( 0169 "BEGIN:VCARD\r\n" 0170 "VERSION:4.0\r\n" 0171 "EMAIL:foo@kde.org\r\n" 0172 "N:;;;;\r\n" 0173 "SOUND;ENCODING=b:AAECAwQFBgcICQoLDA0ODxAREhM=\r\n" 0174 "UID:testuid\r\n" 0175 "END:VCARD\r\n\r\n"); 0176 0177 QCOMPARE(ba, expected); 0178 } 0179 0180 void SoundTest::shouldGenerateVCard4WithUrl() 0181 { 0182 KContacts::Addressee::List lst; 0183 KContacts::Addressee addr; 0184 addr.setEmails(QStringList() << QStringLiteral("foo@kde.org")); 0185 addr.setUid(QStringLiteral("testuid")); 0186 KContacts::Sound sound1; 0187 0188 sound1.setUrl(QStringLiteral("http://myhomepage.com/sound.wav")); 0189 addr.setSound(sound1); 0190 0191 lst << addr; 0192 KContacts::VCardTool vcard; 0193 const QByteArray ba = vcard.exportVCards(lst, KContacts::VCard::v4_0); 0194 QByteArray expected; 0195 expected = QByteArray( 0196 "BEGIN:VCARD\r\n" 0197 "VERSION:4.0\r\n" 0198 "EMAIL:foo@kde.org\r\n" 0199 "N:;;;;\r\n" 0200 "SOUND;VALUE=URI:http://myhomepage.com/sound.wav\r\n" 0201 "UID:testuid\r\n" 0202 "END:VCARD\r\n\r\n"); 0203 0204 QCOMPARE(ba, expected); 0205 } 0206 0207 void SoundTest::shouldGenerateVCard3WithData() 0208 { 0209 KContacts::Addressee::List lst; 0210 KContacts::Addressee addr; 0211 addr.setEmails(QStringList() << QStringLiteral("foo@kde.org")); 0212 addr.setUid(QStringLiteral("testuid")); 0213 KContacts::Sound sound1; 0214 0215 sound1.setUrl(QStringLiteral("http://myhomepage.com/sound.wav")); 0216 sound1.setData(testData()); 0217 addr.setSound(sound1); 0218 0219 lst << addr; 0220 KContacts::VCardTool vcard; 0221 const QByteArray ba = vcard.exportVCards(lst, KContacts::VCard::v3_0); 0222 QByteArray expected; 0223 expected = QByteArray( 0224 "BEGIN:VCARD\r\n" 0225 "VERSION:3.0\r\n" 0226 "EMAIL:foo@kde.org\r\n" 0227 "N:;;;;\r\n" 0228 "SOUND;ENCODING=b:AAECAwQFBgcICQoLDA0ODxAREhM=\r\n" 0229 "UID:testuid\r\n" 0230 "END:VCARD\r\n\r\n"); 0231 0232 QCOMPARE(ba, expected); 0233 } 0234 0235 void SoundTest::shouldGenerateVCard3WithUrl() 0236 { 0237 KContacts::Addressee::List lst; 0238 KContacts::Addressee addr; 0239 addr.setEmails(QStringList() << QStringLiteral("foo@kde.org")); 0240 addr.setUid(QStringLiteral("testuid")); 0241 KContacts::Sound sound1; 0242 0243 sound1.setUrl(QStringLiteral("http://myhomepage.com/sound.wav")); 0244 addr.setSound(sound1); 0245 0246 lst << addr; 0247 KContacts::VCardTool vcard; 0248 const QByteArray ba = vcard.exportVCards(lst, KContacts::VCard::v3_0); 0249 QByteArray expected; 0250 expected = QByteArray( 0251 "BEGIN:VCARD\r\n" 0252 "VERSION:3.0\r\n" 0253 "EMAIL:foo@kde.org\r\n" 0254 "N:;;;;\r\n" 0255 "SOUND;VALUE=URI:http://myhomepage.com/sound.wav\r\n" 0256 "UID:testuid\r\n" 0257 "END:VCARD\r\n\r\n"); 0258 0259 QCOMPARE(ba, expected); 0260 }