@@ -63,7 +63,7 @@ private Q_SLOTS:
64 QVERIFY(lines[0].startsWith(templateString));
64 QVERIFY(lines[0].startsWith(templateString));
65 QVERIFY(lines[1].startsWith(componentsString));
65 QVERIFY(lines[1].startsWith(componentsString));
66− QVERIFY(lines[2].startsWith(resultString));
66+
67 const QString templateJSON = lines[0].mid(templateString.length());
67 const QString templateJSON = lines[0].mid(templateString.length());
68 const QString componentsJSON = lines[1].mid(componentsString.length());
68 const QString componentsJSON = lines[1].mid(componentsString.length());
69 const QString resultFileName = lines[2].mid(resultString.length());
69 const QString resultFileName = lines[2].mid(resultString.length());
@@ -71,30 +71,32 @@ private Q_SLOTS:
71 QVariant cardStringResult;
71 QVariant cardStringResult;
72 QMetaObject::invokeMethod(view->rootObject(), "cardString", Q_RETURN_ARG(QVariant, cardStringResult), Q_ARG(QVariant, templateJSON), Q_ARG(QVariant, componentsJSON));
72 QMetaObject::invokeMethod(view->rootObject(), "cardString", Q_RETURN_ARG(QVariant, cardStringResult), Q_ARG(QVariant, templateJSON), Q_ARG(QVariant, componentsJSON));
74+ if (!resultFileName.isEmpty()) {
74− QFile testResultFile(testDirPath + resultFileName);
75+ QFile testResultFile(testDirPath + resultFileName);
75− QVERIFY(testResultFile.open(QIODevice::ReadOnly));
76+ QVERIFY(testResultFile.open(QIODevice::ReadOnly));
76− QTextStream ts2(&testResultFile);
77+ QTextStream ts2(&testResultFile);
78− // Record failed results to /tmp
79+ // Record failed results to /tmp
79− const QString executedResult = cardStringResult.toString();
80+ const QString executedResult = cardStringResult.toString();
80− QTemporaryFile tmpFile(QDir::tempPath() + QDir::separator() + "testCardCreatorFailedResultXXXXXX");
81+ QTemporaryFile tmpFile(QDir::tempPath() + QDir::separator() + "testCardCreatorFailedResultXXXXXX");
81− tmpFile.open();
82+ tmpFile.open();
82− tmpFile.setAutoRemove(false);
83+ tmpFile.setAutoRemove(false);
83− tmpFile.write(executedResult.toUtf8().constData());
84+ tmpFile.write(executedResult.toUtf8().constData());
85− // Line by line comparison
86+ // Line by line comparison
86− const QStringList expectedLines = ts2.readAll().trimmed().replace(QRegExp("\n\\s*\n"),"\n").split("\n");
87+ const QStringList expectedLines = ts2.readAll().trimmed().replace(QRegExp("\n\\s*\n"),"\n").split("\n");
87− const QStringList cardStringResultLines = cardStringResult.toString().trimmed().replace(QRegExp("\n\\s*\n"),"\n").split("\n");
88+ const QStringList cardStringResultLines = cardStringResult.toString().trimmed().replace(QRegExp("\n\\s*\n"),"\n").split("\n");
88− for (int i = 0; i < expectedLines.size(); ++i) {
89+ for (int i = 0; i < expectedLines.size(); ++i) {
89− QCOMPARE(cardStringResultLines[i].simplified(), expectedLines[i].simplified());
90+ QCOMPARE(cardStringResultLines[i].simplified(), expectedLines[i].simplified());
93+ // Remove the result if it passed
94+ tmpFile.setAutoRemove(true);
92− // Remove the result if it passed
93− tmpFile.setAutoRemove(true);
95 QVariant createCardComponentResult;
97 QVariant createCardComponentResult;
96 QMetaObject::invokeMethod(view->rootObject(), "createCardComponent", Q_RETURN_ARG(QVariant, createCardComponentResult), Q_ARG(QVariant, templateJSON), Q_ARG(QVariant, componentsJSON));
98 QMetaObject::invokeMethod(view->rootObject(), "createCardComponent", Q_RETURN_ARG(QVariant, createCardComponentResult), Q_ARG(QVariant, templateJSON), Q_ARG(QVariant, componentsJSON));
97− QVERIFY(createCardComponentResult.toBool());
99+ QCOMPARE(createCardComponentResult.toBool(), !resultFileName.isEmpty());