Changeset View
Changeset View
Standalone View
Standalone View
plugins/messageviewer/bodypartformatter/autotests/rendertest.cpp
Show First 20 Lines • Show All 95 Lines • ▼ Show 20 Line(s) | 69 | { | |||
---|---|---|---|---|---|
96 | otp.parseObjectTree(msg.data()); | 96 | otp.parseObjectTree(msg.data()); | ||
97 | 97 | | |||
98 | fileWriter.write(QStringLiteral("</body></html>")); | 98 | fileWriter.write(QStringLiteral("</body></html>")); | ||
99 | fileWriter.end(); | 99 | fileWriter.end(); | ||
100 | 100 | | |||
101 | compareFile(outFileName, referenceFileName); | 101 | compareFile(outFileName, referenceFileName); | ||
102 | } | 102 | } | ||
103 | 103 | | |||
104 | void RenderTest::testRenderKeyDetails_data() | ||||
105 | { | ||||
106 | QTest::addColumn<QString>("basename"); | ||||
107 | QTest::newRow("message-with-openpgp-key.mbox") << QStringLiteral("message-with-openpgp-key.mbox"); | ||||
108 | QTest::newRow("message-with-two-openpgp-key.mbox") << QStringLiteral("message-with-two-openpgp-key.mbox"); | ||||
109 | } | ||||
110 | | ||||
111 | void RenderTest::testRenderKeyDetails() | ||||
112 | { | ||||
113 | QFETCH(QString, basename); | ||||
114 | QString mailFileName = QStringLiteral(MAIL_DATA_DIR) + QLatin1Char('/') + basename; | ||||
115 | QString referenceFileName = QStringLiteral(MAIL_DATA_DIR) + QLatin1Char('/') + basename + QStringLiteral(".html"); | ||||
116 | QString outFileName = basename + QStringLiteral(".out"); | ||||
117 | | ||||
118 | // load input mail | ||||
119 | QFile mailFile(mailFileName); | ||||
120 | QVERIFY(mailFile.open(QIODevice::ReadOnly)); | ||||
121 | const QByteArray mailData = KMime::CRLFtoLF(mailFile.readAll()); | ||||
122 | QVERIFY(!mailData.isEmpty()); | ||||
123 | KMime::Message::Ptr msg(new KMime::Message); | ||||
124 | msg->setContent(mailData); | ||||
125 | msg->parse(); | ||||
126 | | ||||
127 | // render the mail | ||||
128 | QEventLoop loop; | ||||
129 | MimeTreeParser::FileHtmlWriter fileWriter(outFileName); | ||||
130 | fileWriter.begin(); | ||||
131 | QImage paintDevice; | ||||
132 | MessageViewer::CSSHelperBase cssHelper(&paintDevice); | ||||
133 | MimeTreeParser::NodeHelper nodeHelper; | ||||
134 | TestObjectTreeSource testSource(&fileWriter, &cssHelper); | ||||
135 | testSource.setShowSignatureDetails(true); | ||||
136 | MimeTreeParser::ObjectTreeParser otp(&testSource, &nodeHelper); | ||||
137 | | ||||
138 | fileWriter.write(QStringLiteral("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n" | ||||
139 | "<html>\n" | ||||
140 | "<body>\n")); | ||||
141 | | ||||
142 | connect(&nodeHelper, &MimeTreeParser::NodeHelper::update, &loop, &QEventLoop::quit); | ||||
143 | otp.parseObjectTree(msg.data()); | ||||
144 | | ||||
145 | fileWriter.write(QStringLiteral("</body></html>")); | ||||
146 | fileWriter.end(); | ||||
147 | | ||||
148 | compareFile(outFileName, referenceFileName + QStringLiteral(".running")); | ||||
149 | loop.exec(); | ||||
150 | | ||||
151 | { | ||||
152 | MimeTreeParser::ObjectTreeParser otp(&testSource, &nodeHelper); | ||||
153 | fileWriter.begin(); | ||||
154 | fileWriter.write(QStringLiteral("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n" | ||||
155 | "<html>\n" | ||||
156 | "<body>\n")); | ||||
157 | otp.parseObjectTree(msg.data()); | ||||
158 | | ||||
159 | fileWriter.write(QStringLiteral("</body></html>")); | ||||
160 | fileWriter.end(); | ||||
161 | | ||||
162 | compareFile(outFileName, referenceFileName + QStringLiteral(".details")); | ||||
163 | } | ||||
164 | } | ||||
165 | | ||||
166 | | ||||
167 | | ||||
104 | void RenderTest::compareFile(const QString &outFile, const QString &referenceFile) | 168 | void RenderTest::compareFile(const QString &outFile, const QString &referenceFile) | ||
105 | { | 169 | { | ||
106 | QVERIFY(QFile::exists(outFile)); | 170 | QVERIFY(QFile::exists(outFile)); | ||
107 | 171 | | |||
108 | const QString htmlFile = outFile + QStringLiteral(".html"); | 172 | const QString htmlFile = outFile + QStringLiteral(".html"); | ||
109 | // remove tailing newlines and spaces and make htmlmore uniform (breaks pre tags) | 173 | // remove tailing newlines and spaces and make htmlmore uniform (breaks pre tags) | ||
110 | { | 174 | { | ||
111 | QFile f(outFile); | 175 | QFile f(outFile); | ||
▲ Show 20 Lines • Show All 55 Lines • Show Last 20 Lines |