1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
#include <QTest>
#include <QDebug>
#include <QSignalSpy>
#include <functional>
#include <QStandardPaths>
#include <QDir>
#include <sink/test.h>
#include <sink/store.h>
#include "imapsettings.h"
class SettingsTest : public QObject
{
Q_OBJECT
private slots:
void initTestCase()
{
Sink::Test::initTest();
}
void testLoad()
{
auto accountId = "accountid";
auto imapServer = QString("imapserver");
auto imapUsername = QString("imapName");
auto imapPassword = QString("imapPw");
auto smtpServer = QString("smtpserver");
auto smtpUsername = QString("smtpName");
auto smtpPassword = QString("smtpPw");
auto username = QString("username");
auto emailAddress = QString("emailAddress");
ImapSettings settings;
settings.setAccountIdentifier(accountId);
settings.setProperty("imapServer", imapServer);
settings.setProperty("imapUsername", imapUsername);
settings.setProperty("imapPassword", imapPassword);
settings.setProperty("smtpServer", smtpServer);
settings.setProperty("smtpUsername", smtpUsername);
settings.setProperty("smtpPassword", smtpPassword);
settings.setProperty("userName", username);
settings.setProperty("emailAddress", emailAddress);
settings.save();
Sink::Store::fetchAll<Sink::ApplicationDomain::SinkResource>(Sink::Query()).then([](const QList<Sink::ApplicationDomain::SinkResource::Ptr> &resources) {
QCOMPARE(resources.size(), 2);
})
.exec().waitForFinished();
//Ensure we can read back all the information using the accountid
{
ImapSettings readSettings;
QSignalSpy spy(&readSettings, &ImapSettings::imapResourceChanged);
QSignalSpy spy1(&readSettings, &ImapSettings::smtpResourceChanged);
readSettings.setAccountIdentifier(accountId);
//Once for clear and once for the new setting
QTRY_COMPARE(spy.count(), 2);
QTRY_COMPARE(spy1.count(), 2);
QVERIFY(!readSettings.accountIdentifier().isEmpty());
QCOMPARE(readSettings.property("imapServer").toString(), imapServer);
QCOMPARE(readSettings.property("imapUsername").toString(), imapUsername);
QCOMPARE(readSettings.property("imapPassword").toString(), imapPassword);
QCOMPARE(readSettings.property("smtpServer").toString(), smtpServer);
QCOMPARE(readSettings.property("smtpUsername").toString(), smtpUsername);
QCOMPARE(readSettings.property("smtpPassword").toString(), smtpPassword);
QCOMPARE(readSettings.property("userName").toString(), username);
QCOMPARE(readSettings.property("emailAddress").toString(), emailAddress);
}
//Modify all settings
{
settings.setProperty("imapServer", imapServer + "mod");
settings.setProperty("imapUsername", imapUsername + "mod");
settings.setProperty("imapPassword", imapPassword + "mod");
settings.setProperty("smtpServer", smtpServer + "mod");
settings.setProperty("smtpUsername", smtpUsername + "mod");
settings.setProperty("smtpPassword", smtpPassword + "mod");
settings.setProperty("userName", username + "mod");
settings.setProperty("emailAddress", emailAddress + "mod");
settings.save();
}
//Read back settings again
{
ImapSettings readSettings;
QSignalSpy spy(&readSettings, &ImapSettings::imapResourceChanged);
QSignalSpy spy1(&readSettings, &ImapSettings::smtpResourceChanged);
readSettings.setAccountIdentifier(accountId);
//Once for clear and once for the new setting
QTRY_COMPARE(spy.count(), 2);
QTRY_COMPARE(spy1.count(), 2);
QVERIFY(!readSettings.accountIdentifier().isEmpty());
QCOMPARE(readSettings.property("imapServer").toString(), imapServer + "mod");
QCOMPARE(readSettings.property("imapUsername").toString(), imapUsername + "mod");
QCOMPARE(readSettings.property("imapPassword").toString(), imapPassword + "mod");
QCOMPARE(readSettings.property("smtpServer").toString(), smtpServer + "mod");
QCOMPARE(readSettings.property("smtpUsername").toString(), smtpUsername + "mod");
QCOMPARE(readSettings.property("smtpPassword").toString(), smtpPassword + "mod");
QCOMPARE(readSettings.property("userName").toString(), username + "mod");
QCOMPARE(readSettings.property("emailAddress").toString(), emailAddress + "mod");
}
{
ImapSettings settings;
QSignalSpy spy(&settings, &ImapSettings::imapResourceChanged);
settings.setAccountIdentifier(accountId);
QTRY_COMPARE(spy.count(), 2);
settings.remove();
}
Sink::Store::fetchAll<Sink::ApplicationDomain::SinkResource>(Sink::Query()).then([](const QList<Sink::ApplicationDomain::SinkResource::Ptr> &resources) {
QCOMPARE(resources.size(), 0);
})
.exec().waitForFinished();
}
};
QTEST_GUILESS_MAIN(SettingsTest)
#include "settingstest.moc"
|