Skip to content

Commit da96d27

Browse files
committed
wip: test migration.
Signed-off-by: Camila Ayres <[email protected]>
1 parent 74c0527 commit da96d27

File tree

1 file changed

+145
-73
lines changed

1 file changed

+145
-73
lines changed

test/testmigration.cpp

Lines changed: 145 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@
1111

1212
#include "QtTest/qtestcase.h"
1313
#include "common/utility.h"
14-
#include "folderman.h"
15-
#include "account.h"
1614
#include "accountstate.h"
1715
#include <accountmanager.h>
1816
#include "configfile.h"
@@ -37,10 +35,9 @@ class TestMigration: public QObject
3735
{
3836
Q_OBJECT
3937

40-
std::unique_ptr<FolderMan> _fm;
38+
ConfigFile configFile;
39+
QTemporaryDir temporaryDir;
4140

42-
signals:
43-
void incomingShareDeleted();
4441
private:
4542
static constexpr char legacyAppName[] = "ownCloud";
4643
static constexpr char standardAppName[] = "Nextcloud";
@@ -82,21 +79,8 @@ class TestMigration: public QObject
8279
"ownCloud_credentials%oc.de%2ba4b09a-1223-aaaa-abcd-c2df238816d8\\http\\password=true";
8380

8481
private slots:
85-
86-
87-
88-
void createLegacyConfig()
89-
{
90-
QTemporaryDir temporaryDir;
91-
QVERIFY(QDir(temporaryDir.path()).mkpath(standardAppName));
92-
const auto standardConfigFolder = QString(temporaryDir.path() + "/" + standardAppName);
93-
ConfigFile::setConfDir(standardConfigFolder);
94-
95-
ConfigFile standardConfigFile;
96-
QSettings settings(standardConfigFile.configFile(), QSettings::IniFormat);
97-
standardConfigFile.setClientVersionString("3.0.0");
82+
void setupConfigFileAccount() {
9883
QScopedPointer<FakeQNAM> fakeQnam(new FakeQNAM({}));
99-
10084
OCC::AccountPtr account = OCC::Account::create();
10185
account->setDavUser("user");
10286
account->setDavDisplayName("Nextcloud user");
@@ -110,67 +94,136 @@ private slots:
11094
account->setUrl(QUrl(("http://example.de")));
11195
const auto accountState = OCC::AccountManager::instance()->addAccount(account);
11296
OCC::AccountManager::instance()->saveAccount(accountState->account());
97+
}
11398

114-
standardConfigFile.setOptionalServerNotifications(true);
115-
standardConfigFile.setShowChatNotifications(true);
116-
standardConfigFile.setShowCallNotifications(true);
117-
standardConfigFile.setShowInExplorerNavigationPane(true);
118-
standardConfigFile.setShowInExplorerNavigationPane(true);
119-
standardConfigFile.setRemotePollInterval(std::chrono::milliseconds(1000));
120-
standardConfigFile.setAutoUpdateCheck(true, QString());
121-
standardConfigFile.setUpdateChannel("beta");
122-
standardConfigFile.setOverrideServerUrl("http://example.de");
123-
standardConfigFile.setOverrideLocalDir("A");
124-
standardConfigFile.setVfsEnabled(true);
125-
standardConfigFile.setProxyType(0);
126-
standardConfigFile.setVfsEnabled(true);
127-
standardConfigFile.setUseUploadLimit(0);
128-
standardConfigFile.setUploadLimit(1);
129-
standardConfigFile.setUseDownloadLimit(0);
130-
standardConfigFile.setUseDownloadLimit(1);
131-
standardConfigFile.setNewBigFolderSizeLimit(true, 500);
132-
standardConfigFile.setNotifyExistingFoldersOverLimit(true);
133-
standardConfigFile.setStopSyncingExistingFoldersOverLimit(true);
134-
standardConfigFile.setConfirmExternalStorage(true);
135-
standardConfigFile.setMoveToTrash(true);
136-
standardConfigFile.setForceLoginV2(true);
137-
standardConfigFile.setPromptDeleteFiles(true);
138-
standardConfigFile.setDeleteFilesThreshold(1);
139-
standardConfigFile.setMonoIcons(true);
140-
standardConfigFile.setCrashReporter(true);
141-
standardConfigFile.setAutomaticLogDir(true);
142-
standardConfigFile.setLogDir(temporaryDir.path());
143-
standardConfigFile.setLogDebug(true);
144-
standardConfigFile.setLogExpire(72);
145-
standardConfigFile.setLogFlush(true);
146-
standardConfigFile.setCertificatePath(temporaryDir.path());
147-
standardConfigFile.setCertificatePasswd("123456");
148-
standardConfigFile.setLaunchOnSystemStartup(true);
149-
standardConfigFile.setServerHasValidSubscription(true);
150-
standardConfigFile.setDesktopEnterpriseChannel("stable");
151-
standardConfigFile.setLanguage("pt");
99+
void setupConfigFileSettings() {
100+
QSettings settings(configFile.configFile(), QSettings::IniFormat);
101+
configFile.setClientVersionString("3.0.0");
102+
configFile.setOptionalServerNotifications(true);
103+
configFile.setShowChatNotifications(true);
104+
configFile.setShowCallNotifications(true);
105+
configFile.setShowInExplorerNavigationPane(true);
106+
configFile.setShowInExplorerNavigationPane(true);
107+
configFile.setRemotePollInterval(std::chrono::milliseconds(1000));
108+
configFile.setAutoUpdateCheck(true, QString());
109+
configFile.setUpdateChannel("beta");
110+
configFile.setOverrideServerUrl("http://example.de");
111+
configFile.setOverrideLocalDir("A");
112+
configFile.setVfsEnabled(true);
113+
configFile.setProxyType(0);
114+
configFile.setVfsEnabled(true);
115+
configFile.setUseUploadLimit(0);
116+
configFile.setUploadLimit(1);
117+
configFile.setUseDownloadLimit(0);
118+
configFile.setUseDownloadLimit(1);
119+
configFile.setNewBigFolderSizeLimit(true, 500);
120+
configFile.setNotifyExistingFoldersOverLimit(true);
121+
configFile.setStopSyncingExistingFoldersOverLimit(true);
122+
configFile.setConfirmExternalStorage(true);
123+
configFile.setMoveToTrash(true);
124+
configFile.setForceLoginV2(true);
125+
configFile.setPromptDeleteFiles(true);
126+
configFile.setDeleteFilesThreshold(1);
127+
configFile.setMonoIcons(true);
128+
configFile.setCrashReporter(true);
129+
configFile.setAutomaticLogDir(true);
130+
configFile.setLogDir(temporaryDir.path());
131+
configFile.setLogDebug(true);
132+
configFile.setLogExpire(72);
133+
configFile.setLogFlush(true);
134+
configFile.setCertificatePath(temporaryDir.path());
135+
configFile.setCertificatePasswd("123456");
136+
configFile.setLaunchOnSystemStartup(true);
137+
configFile.setServerHasValidSubscription(true);
138+
configFile.setDesktopEnterpriseChannel("stable");
139+
configFile.setLanguage("pt");
152140
settings.sync();
153-
154-
const auto standardConfig = QString(standardConfigFolder + "/" + QString(standardAppName).toLower() + ".cfg");;
155-
QVERIFY(QFile::rename(standardConfigFile.configFile(), standardConfig));
156-
157-
QVERIFY(QDir(temporaryDir.path()).mkpath(legacyAppName));
158-
const auto legacyConfigFolder = QString(temporaryDir.path() + "/" + legacyAppName);
159-
const auto legacyConfigFilePath = QString(legacyConfigFolder + "/" + QString(legacyAppName).toLower() + ".cfg");
160-
QFile legacyConfigFile(legacyConfigFilePath);
161-
QVERIFY(legacyConfigFile.open(QFile::WriteOnly));
162-
QCOMPARE_GE(legacyConfigFile.write(legacyAppConfigContent, qstrlen(legacyAppConfigContent)), 0);
163-
legacyConfigFile.close();
164141
}
165142

143+
// void createLegacyConfig()
144+
// {
145+
// QTemporaryDir temporaryDir;
146+
// QVERIFY(QDir(temporaryDir.path()).mkpath(standardAppName));
147+
// const auto standardConfigFolder = QString(temporaryDir.path() + "/" + standardAppName);
148+
// ConfigFile::setConfDir(standardConfigFolder);
149+
150+
// ConfigFile standardConfigFile;
151+
// QSettings settings(standardConfigFile.configFile(), QSettings::IniFormat);
152+
// standardConfigFile.setClientVersionString("3.0.0");
153+
// QScopedPointer<FakeQNAM> fakeQnam(new FakeQNAM({}));
154+
155+
// OCC::AccountPtr account = OCC::Account::create();
156+
// account->setDavUser("user");
157+
// account->setDavDisplayName("Nextcloud user");
158+
// account->setProxyType(QNetworkProxy::ProxyType::HttpProxy);
159+
// account->setProxyUser("proxyuser");
160+
// account->setDownloadLimit(120);
161+
// account->setUploadLimit(120);
162+
// account->setDownloadLimitSetting(OCC::Account::AccountNetworkTransferLimitSetting::ManualLimit);
163+
// account->setServerVersion("30");
164+
// account->setCredentials(new FakeCredentials{fakeQnam.data()});
165+
// account->setUrl(QUrl(("http://example.de")));
166+
// const auto accountState = OCC::AccountManager::instance()->addAccount(account);
167+
// OCC::AccountManager::instance()->saveAccount(accountState->account());
168+
169+
// standardConfigFile.setOptionalServerNotifications(true);
170+
// standardConfigFile.setShowChatNotifications(true);
171+
// standardConfigFile.setShowCallNotifications(true);
172+
// standardConfigFile.setShowInExplorerNavigationPane(true);
173+
// standardConfigFile.setShowInExplorerNavigationPane(true);
174+
// standardConfigFile.setRemotePollInterval(std::chrono::milliseconds(1000));
175+
// standardConfigFile.setAutoUpdateCheck(true, QString());
176+
// standardConfigFile.setUpdateChannel("beta");
177+
// standardConfigFile.setOverrideServerUrl("http://example.de");
178+
// standardConfigFile.setOverrideLocalDir("A");
179+
// standardConfigFile.setVfsEnabled(true);
180+
// standardConfigFile.setProxyType(0);
181+
// standardConfigFile.setVfsEnabled(true);
182+
// standardConfigFile.setUseUploadLimit(0);
183+
// standardConfigFile.setUploadLimit(1);
184+
// standardConfigFile.setUseDownloadLimit(0);
185+
// standardConfigFile.setUseDownloadLimit(1);
186+
// standardConfigFile.setNewBigFolderSizeLimit(true, 500);
187+
// standardConfigFile.setNotifyExistingFoldersOverLimit(true);
188+
// standardConfigFile.setStopSyncingExistingFoldersOverLimit(true);
189+
// standardConfigFile.setConfirmExternalStorage(true);
190+
// standardConfigFile.setMoveToTrash(true);
191+
// standardConfigFile.setForceLoginV2(true);
192+
// standardConfigFile.setPromptDeleteFiles(true);
193+
// standardConfigFile.setDeleteFilesThreshold(1);
194+
// standardConfigFile.setMonoIcons(true);
195+
// standardConfigFile.setCrashReporter(true);
196+
// standardConfigFile.setAutomaticLogDir(true);
197+
// standardConfigFile.setLogDir(temporaryDir.path());
198+
// standardConfigFile.setLogDebug(true);
199+
// standardConfigFile.setLogExpire(72);
200+
// standardConfigFile.setLogFlush(true);
201+
// standardConfigFile.setCertificatePath(temporaryDir.path());
202+
// standardConfigFile.setCertificatePasswd("123456");
203+
// standardConfigFile.setLaunchOnSystemStartup(true);
204+
// standardConfigFile.setServerHasValidSubscription(true);
205+
// standardConfigFile.setDesktopEnterpriseChannel("stable");
206+
// standardConfigFile.setLanguage("pt");
207+
// settings.sync();
208+
209+
// const auto standardConfig = QString(standardConfigFolder + "/" + QString(standardAppName).toLower() + ".cfg");;
210+
// QVERIFY(QFile::rename(standardConfigFile.configFile(), standardConfig));
211+
212+
// QVERIFY(QDir(temporaryDir.path()).mkpath(legacyAppName));
213+
// const auto legacyConfigFolder = QString(temporaryDir.path() + "/" + legacyAppName);
214+
// const auto legacyConfigFilePath = QString(legacyConfigFolder + "/" + QString(legacyAppName).toLower() + ".cfg");
215+
// QFile legacyConfigFile(legacyConfigFilePath);
216+
// QVERIFY(legacyConfigFile.open(QFile::WriteOnly));
217+
// QCOMPARE_GE(legacyConfigFile.write(legacyAppConfigContent, qstrlen(legacyAppConfigContent)), 0);
218+
// legacyConfigFile.close();
219+
// }
220+
166221
void initTestCase()
167222
{
168223
OCC::Logger::instance()->setLogFlush(true);
169224
OCC::Logger::instance()->setLogDebug(true);
170225

171226
QStandardPaths::setTestModeEnabled(true);
172-
173-
createLegacyConfig();
174227
}
175228

176229

@@ -179,9 +232,29 @@ private slots:
179232
// Upgrade
180233
// Downgrade
181234
// Migration with --confdir
182-
183-
void testLeaveShare()
235+
void testUpgradeWithConfDir()
184236
{
237+
// create Nextcloud config with older version
238+
QVERIFY(QDir(temporaryDir.path()).mkpath(standardAppName));
239+
const auto standardConfigFolder = QString(temporaryDir.path() + "/" + standardAppName);
240+
ConfigFile::setConfDir(standardConfigFolder);
241+
setupConfigFileSettings();
242+
setupConfigFileAccount();
243+
244+
245+
// QTemporaryDir temporaryDir;
246+
// int argc = 5;
247+
// QByteArray appName = QString(QCoreApplication::applicationDirPath() + "/NextcloudDev").toLatin1();
248+
// char *arg0 = appName.data();
249+
// char arg1[] = "-platform";
250+
// char arg2[] = "offscreen";
251+
// char arg3[] = "--confdir";
252+
// QByteArray temporaryDirPath = QString(temporaryDir.path()).toLatin1();
253+
// char *arg4 = temporaryDirPath.data();
254+
// char *argv[] = { arg0, arg1, arg2, arg3, arg4, nullptr };
255+
// OCC::Application app(argc, argv);
256+
// app.setApplicationName("Nextcloud");
257+
185258
// QTemporaryDir dir;
186259
// ConfigFile::setConfDir(dir.path()); // we don't want to pollute the user's config file
187260

@@ -277,7 +350,6 @@ private slots:
277350
// OCC::AccountManager::instance()->deleteAccount(accountState);
278351
}
279352

280-
281353
};
282354

283355
QTEST_GUILESS_MAIN(TestMigration)

0 commit comments

Comments
 (0)