diff options
author | Simon L <szaimen@e.mail.de> | 2023-04-17 11:46:22 +0200 |
---|---|---|
committer | Simon L <szaimen@e.mail.de> | 2023-04-17 12:51:33 +0200 |
commit | 80645a591a5ed0892179e042001f32de79c4ebba (patch) | |
tree | 980b6239911f74a3a830ad390e26a8bcf314beb3 /core/js/tests | |
parent | b21c5c86e5908274e67fc31178e0dff24eed1136 (diff) | |
download | nextcloud-server-80645a591a5ed0892179e042001f32de79c4ebba.tar.gz nextcloud-server-80645a591a5ed0892179e042001f32de79c4ebba.zip |
add an admin check for db file locking
Signed-off-by: Simon L <szaimen@e.mail.de>
Diffstat (limited to 'core/js/tests')
-rw-r--r-- | core/js/tests/specs/setupchecksSpec.js | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/core/js/tests/specs/setupchecksSpec.js b/core/js/tests/specs/setupchecksSpec.js index 57536c59569..16434e80772 100644 --- a/core/js/tests/specs/setupchecksSpec.js +++ b/core/js/tests/specs/setupchecksSpec.js @@ -228,6 +228,7 @@ describe('OC.SetupChecks tests', function() { isReadOnlyConfig: false, wasEmailTestSuccessful: true, hasWorkingFileLocking: true, + hasDBFileLocking: false, hasValidTransactionIsolationLevel: true, suggestedOverwriteCliURL: '', isRandomnessSecure: true, @@ -289,6 +290,7 @@ describe('OC.SetupChecks tests', function() { isReadOnlyConfig: false, wasEmailTestSuccessful: true, hasWorkingFileLocking: true, + hasDBFileLocking: false, hasValidTransactionIsolationLevel: true, suggestedOverwriteCliURL: '', isRandomnessSecure: true, @@ -351,6 +353,7 @@ describe('OC.SetupChecks tests', function() { isReadOnlyConfig: false, wasEmailTestSuccessful: true, hasWorkingFileLocking: true, + hasDBFileLocking: false, hasValidTransactionIsolationLevel: true, suggestedOverwriteCliURL: '', isRandomnessSecure: true, @@ -410,6 +413,7 @@ describe('OC.SetupChecks tests', function() { isReadOnlyConfig: false, wasEmailTestSuccessful: true, hasWorkingFileLocking: true, + hasDBFileLocking: false, hasValidTransactionIsolationLevel: true, suggestedOverwriteCliURL: '', isRandomnessSecure: false, @@ -468,6 +472,7 @@ describe('OC.SetupChecks tests', function() { isReadOnlyConfig: false, wasEmailTestSuccessful: true, hasWorkingFileLocking: true, + hasDBFileLocking: false, hasValidTransactionIsolationLevel: true, suggestedOverwriteCliURL: '', isRandomnessSecure: true, @@ -526,6 +531,7 @@ describe('OC.SetupChecks tests', function() { isReadOnlyConfig: false, wasEmailTestSuccessful: false, hasWorkingFileLocking: true, + hasDBFileLocking: false, hasValidTransactionIsolationLevel: true, suggestedOverwriteCliURL: '', isRandomnessSecure: true, @@ -570,6 +576,124 @@ describe('OC.SetupChecks tests', function() { }); }); + it('should return an info if transactional file locking is not set up', function(done) { + var async = OC.SetupChecks.checkSetup(); + + suite.server.requests[0].respond( + 200, + { + 'Content-Type': 'application/json' + }, + JSON.stringify({ + hasFileinfoInstalled: true, + isGetenvServerWorking: true, + isReadOnlyConfig: false, + wasEmailTestSuccessful: true, + hasWorkingFileLocking: false, + hasDBFileLocking: false, + hasValidTransactionIsolationLevel: true, + suggestedOverwriteCliURL: '', + isRandomnessSecure: true, + securityDocs: 'https://docs.nextcloud.com/myDocs.html', + isFairUseOfFreePushService: true, + serverHasInternetConnectionProblems: false, + isMemcacheConfigured: true, + forwardedForHeadersWorking: true, + isCorrectMemcachedPHPModuleInstalled: true, + hasPassedCodeIntegrityCheck: true, + OpcacheSetupRecommendations: [], + isSettimelimitAvailable: true, + hasFreeTypeSupport: true, + missingIndexes: [], + missingPrimaryKeys: [], + missingColumns: [], + cronErrors: [], + cronInfo: { + diffInSeconds: 0 + }, + isMemoryLimitSufficient: true, + appDirsWithDifferentOwner: [], + isImagickEnabled: true, + areWebauthnExtensionsEnabled: true, + is64bit: true, + recommendedPHPModules: [], + pendingBigIntConversionColumns: [], + isMysqlUsedWithoutUTF8MB4: false, + isDefaultPhoneRegionSet: true, + isEnoughTempSpaceAvailableIfS3PrimaryStorageIsUsed: true, + reverseProxyGeneratedURL: 'https://server', + temporaryDirectoryWritable: true, + }) + ); + + async.done(function( data, s, x ){ + expect(data).toEqual([{ + msg: 'Transactional file locking is disabled, this might lead to issues with race conditions. Enable "filelocking.enabled" in config.php to avoid these problems. See the <a target="_blank" rel="noreferrer noopener" class="external" href="https://docs.example.org/admin-transactional-locking">documentation ↗</a> for more information.', + type: OC.SetupChecks.MESSAGE_TYPE_WARNING + }]); + done(); + }); + }); + + it('should return an info if database file locking is used', function(done) { + var async = OC.SetupChecks.checkSetup(); + + suite.server.requests[0].respond( + 200, + { + 'Content-Type': 'application/json' + }, + JSON.stringify({ + hasFileinfoInstalled: true, + isGetenvServerWorking: true, + isReadOnlyConfig: false, + wasEmailTestSuccessful: true, + hasWorkingFileLocking: true, + hasDBFileLocking: true, + hasValidTransactionIsolationLevel: true, + suggestedOverwriteCliURL: '', + isRandomnessSecure: true, + securityDocs: 'https://docs.nextcloud.com/myDocs.html', + isFairUseOfFreePushService: true, + serverHasInternetConnectionProblems: false, + isMemcacheConfigured: true, + forwardedForHeadersWorking: true, + isCorrectMemcachedPHPModuleInstalled: true, + hasPassedCodeIntegrityCheck: true, + OpcacheSetupRecommendations: [], + isSettimelimitAvailable: true, + hasFreeTypeSupport: true, + missingIndexes: [], + missingPrimaryKeys: [], + missingColumns: [], + cronErrors: [], + cronInfo: { + diffInSeconds: 0 + }, + isMemoryLimitSufficient: true, + appDirsWithDifferentOwner: [], + isImagickEnabled: true, + areWebauthnExtensionsEnabled: true, + is64bit: true, + recommendedPHPModules: [], + pendingBigIntConversionColumns: [], + isMysqlUsedWithoutUTF8MB4: false, + isDefaultPhoneRegionSet: true, + isEnoughTempSpaceAvailableIfS3PrimaryStorageIsUsed: true, + reverseProxyGeneratedURL: 'https://server', + temporaryDirectoryWritable: true, + }) + ); + + async.done(function( data, s, x ){ + expect(data).toEqual([{ + msg: 'The database is used for transactional file locking. This will lead to performance issues. Use redis for transactional file locking to improve the performance. See the <a target="_blank" rel="noreferrer noopener" class="external" href="https://docs.example.org/admin-transactional-locking">documentation ↗</a> for more information.', + type: OC.SetupChecks.MESSAGE_TYPE_INFO + }]); + done(); + }); + }); + it('should return a warning if there are app directories with wrong permissions', function(done) { var async = OC.SetupChecks.checkSetup(); @@ -584,6 +708,7 @@ describe('OC.SetupChecks tests', function() { isReadOnlyConfig: false, wasEmailTestSuccessful: true, hasWorkingFileLocking: true, + hasDBFileLocking: false, hasValidTransactionIsolationLevel: true, suggestedOverwriteCliURL: '', isRandomnessSecure: true, @@ -644,6 +769,7 @@ describe('OC.SetupChecks tests', function() { isReadOnlyConfig: false, wasEmailTestSuccessful: true, hasWorkingFileLocking: true, + hasDBFileLocking: false, hasValidTransactionIsolationLevel: true, suggestedOverwriteCliURL: '', isRandomnessSecure: true, @@ -702,6 +828,7 @@ describe('OC.SetupChecks tests', function() { isReadOnlyConfig: false, wasEmailTestSuccessful: true, hasWorkingFileLocking: true, + hasDBFileLocking: false, hasValidTransactionIsolationLevel: true, suggestedOverwriteCliURL: '', isRandomnessSecure: true, @@ -760,6 +887,7 @@ describe('OC.SetupChecks tests', function() { isReadOnlyConfig: false, wasEmailTestSuccessful: true, hasWorkingFileLocking: true, + hasDBFileLocking: false, hasValidTransactionIsolationLevel: true, suggestedOverwriteCliURL: '', isRandomnessSecure: true, @@ -838,6 +966,7 @@ describe('OC.SetupChecks tests', function() { isReadOnlyConfig: false, wasEmailTestSuccessful: true, hasWorkingFileLocking: true, + hasDBFileLocking: false, hasValidTransactionIsolationLevel: true, suggestedOverwriteCliURL: '', isRandomnessSecure: true, @@ -897,6 +1026,7 @@ describe('OC.SetupChecks tests', function() { isReadOnlyConfig: false, wasEmailTestSuccessful: true, hasWorkingFileLocking: true, + hasDBFileLocking: false, hasValidTransactionIsolationLevel: true, suggestedOverwriteCliURL: '', isRandomnessSecure: true, @@ -955,6 +1085,7 @@ describe('OC.SetupChecks tests', function() { isReadOnlyConfig: false, wasEmailTestSuccessful: true, hasWorkingFileLocking: true, + hasDBFileLocking: false, hasValidTransactionIsolationLevel: true, suggestedOverwriteCliURL: '', isRandomnessSecure: true, @@ -1013,6 +1144,7 @@ describe('OC.SetupChecks tests', function() { isReadOnlyConfig: false, wasEmailTestSuccessful: true, hasWorkingFileLocking: true, + hasDBFileLocking: false, hasValidTransactionIsolationLevel: true, suggestedOverwriteCliURL: '', isRandomnessSecure: true, @@ -1075,6 +1207,7 @@ describe('OC.SetupChecks tests', function() { isReadOnlyConfig: false, wasEmailTestSuccessful: true, hasWorkingFileLocking: true, + hasDBFileLocking: false, hasValidTransactionIsolationLevel: true, suggestedOverwriteCliURL: '', isRandomnessSecure: true, @@ -1134,6 +1267,7 @@ describe('OC.SetupChecks tests', function() { isReadOnlyConfig: false, wasEmailTestSuccessful: true, hasWorkingFileLocking: true, + hasDBFileLocking: false, hasValidTransactionIsolationLevel: true, suggestedOverwriteCliURL: '', isRandomnessSecure: true, @@ -1190,6 +1324,7 @@ describe('OC.SetupChecks tests', function() { isReadOnlyConfig: false, wasEmailTestSuccessful: true, hasWorkingFileLocking: true, + hasDBFileLocking: false, hasValidTransactionIsolationLevel: true, suggestedOverwriteCliURL: '', isRandomnessSecure: true, @@ -1249,6 +1384,7 @@ describe('OC.SetupChecks tests', function() { isReadOnlyConfig: false, wasEmailTestSuccessful: true, hasWorkingFileLocking: true, + hasDBFileLocking: false, hasValidTransactionIsolationLevel: true, suggestedOverwriteCliURL: '', isRandomnessSecure: true, @@ -1308,6 +1444,7 @@ describe('OC.SetupChecks tests', function() { isReadOnlyConfig: false, wasEmailTestSuccessful: true, hasWorkingFileLocking: true, + hasDBFileLocking: false, hasValidTransactionIsolationLevel: true, suggestedOverwriteCliURL: '', isRandomnessSecure: true, @@ -1366,6 +1503,7 @@ describe('OC.SetupChecks tests', function() { isReadOnlyConfig: false, wasEmailTestSuccessful: true, hasWorkingFileLocking: true, + hasDBFileLocking: false, hasValidTransactionIsolationLevel: true, suggestedOverwriteCliURL: '', isRandomnessSecure: true, @@ -1424,6 +1562,7 @@ describe('OC.SetupChecks tests', function() { isReadOnlyConfig: false, wasEmailTestSuccessful: true, hasWorkingFileLocking: true, + hasDBFileLocking: false, hasValidTransactionIsolationLevel: true, suggestedOverwriteCliURL: '', isRandomnessSecure: true, @@ -1482,6 +1621,7 @@ describe('OC.SetupChecks tests', function() { isReadOnlyConfig: false, wasEmailTestSuccessful: true, hasWorkingFileLocking: true, + hasDBFileLocking: false, hasValidTransactionIsolationLevel: true, suggestedOverwriteCliURL: '', isRandomnessSecure: true, |