From f67989afea6c2c98b6a3d2f4ee12ca0b01df97c8 Mon Sep 17 00:00:00 2001 From: Christian Kamm Date: Mon, 20 Mar 2017 14:28:32 +0100 Subject: Wizards: Never propose an existing folder for syncing #5597 --- test/testfolderman.cpp | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) (limited to 'test/testfolderman.cpp') diff --git a/test/testfolderman.cpp b/test/testfolderman.cpp index e62437bdd..b6e6478f5 100644 --- a/test/testfolderman.cpp +++ b/test/testfolderman.cpp @@ -151,6 +151,54 @@ private slots: QVERIFY(!folderman->checkPathValidityForNewFolder("/usr/bin/somefolder").isNull()); #else QSKIP("Test not supported with Qt4", SkipSingle); +#endif + } + + void testFindGoodPathForNewSyncFolder() + { +#if QT_VERSION >= QT_VERSION_CHECK(5, 1, 0) + // SETUP + + QTemporaryDir dir; + ConfigFile::setConfDir(dir.path()); // we don't want to pollute the user's config file + QVERIFY(dir.isValid()); + QDir dir2(dir.path()); + QVERIFY(dir2.mkpath("sub/ownCloud1/folder/f")); + QVERIFY(dir2.mkpath("ownCloud")); + QVERIFY(dir2.mkpath("ownCloud2")); + QVERIFY(dir2.mkpath("ownCloud2/foo")); + QVERIFY(dir2.mkpath("sub/free")); + QVERIFY(dir2.mkpath("free2/sub")); + QString dirPath = dir2.canonicalPath(); + + AccountPtr account = Account::create(); + QUrl url("http://example.de"); + HttpCredentialsTest *cred = new HttpCredentialsTest("testuser", "secret"); + account->setCredentials(cred); + account->setUrl( url ); + + AccountStatePtr newAccountState(new AccountState(account)); + FolderMan *folderman = FolderMan::instance(); + QCOMPARE(folderman, &_fm); + QVERIFY(folderman->addFolder(newAccountState.data(), folderDefinition(dirPath + "/sub/ownCloud/"))); + QVERIFY(folderman->addFolder(newAccountState.data(), folderDefinition(dirPath + "/ownCloud2/"))); + + // TEST + + QCOMPARE(folderman->findGoodPathForNewSyncFolder(dirPath + "/oc", url), + QString(dirPath + "/oc")); + QCOMPARE(folderman->findGoodPathForNewSyncFolder(dirPath + "/ownCloud", url), + QString(dirPath + "/ownCloud3")); + QCOMPARE(folderman->findGoodPathForNewSyncFolder(dirPath + "/ownCloud2", url), + QString(dirPath + "/ownCloud22")); + QCOMPARE(folderman->findGoodPathForNewSyncFolder(dirPath + "/ownCloud2/foo", url), + QString(dirPath + "/ownCloud2/foo")); + QCOMPARE(folderman->findGoodPathForNewSyncFolder(dirPath + "/ownCloud2/bar", url), + QString(dirPath + "/ownCloud2/bar")); + QCOMPARE(folderman->findGoodPathForNewSyncFolder(dirPath + "/sub", url), + QString(dirPath + "/sub2")); +#else + QSKIP("Test not supported with Qt4", SkipSingle); #endif } }; -- cgit v1.2.3