From faef05730a2fca6ca019f645685ad6a08839d71c Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Wed, 20 Feb 2019 10:54:39 +0100 Subject: [PATCH] Add unit tests and provide better message Signed-off-by: Morris Jobke --- core/js/setupchecks.js | 6 ++--- core/js/tests/specs/setupchecksSpec.js | 36 ++++++++++++++++++++++++++ settings/js/admin.js | 4 +-- 3 files changed, 41 insertions(+), 5 deletions(-) diff --git a/core/js/setupchecks.js b/core/js/setupchecks.js index da5dc68b16..7582b062d5 100644 --- a/core/js/setupchecks.js +++ b/core/js/setupchecks.js @@ -112,10 +112,10 @@ var afterCall = function(xhr) { var messages = []; if (expectedStatus.indexOf(xhr.status) === -1) { - var docUrl = placeholderUrl.replace('PLACEHOLDER', 'admin-setup-well-known-URL'); + var docUrl = placeholderUrl.replace('PLACEHOLDER', 'admin-nginx'); messages.push({ - msg: t('core', 'Your web server is not properly set up to resolve "{url}". Further information can be found in the documentation.', { docLink: docUrl, url: url }), - type: OC.SetupChecks.MESSAGE_TYPE_INFO + msg: t('core', 'Your web server is not properly set up to resolve "{url}". This is most likely related to a web server configuration that was not updated to deliver this folder directly. Please compare your configuration against the shipped rewrite rules in ".htaccess" for Apache or the provided one in the documentation for Nginx at it\'s documentation page. On Nginx those are typically the lines starting with "location ~" that need an update.', { docLink: docUrl, url: url }), + type: OC.SetupChecks.MESSAGE_TYPE_WARNING }); } deferred.resolve(messages); diff --git a/core/js/tests/specs/setupchecksSpec.js b/core/js/tests/specs/setupchecksSpec.js index 6ea7d812d9..e2c0053aa7 100644 --- a/core/js/tests/specs/setupchecksSpec.js +++ b/core/js/tests/specs/setupchecksSpec.js @@ -107,6 +107,42 @@ describe('OC.SetupChecks tests', function() { }); }); + describe('checkProviderUrl', function() { + it('should fail with another response status code than the expected one', function(done) { + var async = OC.SetupChecks.checkProviderUrl('/ocm-provider/', 'http://example.org/PLACEHOLDER', true); + + suite.server.requests[0].respond(302); + + async.done(function( data, s, x ){ + expect(data).toEqual([{ + msg: 'Your web server is not properly set up to resolve "/ocm-provider/". This is most likely related to a web server configuration that was not updated to deliver this folder directly. Please compare your configuration against the shipped rewrite rules in ".htaccess" for Apache or the provided one in the documentation for Nginx at it\'s documentation page. On Nginx those are typically the lines starting with "location ~" that need an update.', + type: OC.SetupChecks.MESSAGE_TYPE_WARNING + }]); + done(); + }); + }); + + it('should return no error with the expected response status code', function(done) { + var async = OC.SetupChecks.checkProviderUrl('/ocm-provider/', 'http://example.org/PLACEHOLDER', true); + + suite.server.requests[0].respond(200); + + async.done(function( data, s, x ){ + expect(data).toEqual([]); + done(); + }); + }); + + it('should return no error when no check should be run', function(done) { + var async = OC.SetupChecks.checkProviderUrl('/ocm-provider/', 'http://example.org/PLACEHOLDER', false); + + async.done(function( data, s, x ){ + expect(data).toEqual([]); + done(); + }); + }); + }); + describe('checkWOFF2Loading', function() { it('should fail with another response status code than the expected one', function(done) { var async = OC.SetupChecks.checkWOFF2Loading(OC.filePath('core', '', 'fonts/Nunito-Regular.woff2'), 'http://example.org/PLACEHOLDER'); diff --git a/settings/js/admin.js b/settings/js/admin.js index 2ffd4383eb..0ca9b6162e 100644 --- a/settings/js/admin.js +++ b/settings/js/admin.js @@ -257,8 +257,8 @@ $(document).ready(function(){ OC.SetupChecks.checkGeneric(), OC.SetupChecks.checkWOFF2Loading(OC.filePath('core', '', 'fonts/Nunito-Regular.woff2'), oc_defaults.docPlaceholderUrl), OC.SetupChecks.checkDataProtected() - ).then(function (check1, check2, check3, check4, check5, check6, check7, check8) { - var messages = [].concat(check1, check2, check3, check4, check5, check6, check7, check8); + ).then(function (check1, check2, check3, check4, check5, check6, check7, check8, check9, check10) { + var messages = [].concat(check1, check2, check3, check4, check5, check6, check7, check8, check9, check10); var $el = $('#postsetupchecks'); $('#security-warning-state-loading').addClass('hidden');