Warning, file /frameworks/kcontacts/autotests/picturetest.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 "picturetest.h" 0009 #include "kcontacts/picture.h" 0010 #include <QBuffer> 0011 #include <QPainter> 0012 #include <QTest> 0013 0014 QTEST_MAIN(PictureTest) 0015 0016 static QImage testImage() 0017 { 0018 static QImage image; 0019 0020 if (image.isNull()) { 0021 image = QImage(200, 200, QImage::Format_RGB32); 0022 QPainter p(&image); 0023 p.drawRect(10, 10, 50, 50); 0024 } 0025 0026 return image; 0027 } 0028 0029 static QByteArray testImageRawPNG() 0030 { 0031 static QByteArray raw; 0032 0033 if (raw.isNull()) { 0034 QBuffer buffer(&raw); 0035 buffer.open(QIODevice::WriteOnly); 0036 testImage().save(&buffer, "PNG"); 0037 } 0038 0039 return raw; 0040 } 0041 0042 static QByteArray testImageRawJPEG() 0043 { 0044 static QByteArray raw; 0045 0046 if (raw.isNull()) { 0047 QBuffer buffer(&raw); 0048 buffer.open(QIODevice::WriteOnly); 0049 testImage().save(&buffer, "JPEG"); 0050 } 0051 0052 return raw; 0053 } 0054 0055 void PictureTest::emptyTest() 0056 { 0057 KContacts::Picture picture; 0058 0059 QVERIFY(picture.isEmpty()); 0060 } 0061 0062 void PictureTest::storeTestInternImage() 0063 { 0064 KContacts::Picture picture; 0065 0066 picture.setData(testImage()); 0067 0068 QVERIFY(picture.isEmpty() == false); 0069 QVERIFY(picture.isIntern() == true); 0070 QVERIFY(picture.type() == QLatin1String("jpeg")); 0071 QVERIFY(picture.data() == testImage()); 0072 QVERIFY(picture.rawData() == testImageRawJPEG()); 0073 } 0074 0075 void PictureTest::storeTestInternRawData() 0076 { 0077 KContacts::Picture picture; 0078 0079 picture.setRawData(testImageRawPNG(), QStringLiteral("png")); 0080 0081 QVERIFY(picture.isEmpty() == false); 0082 QVERIFY(picture.isIntern() == true); 0083 QVERIFY(picture.type() == QLatin1String("png")); 0084 QVERIFY(picture.rawData() == testImageRawPNG()); 0085 QVERIFY(picture.data() == testImage()); 0086 } 0087 0088 void PictureTest::storeTestExtern() 0089 { 0090 KContacts::Picture picture; 0091 0092 picture.setUrl(QStringLiteral("http://myhomepage.com/foto.png"), QStringLiteral("png")); 0093 0094 QVERIFY(picture.isEmpty() == false); 0095 QVERIFY(picture.isIntern() == false); 0096 QVERIFY(picture.type() == QLatin1String("png")); 0097 QVERIFY(picture.url() == QLatin1String("http://myhomepage.com/foto.png")); 0098 } 0099 0100 void PictureTest::equalsTestInternImage() 0101 { 0102 KContacts::Picture picture1; 0103 KContacts::Picture picture2; 0104 0105 picture1.setData(testImage()); 0106 0107 picture2.setData(testImage()); 0108 0109 QVERIFY(picture1 == picture2); 0110 0111 // access rawData() so a QByteArray is created 0112 QVERIFY(!picture1.rawData().isNull()); 0113 QVERIFY(picture1 == picture2); 0114 } 0115 0116 void PictureTest::equalsTestInternRawData() 0117 { 0118 KContacts::Picture picture1; 0119 KContacts::Picture picture2; 0120 0121 picture1.setRawData(testImageRawPNG(), QStringLiteral("png")); 0122 0123 picture2.setRawData(testImageRawPNG(), QStringLiteral("png")); 0124 0125 QVERIFY(picture1 == picture2); 0126 0127 // access data() so a QImage is created 0128 QVERIFY(!picture1.data().isNull()); 0129 QVERIFY(picture1 == picture2); 0130 } 0131 0132 void PictureTest::equalsTestInternImageAndRawData() 0133 { 0134 KContacts::Picture picture1; 0135 KContacts::Picture picture2; 0136 0137 picture1.setData(testImage()); 0138 0139 picture2.setRawData(testImageRawJPEG(), QStringLiteral("jpeg")); 0140 0141 QVERIFY(picture1.rawData() == picture2.rawData()); 0142 } 0143 0144 void PictureTest::equalsTestExtern() 0145 { 0146 KContacts::Picture picture1; 0147 KContacts::Picture picture2; 0148 0149 picture1.setUrl(QStringLiteral("http://myhomepage.com/foto.png"), QStringLiteral("png")); 0150 0151 picture2.setUrl(QStringLiteral("http://myhomepage.com/foto.png"), QStringLiteral("png")); 0152 0153 QVERIFY(picture1 == picture2); 0154 } 0155 0156 void PictureTest::differsTest() 0157 { 0158 KContacts::Picture picture1; 0159 KContacts::Picture picture2; 0160 0161 picture1.setUrl(QStringLiteral("http://myhomepage.com/foto.png"), QStringLiteral("png")); 0162 0163 picture2.setData(testImage()); 0164 0165 QVERIFY(picture1 != picture2); 0166 } 0167 0168 void PictureTest::differsTestInternRawData() 0169 { 0170 KContacts::Picture picture1; 0171 KContacts::Picture picture2; 0172 0173 picture1.setRawData(testImageRawJPEG(), QStringLiteral("jpeg")); 0174 0175 picture2.setRawData(testImageRawPNG(), QStringLiteral("png")); 0176 0177 QVERIFY(picture1 != picture2); 0178 QVERIFY(picture1.rawData() != picture2.rawData()); 0179 } 0180 0181 void PictureTest::differsTestExtern() 0182 { 0183 KContacts::Picture picture1; 0184 KContacts::Picture picture2; 0185 0186 picture1.setUrl(QStringLiteral("http://myhomepage.com/foto.png"), QStringLiteral("png")); 0187 0188 picture1.setUrl(QStringLiteral("http://myhomepage.com/foto2.png"), QStringLiteral("png")); 0189 0190 QVERIFY(picture1 != picture2); 0191 } 0192 0193 void PictureTest::assignmentTestIntern() 0194 { 0195 KContacts::Picture picture1; 0196 KContacts::Picture picture2; 0197 0198 picture1.setData(testImage()); 0199 0200 picture2 = picture1; 0201 0202 QVERIFY(picture1 == picture2); 0203 } 0204 0205 void PictureTest::assignmentTestExtern() 0206 { 0207 KContacts::Picture picture1; 0208 KContacts::Picture picture2; 0209 0210 picture1.setUrl(QStringLiteral("http://myhomepage.com/foto.png"), QStringLiteral("png")); 0211 0212 picture2 = picture1; 0213 0214 QVERIFY(picture1 == picture2); 0215 } 0216 0217 void PictureTest::serializeTestInternImage() 0218 { 0219 KContacts::Picture picture1; 0220 KContacts::Picture picture2; 0221 0222 picture1.setData(testImage()); 0223 0224 QByteArray data; 0225 QDataStream s(&data, QIODevice::WriteOnly); 0226 s << picture1; 0227 0228 QDataStream t(&data, QIODevice::ReadOnly); 0229 t >> picture2; 0230 0231 QVERIFY(picture1 == picture2); 0232 } 0233 0234 void PictureTest::serializeTestInternRawData() 0235 { 0236 KContacts::Picture picture1; 0237 KContacts::Picture picture2; 0238 0239 picture1.setRawData(testImageRawPNG(), QStringLiteral("png")); 0240 0241 QByteArray data; 0242 QDataStream s(&data, QIODevice::WriteOnly); 0243 s << picture1; 0244 0245 QDataStream t(&data, QIODevice::ReadOnly); 0246 t >> picture2; 0247 0248 QVERIFY(picture1 == picture2); 0249 } 0250 0251 void PictureTest::serializeTestExtern() 0252 { 0253 KContacts::Picture picture1; 0254 KContacts::Picture picture2; 0255 0256 picture1.setUrl(QStringLiteral("http://myhomepage.com/foto.png"), QStringLiteral("png")); 0257 0258 QByteArray data; 0259 QDataStream s(&data, QIODevice::WriteOnly); 0260 s << picture1; 0261 0262 QDataStream t(&data, QIODevice::ReadOnly); 0263 t >> picture2; 0264 0265 QVERIFY(picture1 == picture2); 0266 }