add a test that creates 100 notifications

This commit is contained in:
Patrick von Reth 2015-07-29 16:09:54 +02:00
parent d1aef594d8
commit b161530394

View File

@ -1,4 +1,5 @@
#include <libsnore/snore.h> #include <libsnore/snore.h>
#include <libsnore/snore_p.h>
#include <libsnore/utils.h> #include <libsnore/utils.h>
#include <QTextDocument> #include <QTextDocument>
@ -13,9 +14,14 @@ class SnoreBenchmark : public QObject
public: public:
SnoreBenchmark() SnoreBenchmark()
{ {
SnoreCore::instance(); SnoreLog::setDebugLvl(3);
SnoreCore &instance = SnoreCore::instance();
instance.loadPlugins(SnorePlugin::BACKEND);
instance.setSettingsValue(QLatin1String("Timeout"), 1, LOCAL_SETTING);
} }
QString htmlTestString = QLatin1String("<i>Italic A</i><br>" QString htmlTestString = QLatin1String("<i>Italic A</i><br>"
"<i>Italic B</i><br>" "<i>Italic B</i><br>"
"<b>Bold</b><br>" "<b>Bold</b><br>"
@ -23,10 +29,13 @@ public:
"<font color=\"blue\">Font</font><br>" "<font color=\"blue\">Font</font><br>"
"&lt;&amp;&gt;<br>" "&lt;&amp;&gt;<br>"
"<a href=\"https://github.com/Snorenotify/Snorenotify\">Website</a><br>"); "<a href=\"https://github.com/Snorenotify/Snorenotify\">Website</a><br>");
QTemporaryFile tempSettings;
private Q_SLOTS: private Q_SLOTS:
void benchmarkUtilsToHtml(); void benchmarkUtilsToHtml();
void benchmarkUtilsToHtmlAllMarkup(); void benchmarkUtilsToHtmlAllMarkup();
void benchmarkUtilsToPlain(); void benchmarkUtilsToPlain();
void benchmarkNotifications();
}; };
@ -34,19 +43,19 @@ void SnoreBenchmark::benchmarkUtilsToHtml()
{ {
QCOMPARE(Utils::normalizeMarkup(htmlTestString, Utils::NO_MARKUP), QLatin1String("Italic A\n" QCOMPARE(Utils::normalizeMarkup(htmlTestString, Utils::NO_MARKUP), QLatin1String("Italic A\n"
"Italic B\n" "Italic B\n"
"Bold\n" "Bold\n"
"Underline\n" "Underline\n"
"Font\n" "Font\n"
"<&>\n" "<&>\n"
"Website\n")); "Website\n"));
QCOMPARE(Utils::normalizeMarkup(htmlTestString, Utils::HREF), QLatin1String("Italic A\n" QCOMPARE(Utils::normalizeMarkup(htmlTestString, Utils::HREF), QLatin1String("Italic A\n"
"Italic B\n" "Italic B\n"
"Bold\n" "Bold\n"
"Underline\n" "Underline\n"
"Font\n" "Font\n"
"&lt;&amp;&gt;\n" "&lt;&amp;&gt;\n"
"<a href=\"https://github.com/Snorenotify/Snorenotify\">Website</a>\n")); "<a href=\"https://github.com/Snorenotify/Snorenotify\">Website</a>\n"));
QCOMPARE(Utils::normalizeMarkup(htmlTestString, Utils::HREF | Utils::BOLD | Utils::BREAK | QCOMPARE(Utils::normalizeMarkup(htmlTestString, Utils::HREF | Utils::BOLD | Utils::BREAK |
Utils::UNDERLINE | Utils::FONT | Utils::ITALIC), htmlTestString); Utils::UNDERLINE | Utils::FONT | Utils::ITALIC), htmlTestString);
QBENCHMARK{ QBENCHMARK{
@ -69,6 +78,31 @@ void SnoreBenchmark::benchmarkUtilsToPlain()
Utils::normalizeMarkup(htmlTestString, Utils::NO_MARKUP); Utils::normalizeMarkup(htmlTestString, Utils::NO_MARKUP);
} }
} }
void SnoreBenchmark::benchmarkNotifications()
{
SnoreCore &instance = SnoreCore::instance();
int closed = 0;
connect(&instance, SnoreCore::notificationClosed, [&closed](Notification)
{
closed++;
});
Application app = SnoreCorePrivate::instance()->defaultApplication();
// QBENCHMARK_ONCE{
for( int i=0; i<100; ++i)
{
QString number = QString::number(i);
Notification n(app, app.defaultAlert(), QLatin1String("Test ") + number, QLatin1String("Message ") + number, app.icon() );
instance.broadcastNotification(n);
}
// }
while(closed < 100){
QTest::qWait(100);
}
}
QTEST_MAIN(SnoreBenchmark) QTEST_MAIN(SnoreBenchmark)
#include "snorebenchmark.moc" #include "snorebenchmark.moc"