mirror of
https://github.com/nextcloud/desktop.git
synced 2025-10-26 11:17:43 +00:00
Merge pull request #8925 from nextcloud/bugfix/8743/migrate-global-bandwidth-setting
fix(network): fall back to unlimited bandwidth in case the legacy global limit is still set
This commit is contained in:
commit
b240648fd0
@ -1426,7 +1426,14 @@ void Account::setUploadLimitSetting(const AccountNetworkTransferLimitSetting set
|
||||
return;
|
||||
}
|
||||
|
||||
_uploadLimitSetting = setting;
|
||||
auto targetSetting = setting;
|
||||
|
||||
if (setting == AccountNetworkTransferLimitSetting::LegacyGlobalLimit) {
|
||||
qCInfo(lcAccount) << "Upload limit setting was requested to be set to the legacy global limit, falling back to unlimited";
|
||||
targetSetting = AccountNetworkTransferLimitSetting::NoLimit;
|
||||
}
|
||||
|
||||
_uploadLimitSetting = targetSetting;
|
||||
emit uploadLimitSettingChanged();
|
||||
}
|
||||
|
||||
@ -1440,8 +1447,15 @@ void Account::setDownloadLimitSetting(const AccountNetworkTransferLimitSetting s
|
||||
if (setting == _downloadLimitSetting) {
|
||||
return;
|
||||
}
|
||||
|
||||
_downloadLimitSetting = setting;
|
||||
|
||||
auto targetSetting = setting;
|
||||
|
||||
if (setting == AccountNetworkTransferLimitSetting::LegacyGlobalLimit) {
|
||||
qCInfo(lcAccount) << "Download limit setting was requested to be set to the legacy global limit, falling back to unlimited";
|
||||
targetSetting = AccountNetworkTransferLimitSetting::NoLimit;
|
||||
}
|
||||
|
||||
_downloadLimitSetting = targetSetting;
|
||||
emit downloadLimitSettingChanged();
|
||||
}
|
||||
|
||||
|
||||
@ -99,6 +99,7 @@ class OWNCLOUDSYNC_EXPORT Account : public QObject
|
||||
|
||||
public:
|
||||
enum class AccountNetworkTransferLimitSetting {
|
||||
LegacyGlobalLimit = -2, // Until 3.17.0 a value of -2 was interpreted as "Use global network settings", it's now used to fall back to "No limit". See also GH#8743
|
||||
AutoLimit = -1, // Value under 0 is interpreted as auto in general
|
||||
NoLimit,
|
||||
ManualLimit,
|
||||
|
||||
@ -69,6 +69,37 @@ private slots:
|
||||
QCOMPARE(account->isPublicShareLink(), expectedResult);
|
||||
QCOMPARE(account->davUser(), expectedDavUser);
|
||||
}
|
||||
|
||||
void testAccount_setLimitSettings_globalNetworkLimitFallback()
|
||||
{
|
||||
using LimitSetting = Account::AccountNetworkTransferLimitSetting;
|
||||
AccountPtr account = Account::create();
|
||||
|
||||
const auto setLimitSettings = [account](const LimitSetting setting) -> void {
|
||||
account->setDownloadLimitSetting(setting);
|
||||
account->setUploadLimitSetting(setting);
|
||||
};
|
||||
|
||||
const auto verifyLimitSettings = [account](const LimitSetting expectedSetting) -> void {
|
||||
QCOMPARE_EQ(expectedSetting, account->downloadLimitSetting());
|
||||
QCOMPARE_EQ(expectedSetting, account->uploadLimitSetting());
|
||||
};
|
||||
|
||||
// the default setting should be NoLimit
|
||||
verifyLimitSettings(LimitSetting::NoLimit);
|
||||
|
||||
// changing it to ManualLimit should succeed
|
||||
setLimitSettings(LimitSetting::ManualLimit);
|
||||
verifyLimitSettings(LimitSetting::ManualLimit);
|
||||
|
||||
// changing it to AutoLimit should succeed
|
||||
setLimitSettings(LimitSetting::AutoLimit);
|
||||
verifyLimitSettings(LimitSetting::AutoLimit);
|
||||
|
||||
// changing it to LegacyGlobalLimit (-2) should fall back to NoLimit
|
||||
setLimitSettings(LimitSetting::LegacyGlobalLimit);
|
||||
verifyLimitSettings(LimitSetting::NoLimit);
|
||||
}
|
||||
};
|
||||
|
||||
QTEST_APPLESS_MAIN(TestAccount)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user