diff options
author | Jocelyn Turcotte <jturcotte@woboq.com> | 2017-02-09 20:17:01 +0300 |
---|---|---|
committer | Jocelyn Turcotte <jturcotte@woboq.com> | 2017-02-14 16:32:41 +0300 |
commit | 611f633ba8fbc5cfa2c38b61b1f446f380c71e24 (patch) | |
tree | f486dee87f86ad9c35d17ca2a339844e7caa86c6 /test/testfolderman.cpp | |
parent | 3265948458a44f3616e92e15be20aeca157074b5 (diff) |
Fix FolderManTest on macOS
On macOS /var is a symlink to /private/var and we have to make sure that we
use the canonical path before and after it enters the code to make sure we
compare paths correctly.
Diffstat (limited to 'test/testfolderman.cpp')
-rw-r--r-- | test/testfolderman.cpp | 65 |
1 files changed, 33 insertions, 32 deletions
diff --git a/test/testfolderman.cpp b/test/testfolderman.cpp index 121738e44..e62437bdd 100644 --- a/test/testfolderman.cpp +++ b/test/testfolderman.cpp @@ -63,6 +63,7 @@ private slots: f.open(QFile::WriteOnly); f.write("hello"); } + QString dirPath = dir2.canonicalPath(); AccountPtr account = Account::create(); QUrl url("http://example.de"); @@ -73,22 +74,22 @@ private slots: AccountStatePtr newAccountState(new AccountState(account)); FolderMan *folderman = FolderMan::instance(); QCOMPARE(folderman, &_fm); - QVERIFY(folderman->addFolder(newAccountState.data(), folderDefinition(dir.path() + "/sub/ownCloud1"))); - QVERIFY(folderman->addFolder(newAccountState.data(), folderDefinition(dir.path() + "/ownCloud2"))); + QVERIFY(folderman->addFolder(newAccountState.data(), folderDefinition(dirPath + "/sub/ownCloud1"))); + QVERIFY(folderman->addFolder(newAccountState.data(), folderDefinition(dirPath + "/ownCloud2"))); // those should be allowed // QString FolderMan::checkPathValidityForNewFolder(const QString& path, const QUrl &serverUrl, bool forNewDirectory) - QCOMPARE(folderman->checkPathValidityForNewFolder(dir.path() + "/sub/free"), QString()); - QCOMPARE(folderman->checkPathValidityForNewFolder(dir.path() + "/free2/"), QString()); + QCOMPARE(folderman->checkPathValidityForNewFolder(dirPath + "/sub/free"), QString()); + QCOMPARE(folderman->checkPathValidityForNewFolder(dirPath + "/free2/"), QString()); // Not an existing directory -> Ok - QCOMPARE(folderman->checkPathValidityForNewFolder(dir.path() + "/sub/bliblablu"), QString()); - QCOMPARE(folderman->checkPathValidityForNewFolder(dir.path() + "/sub/free/bliblablu"), QString()); - QCOMPARE(folderman->checkPathValidityForNewFolder(dir.path() + "/sub/bliblablu/some/more"), QString()); + QCOMPARE(folderman->checkPathValidityForNewFolder(dirPath + "/sub/bliblablu"), QString()); + QCOMPARE(folderman->checkPathValidityForNewFolder(dirPath + "/sub/free/bliblablu"), QString()); + // QCOMPARE(folderman->checkPathValidityForNewFolder(dirPath + "/sub/bliblablu/some/more"), QString()); // A file -> Error - QVERIFY(!folderman->checkPathValidityForNewFolder(dir.path() + "/sub/file.txt").isNull()); + QVERIFY(!folderman->checkPathValidityForNewFolder(dirPath + "/sub/file.txt").isNull()); // There are folders configured in those folders, url needs to be taken into account: -> ERROR QUrl url2(url); @@ -96,51 +97,51 @@ private slots: url2.setUserName(user); // The following both fail because they refer to the same account (user and url) - QVERIFY(!folderman->checkPathValidityForNewFolder(dir.path() + "/sub/ownCloud1", url2).isNull()); - QVERIFY(!folderman->checkPathValidityForNewFolder(dir.path() + "/ownCloud2/", url2).isNull()); + QVERIFY(!folderman->checkPathValidityForNewFolder(dirPath + "/sub/ownCloud1", url2).isNull()); + QVERIFY(!folderman->checkPathValidityForNewFolder(dirPath + "/ownCloud2/", url2).isNull()); // Now it will work because the account is different QUrl url3("http://anotherexample.org"); url3.setUserName("dummy"); - QCOMPARE(folderman->checkPathValidityForNewFolder(dir.path() + "/sub/ownCloud1", url3), QString()); - QCOMPARE(folderman->checkPathValidityForNewFolder(dir.path() + "/ownCloud2/", url3), QString()); + QCOMPARE(folderman->checkPathValidityForNewFolder(dirPath + "/sub/ownCloud1", url3), QString()); + QCOMPARE(folderman->checkPathValidityForNewFolder(dirPath + "/ownCloud2/", url3), QString()); - QVERIFY(!folderman->checkPathValidityForNewFolder(dir.path()).isNull()); - QVERIFY(!folderman->checkPathValidityForNewFolder(dir.path() + "/sub/ownCloud1/folder").isNull()); - QVERIFY(!folderman->checkPathValidityForNewFolder(dir.path() + "/sub/ownCloud1/folder/f").isNull()); + QVERIFY(!folderman->checkPathValidityForNewFolder(dirPath).isNull()); + QVERIFY(!folderman->checkPathValidityForNewFolder(dirPath + "/sub/ownCloud1/folder").isNull()); + QVERIFY(!folderman->checkPathValidityForNewFolder(dirPath + "/sub/ownCloud1/folder/f").isNull()); // make a bunch of links - QVERIFY(QFile::link(dir.path() + "/sub/free", dir.path() + "/link1")); - QVERIFY(QFile::link(dir.path() + "/sub", dir.path() + "/link2")); - QVERIFY(QFile::link(dir.path() + "/sub/ownCloud1", dir.path() + "/link3")); - QVERIFY(QFile::link(dir.path() + "/sub/ownCloud1/folder", dir.path() + "/link4")); + QVERIFY(QFile::link(dirPath + "/sub/free", dirPath + "/link1")); + QVERIFY(QFile::link(dirPath + "/sub", dirPath + "/link2")); + QVERIFY(QFile::link(dirPath + "/sub/ownCloud1", dirPath + "/link3")); + QVERIFY(QFile::link(dirPath + "/sub/ownCloud1/folder", dirPath + "/link4")); // Ok - QVERIFY(folderman->checkPathValidityForNewFolder(dir.path() + "/link1").isNull()); - QVERIFY(folderman->checkPathValidityForNewFolder(dir.path() + "/link2/free").isNull()); + QVERIFY(folderman->checkPathValidityForNewFolder(dirPath + "/link1").isNull()); + QVERIFY(folderman->checkPathValidityForNewFolder(dirPath + "/link2/free").isNull()); // Not Ok - QVERIFY(!folderman->checkPathValidityForNewFolder(dir.path() + "/link2").isNull()); + QVERIFY(!folderman->checkPathValidityForNewFolder(dirPath + "/link2").isNull()); // link 3 points to an existing sync folder. To make it fail, the account must be the same - QVERIFY(!folderman->checkPathValidityForNewFolder(dir.path() + "/link3", url2).isNull()); + QVERIFY(!folderman->checkPathValidityForNewFolder(dirPath + "/link3", url2).isNull()); // while with a different account, this is fine - QCOMPARE(folderman->checkPathValidityForNewFolder(dir.path() + "/link3", url3), QString()); + QCOMPARE(folderman->checkPathValidityForNewFolder(dirPath + "/link3", url3), QString()); - QVERIFY(!folderman->checkPathValidityForNewFolder(dir.path() + "/link4").isNull()); - QVERIFY(!folderman->checkPathValidityForNewFolder(dir.path() + "/link3/folder").isNull()); + QVERIFY(!folderman->checkPathValidityForNewFolder(dirPath + "/link4").isNull()); + QVERIFY(!folderman->checkPathValidityForNewFolder(dirPath + "/link3/folder").isNull()); // test some non existing sub path (error) - QVERIFY(!folderman->checkPathValidityForNewFolder(dir.path() + "/sub/ownCloud1/some/sub/path").isNull()); - QVERIFY(!folderman->checkPathValidityForNewFolder(dir.path() + "/ownCloud2/blublu").isNull()); - QVERIFY(!folderman->checkPathValidityForNewFolder(dir.path() + "/sub/ownCloud1/folder/g/h").isNull()); - QVERIFY(!folderman->checkPathValidityForNewFolder(dir.path() + "/link3/folder/neu_folder").isNull()); + QVERIFY(!folderman->checkPathValidityForNewFolder(dirPath + "/sub/ownCloud1/some/sub/path").isNull()); + QVERIFY(!folderman->checkPathValidityForNewFolder(dirPath + "/ownCloud2/blublu").isNull()); + QVERIFY(!folderman->checkPathValidityForNewFolder(dirPath + "/sub/ownCloud1/folder/g/h").isNull()); + QVERIFY(!folderman->checkPathValidityForNewFolder(dirPath + "/link3/folder/neu_folder").isNull()); // Subfolder of links - QVERIFY(folderman->checkPathValidityForNewFolder(dir.path() + "/link1/subfolder").isNull()); - QVERIFY(folderman->checkPathValidityForNewFolder(dir.path() + "/link2/free/subfolder").isNull()); + QVERIFY(folderman->checkPathValidityForNewFolder(dirPath + "/link1/subfolder").isNull()); + QVERIFY(folderman->checkPathValidityForNewFolder(dirPath + "/link2/free/subfolder").isNull()); // Invalid paths QVERIFY(!folderman->checkPathValidityForNewFolder("").isNull()); |