From 216e369f7ae4bc716a2c0675a2b305bb4c5cc1a6 Mon Sep 17 00:00:00 2001 From: NelsonPereira1991 Date: Fri, 7 Jul 2017 14:54:59 +0100 Subject: [PATCH] wrote tests for edit user endpoint wrote tests for edit user endpoint --- src/controllers/users.js | 2 +- test_new_structure/index.Test.js | 337 +----------------- .../user/avatar/routes.user.avatar.Test.js.js | 57 +++ .../route.user.demouser1.avatar.Test.js | 57 +++ .../route.user.demouser2.avatar.Test.js | 125 +++++++ .../route.user.demouser3.avatar.Test.js | 125 +++++++ .../user/edit/routes.user.edit.Test.js.js | 207 +++++++++++ test_new_structure/utils/user/userUtils.js | 21 ++ 8 files changed, 598 insertions(+), 333 deletions(-) create mode 100644 test_new_structure/routes/user/avatar/routes.user.avatar.Test.js.js create mode 100644 test_new_structure/routes/user/demouser1/route.user.demouser1.avatar.Test.js create mode 100644 test_new_structure/routes/user/demouser2/route.user.demouser2.avatar.Test.js create mode 100644 test_new_structure/routes/user/demouser3/route.user.demouser3.avatar.Test.js create mode 100644 test_new_structure/routes/user/edit/routes.user.edit.Test.js.js diff --git a/src/controllers/users.js b/src/controllers/users.js index 1b5fce01..96b23fcf 100644 --- a/src/controllers/users.js +++ b/src/controllers/users.js @@ -641,7 +641,7 @@ exports.edit = function (req, res, next) { { user.save(function (err, editedUser) { if (!err) { - req.flash('success', "User, " + editedUser.ddr.username + " edited."); + req.flash('success', "User " + editedUser.ddr.username + " edited."); console.log("User " + editedUser.ddr.username + " edited."); //res.redirect('/me'); if(changedPassword) diff --git a/test_new_structure/index.Test.js b/test_new_structure/index.Test.js index 8ada30d8..4f15c1e6 100644 --- a/test_new_structure/index.Test.js +++ b/test_new_structure/index.Test.js @@ -16,335 +16,8 @@ GLOBAL.tests = {}; require(Config.absPathInTestsFolder("/cleanEverything.Test.js")); - -//USERS -require(Config.absPathInTestsFolder("/routes/users/loggedUser/route.users.loggedUser.Test.js")); -require(Config.absPathInTestsFolder("/routes/users/route.users.Test.js")); - -//USER -require(Config.absPathInTestsFolder("/routes/user/demouser1/route.user.demouser1.Test.js")); -require(Config.absPathInTestsFolder("/routes/user/demouser2/route.user.demouser2.Test.js")); -require(Config.absPathInTestsFolder("/routes/user/demouser3/route.user.demouser3.Test.js")); - - -require(Config.absPathInTestsFolder("/routes/projects/route.projects.Test.js")); - -require(Config.absPathInTestsFolder("/routes/projects/my/route.projects.my.Test.js")); -/*require(Config.absPathInTestsFolder("/routes/projects/new/route.projects.new.Test.js"));*/ - -/*require(Config.absPathInTestsFolder("/routes/descriptors/from_ontology/route.descriptors.from_ontology.dcterms.Test.js")); - require(Config.absPathInTestsFolder("/routes/descriptors/from_ontology/route.descriptors.from_ontology.foaf.Test.js"));*/ -require(Config.absPathInTestsFolder("/routes/descriptors/from_ontology/route.descriptors.from_ontology.Test.js")); - -/*require(Config.absPathInTestsFolder("/routes/projects/import/route.projects.import.Test.js"));*/ - -//PUBLIC PROJECT -/*require(Config.absPathInTestsFolder("/routes/projects/public_project/request_access/route.projects.publicProject.requestAccess.Test.js"));*/ -require(Config.absPathInTestsFolder("/routes/projects/public_project/delete/route.projects.publicProject.delete.Test.js")); -require(Config.absPathInTestsFolder("/routes/projects/public_project/undelete/route.projects.publicProject.undelete.Test.js")); - -//METADATA PROJECT -/*require(Config.absPathInTestsFolder("/routes/projects/metadataonly_project/request_access/route.projects.metadataonlyProject.requestAccess.Test.js"));*/ -require(Config.absPathInTestsFolder("/routes/projects/metadataonly_project/delete/route.projects.metadataonlyProject.delete.Test.js")); -require(Config.absPathInTestsFolder("/routes/projects/metadataonly_project/undelete/route.projects.metadataonlyProject.undelete.Test.js")); - -//PRIVATE PROJECT -/*require(Config.absPathInTestsFolder("/routes/projects/private_project/request_access/route.projects.privateProject.requestAccess.Test.js"));*/ -require(Config.absPathInTestsFolder("/routes/projects/private_project/delete/route.projects.privateProject.delete.Test.js")); -require(Config.absPathInTestsFolder("/routes/projects/private_project/undelete/route.projects.privateProject.undelete.Test.js")); - - -//PROJECT CHANGES PUBLIC PROJECT -require(Config.absPathInTestsFolder("/routes/project/public_project/__recent_changes/routes.project.publicProject.__recent_changes.Test.js")); -//PROJECT CHANGES PRIVATE PROJECT -require(Config.absPathInTestsFolder("/routes/project/private_project/__recent_changes/routes.project.privateProject.__recent_changes.Test.js")); -//PROJECT CHANGES METADADATA ONlY PROJECT -require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/__recent_changes/routes.project.metadataonlyProject.__recent_changes.Test.js")); - -//PROJECT VERSION PUBLIC PROJECT THIS TEST SHOULD BE DELETED BECAUSE THE FEATURE DOES NOT EXIST -/*require(Config.absPathInTestsFolder("/routes/project/public_project/__version/routes.project.publicProject.__version.Test.js"));*/ - -//PUBLIC PROJECT ROOT MKDIR TESTS -require(Config.absPathInTestsFolder("/routes/project/public_project/__mkdir/routes.project.publicProject.__mkdir.Test.js")); -//PRIVATE PROJECT ROOT MKDIR TESTS -require(Config.absPathInTestsFolder("/routes/project/private_project/__mkdir/routes.project.privateProject.__mkdir.Test.js")); -//METADATA ONLY PROJECT ROOT MKDIR TESTS -require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/__mkdir/routes.project.metadataonlyProject.__mkdir.Test.js")); - -//EXPORT PUBLIC PROJECT TO REPOSITORIES TESTS -/*require(Config.absPathInTestsFolder("/routes/project/public_project/__export_to_repository/routes.project.publicProject.__export_to_repository.Test")); - //EXPORT PRIVATE PROJECT TO REPOSITORIES TESTS - require(Config.absPathInTestsFolder("/routes/project/private_project/__export_to_repository/routes.project.privateProject.__export_to_repository.Test")); - //EXPORT METADATA ONLY PROJECT TO REPOSITORIES TESTS - require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/__export_to_repository/routes.project.metadataonlyProject.__export_to_repository.Test"));*/ - -//PUBLIC PROJECT FOLDER LEVEL RECENT CHANGES -require(Config.absPathInTestsFolder("/routes/project/public_project/data/testFolder1/__recent_changes/routes.project.publicProject.data.testFolder1.__recent_changes.Test.js")); -require(Config.absPathInTestsFolder("/routes/project/public_project/data/testFolder2/__recent_changes/routes.project.publicProject.data.testFolder2.__recent_changes.Test.js")); - -//PRIVATE PROJECT FOLDER LEVEL RECENT CHANGES -require(Config.absPathInTestsFolder("/routes/project/private_project/data/testFolder1/__recent_changes/routes.project.privateProject.data.testFolder1.__recent_changes.Test.js")); -require(Config.absPathInTestsFolder("/routes/project/private_project/data/testFolder2/__recent_changes/routes.project.privateProject.data.testFolder2.__recent_changes.Test.js")); - -//METADATA ONLY PROJECT FOLDER LEVEL RECENT CHANGES -require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/data/testFolder1/__recent_changes/routes.project.metadataonlyProject.data.testFolder1.__recent_changes.Test.js")); -require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/data/testFolder2/__recent_changes/routes.project.metadataonlyProject.data.testFolder2.__recent_changes.Test.js")); - -//PUBLIC PROJECT FOLDER LEVEL ?VERSION -require(Config.absPathInTestsFolder("/routes/project/public_project/data/testFolder1/__version/routes.project.publicProject.data.testFolder1.__version.Test.js")); -require(Config.absPathInTestsFolder("/routes/project/public_project/data/testFolder2/__version/routes.project.publicProject.data.testFolder2.__version.Test.js")); - -//PRIVATE PROJECT FOLDER LEVEL ?VERSION -require(Config.absPathInTestsFolder("/routes/project/private_project/data/testFolder1/__version/routes.project.privateProject.data.testFolder1.__version.Test.js")); -require(Config.absPathInTestsFolder("/routes/project/private_project/data/testFolder2/__version/routes.project.privateProject.data.testFolder2.__version.Test.js")); - -//METADATA ONLY PROJECT FOLDER LEVEL ?VERSION -require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/data/testFolder1/__version/routes.project.metadataonlyProject.data.testFolder1.__version.Test.js")); -require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/data/testFolder2/__version/routes.project.metadataonlyProject.data.testFolder2.__version.Test.js")); - -//PUBLIC PROJECT FOLDER LEVEL ?CHANGE_LOG -require(Config.absPathInTestsFolder("/routes/project/public_project/data/testFolder1/__change_log/routes.project.publicProject.data.testFolder1.__change_log.Test.js")); -require(Config.absPathInTestsFolder("/routes/project/public_project/data/testFolder2/__change_log/routes.project.publicProject.data.testFolder2.__change_log.Test.js")); - -//PRIVATE PROJECT FOLDER LEVEL ?CHANGE_LOG -require(Config.absPathInTestsFolder("/routes/project/private_project/data/testFolder1/__change_log/routes.project.privateProject.data.testFolder1.__change_log.Test.js")); -require(Config.absPathInTestsFolder("/routes/project/private_project/data/testFolder2/__change_log/routes.project.privateProject.data.testFolder2.__change_log.Test.js")); - -//METADATA ONLY PROJECT FOLDER LEVEL ?CHANGE_LOG -require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/data/testFolder1/__change_log/routes.project.metadataonlyProject.data.testFolder1.__change_log.Test.js")); -require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/data/testFolder2/__change_log/routes.project.metadataonlyProject.data.testFolder2.__change_log.Test.js")); - -//PUBLIC PROJECT FOLDER LEVEL ?MKDIR -require(Config.absPathInTestsFolder("/routes/project/public_project/data/testFolder1/__mkdir/routes.project.publicProject.data.testFolder1.__mkdir.Test.js")); -require(Config.absPathInTestsFolder("/routes/project/public_project/data/testFolder2/__mkdir/routes.project.publicProject.data.testFolder2.__mkdir.Test.js")); - -//PRIVATE PROJECT FOLDER LEVEL ?MKDIR -require(Config.absPathInTestsFolder("/routes/project/private_project/data/testFolder1/__mkdir/routes.project.privateProject.data.testFolder1.__mkdir.Test.js")); -require(Config.absPathInTestsFolder("/routes/project/private_project/data/testFolder2/__mkdir/routes.project.privateProject.data.testFolder2.__mkdir.Test.js")); - -//METADATA ONLY PROJECT FOLDER LEVEL ?MKDIR -require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/data/testFolder1/__mkdir/routes.project.metadataonlyProject.data.testFolder1.__mkdir.Test.js")); -require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/data/testFolder2/__mkdir/routes.project.metadataonlyProject.data.testFolder2.__mkdir.Test.js")); - -//PUBLIC PROJECT FOLDER LEVEL ?export_to_repository -/*require(Config.absPathInTestsFolder("/routes/project/public_project/data/testFolder1/__export_to_repository/routes.project.publicProject.data.testFolder1.__export_to_repository.Test.js")); - require(Config.absPathInTestsFolder("/routes/project/public_project/data/testFolder2/__export_to_repository/routes.project.publicProject.data.testFolder2.__export_to_repository.Test.js")); - - //PRIVATE PROJECT FOLDER LEVEL ?export_to_repository - require(Config.absPathInTestsFolder("/routes/project/private_project/data/testFolder1/__export_to_repository/routes.project.privateProject.data.testFolder1.__export_to_repository.Test.js")); - require(Config.absPathInTestsFolder("/routes/project/private_project/data/testFolder2/__export_to_repository/routes.project.privateProject.data.testFolder2.__export_to_repository.Test.js")); - - //METADATA ONLY PROJECT FOLDER LEVEL ?export_to_repository - require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/data/testFolder1/__export_to_repository/routes.project.metadataonlyProject.data.testFolder1.__export_to_repository.Test.js")); - require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/data/testFolder2/__export_to_repository/routes.project.metadataonlyProject.data.testFolder2.__export_to_repository.Test.js"));*/ - -//PUBLIC PROJECT FOLDER LEVEL ?update_metadata -require(Config.absPathInTestsFolder("/routes/project/public_project/data/testFolder1/__update_metadata/routes.project.publicProject.data.testFolder1.__update_metadata.Test.js")); -require(Config.absPathInTestsFolder("/routes/project/public_project/data/testFolder2/__update_metadata/routes.project.publicProject.data.testFolder2.__update_metadata.Test.js")); - -//PRIVATE PROJECT FOLDER LEVEL ?update_metadata -require(Config.absPathInTestsFolder("/routes/project/private_project/data/testFolder1/__update_metadata/routes.project.privateProject.data.testFolder1.__update_metadata.Test.js")); -require(Config.absPathInTestsFolder("/routes/project/private_project/data/testFolder2/__update_metadata/routes.project.privateProject.data.testFolder2.__update_metadata.Test.js")); - -//METADATA ONLY PROJECT FOLDER LEVEL ?update_metadata -require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/data/testFolder1/__update_metadata/routes.project.metadataonlyProject.data.testFolder1.__update_metadata.Test.js")); -require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/data/testFolder2/__update_metadata/routes.project.metadataonlyProject.data.testFolder2.__update_metadata.Test.js")); - -//PUBLIC PROJECT FOLDER LEVEL ?restore_metadata_version -require(Config.absPathInTestsFolder("/routes/project/public_project/data/testFolder1/__restore_metadata_version/routes.project.publicProject.data.testFolder1.__restore_metadata_version.Test.js")); -require(Config.absPathInTestsFolder("/routes/project/public_project/data/testFolder2/__restore_metadata_version/routes.project.publicProject.data.testFolder2.__restore_metadata_version.Test.js")); - -//PRIVATE PROJECT FOLDER LEVEL ?restore_metadata_version -require(Config.absPathInTestsFolder("/routes/project/private_project/data/testFolder1/__restore_metadata_version/routes.project.privateProject.data.testFolder1.__restore_metadata_version.Test.js")); -require(Config.absPathInTestsFolder("/routes/project/private_project/data/testFolder2/__restore_metadata_version/routes.project.privateProject.data.testFolder2.__restore_metadata_version.Test.js")); - -//METADATA ONLY PROJECT FOLDER LEVEL ?restore_metadata_version -require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/data/testFolder1/__restore_metadata_version/routes.project.metadataonlyProject.data.testFolder1.__restore_metadata_version.Test.js")); -require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/data/testFolder2/__restore_metadata_version/routes.project.metadataonlyProject.data.testFolder2.__restore_metadata_version.Test.js")); - -//PUBLIC PROJECT FOLDER LEVEL ?undelete -require(Config.absPathInTestsFolder("/routes/project/public_project/data/testFolder1/__undelete/routes.project.publicProject.data.testFolder1.__undelete.Test.js")); -require(Config.absPathInTestsFolder("/routes/project/public_project/data/testFolder2/__undelete/routes.project.publicProject.data.testFolder2.__undelete.Test.js")); - -//PRIVATE PROJECT FOLDER LEVEL ?undelete -require(Config.absPathInTestsFolder("/routes/project/private_project/data/testFolder1/__undelete/routes.project.privateProject.data.testFolder1.__undelete.Test.js")); -require(Config.absPathInTestsFolder("/routes/project/private_project/data/testFolder2/__undelete/routes.project.privateProject.data.testFolder2.__undelete.Test.js")); - -//METADATA ONLY PROJECT FOLDER LEVEL ?undelete -require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/data/testFolder1/__undelete/routes.project.metadataonlyProject.data.testFolder1.__undelete.Test.js")); -require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/data/testFolder2/__undelete/routes.project.metadataonlyProject.data.testFolder2.__undelete.Test.js")); - -//PUBLIC PROJECT FOLDER LEVEL soft ?delete -require(Config.absPathInTestsFolder("/routes/project/public_project/data/testFolder1/__delete/routes.project.publicProject.data.testFolder1.__delete.Test.js")); -require(Config.absPathInTestsFolder("/routes/project/public_project/data/testFolder2/__delete/routes.project.publicProject.data.testFolder2.__delete.Test.js")); - -//PRIVATE PROJECT FOLDER LEVEL soft ?delete -require(Config.absPathInTestsFolder("/routes/project/private_project/data/testFolder1/__delete/routes.project.privateProject.data.testFolder1.__delete.Test.js")); -require(Config.absPathInTestsFolder("/routes/project/private_project/data/testFolder2/__delete/routes.project.privateProject.data.testFolder2.__delete.Test.js")); - -//METADATA ONLY PROJECT FOLDER LEVEL soft ?delete -require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/data/testFolder1/__delete/routes.project.metadataonlyProject.data.testFolder1.__delete.Test.js")); -require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/data/testFolder2/__delete/routes.project.metadataonlyProject.data.testFolder2.__delete.Test.js")); - -//PUBLIC PROJECT FOLDER LEVEL hard ?delete -require(Config.absPathInTestsFolder("/routes/project/public_project/data/testFolder1/__hard_delete/routes.project.publicProject.data.testFolder1.__hard_delete.Test.js")); -require(Config.absPathInTestsFolder("/routes/project/public_project/data/testFolder2/__hard_delete/routes.project.publicProject.data.testFolder2.__hard_delete.Test.js")); - -//PRIVATE PROJECT FOLDER LEVEL hard ?delete -require(Config.absPathInTestsFolder("/routes/project/private_project/data/testFolder1/__hard_delete/routes.project.privateProject.data.testFolder1.__hard_delete.Test.js")); -require(Config.absPathInTestsFolder("/routes/project/private_project/data/testFolder2/__hard_delete/routes.project.privateProject.data.testFolder2.__hard_delete.Test.js")); - -//METADATA ONLY PROJECT FOLDER LEVEL hard ?delete -require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/data/testFolder1/__hard_delete/routes.project.metadataonlyProject.data.testFolder1.__hard_delete.Test.js")); -require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/data/testFolder2/__hard_delete/routes.project.metadataonlyProject.data.testFolder2.__hard_delete.Test.js")); - -//external_repositories TESTS -/*require(Config.absPathInTestsFolder("/routes/external_repositories/route.externalRepositories.Test.js"));*/ - -//PUBLIC PROJECT ?metadata_recommendations TESTS -/*require(Config.absPathInTestsFolder("/routes/project/public_project/__metadata_recommendations/routes.project.publicProject.__metadata_recommendations.Test")); - - //PRIVATE PROJECT ?metadata_recommendations TESTS - require(Config.absPathInTestsFolder("/routes/project/private_project/__metadata_recommendations/routes.project.privateProject.__metadata_recommendations.Test")); - - //METADATA ONLY PROJECT ?metadata_recommendations TESTS - require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/__metadata_recommendations/routes.project.metadataonlyProject.__metadata_recommendations.Test"));*/ - -//PUBLIC PROJECT ?recommendation_ontologies TESTS -/*require(Config.absPathInTestsFolder("/routes/project/public_project/__recommendation_ontologies/routes.project.publicProject.__recommendation_ontologies.Test")); - - //PRIVATE PROJECT ?recommendation_ontologies TESTS - require(Config.absPathInTestsFolder("/routes/project/private_project/__recommendation_ontologies/routes.project.privateProject.__recommendation_ontologies.Test")); - - //METADATA PROJECT ?recommendation_ontologies TESTS - require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/__recommendation_ontologies/routes.project.metadataonlyProject.__recommendation_ontologies.Test"));*/ - -//PUBLIC PROJECT ?metadata TESTS -/*require(Config.absPathInTestsFolder("/routes/project/public_project/__metadata/routes.project.publicProject.__metadata.Test")); - - //PRIVATE PROJECT ?metadata TESTS - require(Config.absPathInTestsFolder("/routes/project/private_project/__metadata/routes.project.privateProject.__metadata.Test")); - - //METADATA ONLY PROJECT ?metadata TESTS - require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/__metadata/routes.project.metadataonlyProject.__metadata.Test"));*/ - -//PUBLIC PROJECT ?metadata&deep TESTS -/*require(Config.absPathInTestsFolder("/routes/project/public_project/__metadata&deep/routes.project.publicProject.__metadata&deep.Test")); - - //PRIVATE PROJECT ?metadata&deep TESTS - require(Config.absPathInTestsFolder("/routes/project/private_project/__metadata&deep/routes.project.privateProject.__metadata&deep.Test")); - - //METADATA ONLY PROJECT ?metadata&deep TESTS - require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/__metadata&deep/routes.project.metadataonlyProject.__metadata&deep.Test"));*/ - -//PUBLIC PROJECT ROOT TESTS -/*require(Config.absPathInTestsFolder("/routes/project/public_project/routes.project.publicProject.Test")); - - //PRIVATE PROJECT ROOT TESTS - require(Config.absPathInTestsFolder("/routes/project/private_project/routes.project.privateProject.Test")); - - //METADATA ONLY PROJECT ROOT TESTS - require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/routes.project.metadataonlyProject.Test"));*/ - -//PUBLIC PROJECT FOLDER LEVEL ?metadata_recommendations -/*require(Config.absPathInTestsFolder("/routes/project/public_project/data/testFolder1/__metadata_recommendations/routes.project.publicProject.data.testFolder1.__metadata_recommendations.Test")); - require(Config.absPathInTestsFolder("/routes/project/public_project/data/testFolder2/__metadata_recommendations/routes.project.publicProject.data.testFolder2.__metadata_recommendations.Test")); - - //PRIVATE PROJECT FOLDER LEVEL ?metadata_recommendations - require(Config.absPathInTestsFolder("/routes/project/private_project/data/testFolder1/__metadata_recommendations/routes.project.privateProject.data.testFolder1.__metadata_recommendations.Test")); - require(Config.absPathInTestsFolder("/routes/project/private_project/data/testFolder2/__metadata_recommendations/routes.project.privateProject.data.testFolder2.__metadata_recommendations.Test")); - - //METADATA ONLY PROJECT FOLDER LEVEL ?metadata_recommendations - require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/data/testFolder1/__metadata_recommendations/routes.project.metadataonlyProject.data.testFolder1.__metadata_recommendations.Test")); - require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/data/testFolder2/__metadata_recommendations/routes.project.metadataonlyProject.data.testFolder2.__metadata_recommendations.Test"));*/ - -//PUBLIC PROJECT FOLDER LEVEL ?recommendation_ontologies -/*require(Config.absPathInTestsFolder("/routes/project/public_project/data/testFolder1/__recommendation_ontologies/routes.project.publicProject.data.testFolder1.__recommendation_ontologies.Test")); - require(Config.absPathInTestsFolder("/routes/project/public_project/data/testFolder2/__recommendation_ontologies/routes.project.publicProject.data.testFolder2.__recommendation_ontologies.Test")); - - //PRIVATE PROJECT FOLDER LEVEL ?recommendation_ontologies - require(Config.absPathInTestsFolder("/routes/project/private_project/data/testFolder1/__recommendation_ontologies/routes.project.privateProject.data.testFolder1.__recommendation_ontologies.Test")); - require(Config.absPathInTestsFolder("/routes/project/private_project/data/testFolder2/__recommendation_ontologies/routes.project.privateProject.data.testFolder2.__recommendation_ontologies.Test")); - - //METADATA ONLY PROJECT FOLDER LEVEL ?recommendation_ontologies - require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/data/testFolder1/__recommendation_ontologies/routes.project.metadataonlyProject.data.testFolder1.__recommendation_ontologies.Test")); - require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/data/testFolder2/__recommendation_ontologies/routes.project.metadataonlyProject.data.testFolder2.__recommendation_ontologies.Test"));*/ - -//PUBLIC PROJECT FOLDER LEVEL ?metadata -require(Config.absPathInTestsFolder("/routes/project/public_project/data/testFolder1/__metadata/routes.project.publicProject.data.testFolder1.__metadata.Test")); -require(Config.absPathInTestsFolder("/routes/project/public_project/data/testFolder2/__metadata/routes.project.publicProject.data.testFolder2.__metadata.Test")); - -//PRIVATE PROJECT FOLDER LEVEL ?metadata -require(Config.absPathInTestsFolder("/routes/project/private_project/data/testFolder1/__metadata/routes.project.privateProject.data.testFolder1.__metadata.Test")); -require(Config.absPathInTestsFolder("/routes/project/private_project/data/testFolder2/__metadata/routes.project.privateProject.data.testFolder2.__metadata.Test")); - -//METADATA ONLY PROJECT FOLDER LEVEL ?metadata -require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/data/testFolder1/__metadata/routes.project.metadataonlyProject.data.testFolder1.__metadata.Test")); -require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/data/testFolder2/__metadata/routes.project.metadataonlyProject.data.testFolder2.__metadata.Test")); - -//PUBLIC PROJECT FOLDER LEVEL ?metadata&deep -require(Config.absPathInTestsFolder("/routes/project/public_project/data/testFolder1/__metadata&deep/routes.project.publicProject.data.testFolder1.__metadata&deep.Test")); -require(Config.absPathInTestsFolder("/routes/project/public_project/data/testFolder2/__metadata&deep/routes.project.publicProject.data.testFolder2.__metadata&deep.Test")); - -//PRIVATE PROJECT FOLDER LEVEL ?metadata&deep -require(Config.absPathInTestsFolder("/routes/project/private_project/data/testFolder1/__metadata&deep/routes.project.privateProject.data.testFolder1.__metadata&deep.Test")); -require(Config.absPathInTestsFolder("/routes/project/private_project/data/testFolder2/__metadata&deep/routes.project.privateProject.data.testFolder2.__metadata&deep.Test")); - -//METADATA ONLY PROJECT FOLDER LEVEL ?metadata&deep -require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/data/testFolder1/__metadata&deep/routes.project.metadataonlyProject.data.testFolder1.__metadata&deep.Test")); -require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/data/testFolder2/__metadata&deep/routes.project.metadataonlyProject.data.testFolder2.__metadata&deep.Test")); - -//PUBLIC PROJECT FOLDER LEVEL ?parent_metadata -require(Config.absPathInTestsFolder("/routes/project/public_project/data/testFolder1/__parent_metadata/routes.project.publicProject.data.testFolder1.__parent_metadata.Test")); -require(Config.absPathInTestsFolder("/routes/project/public_project/data/testFolder2/__parent_metadata/routes.project.publicProject.data.testFolder2.__parent_metadata.Test")); - -//PRIVATE PROJECT FOLDER LEVEL ?parent_metadata -require(Config.absPathInTestsFolder("/routes/project/private_project/data/testFolder1/__parent_metadata/routes.project.privateProject.data.testFolder1.__parent_metadata.Test")); -require(Config.absPathInTestsFolder("/routes/project/private_project/data/testFolder2/__parent_metadata/routes.project.privateProject.data.testFolder2.__parent_metadata.Test")); - -//METADATA ONLY PROJECT FOLDER LEVEL ?parent_metadata -require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/data/testFolder1/__parent_metadata/routes.project.metadataonlyProject.data.testFolder1.__parent_metadata.Test")); -require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/data/testFolder2/__parent_metadata/routes.project.metadataonlyProject.data.testFolder2.__parent_metadata.Test")); - -//PUBLIC PROJECT FOLDER LEVEL /project/:handle/data/:folderHandle(default case) -/*require(Config.absPathInTestsFolder("/routes/project/public_project/data/testFolder1/routes.project.publicProject.data.testFolder1.Test")); - require(Config.absPathInTestsFolder("/routes/project/public_project/data/testFolder2/routes.project.publicProject.data.testFolder2.Test")); - - //PRIVATE PROJECT FOLDER LEVEL /project/:handle/data/:folderHandle(default case) - require(Config.absPathInTestsFolder("/routes/project/private_project/data/testFolder1/routes.project.privateProject.data.testFolder1.Test")); - require(Config.absPathInTestsFolder("/routes/project/private_project/data/testFolder2/routes.project.privateProject.data.testFolder2.Test")); - - //METADATA ONLY PROJECT FOLDER LEVEL /project/:handle/data/:folderHandle(default case) - require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/data/testFolder1/routes.project.metadataonlyProject.data.testFolder1.Test")); - require(Config.absPathInTestsFolder("/routes/project/metadata_only_project/data/testFolder2/routes.project.metadataonlyProject.data.testFolder2.Test"));*/ - -/* - //test login - require("./controllers/auth.Test.js"); - - //test projects - require("./controllers/projects.Test.js"); - - //test file uploads - require("./controllers/files.Test.js"); - - //test folders - require("./controllers/folders.Test.js"); - */ -/* - //test descriptors - require("./controllers/descriptors.Test.js"); - - //SOCIAL DENDRO - //test Social Dendro Posts - require("./controllers/social/posts.Test.js"); - - //test Social Dendro File Versions - require("./controllers/social/fileVersions.Test.js"); - - //test Social Dendro Notifications - require("./controllers/social/notifications.Test.js"); - - //destroy graphs - require('./models/kb/db.Test.js'); - */ \ No newline at end of file +require(Config.absPathInTestsFolder("/routes/user/edit/routes.user.edit.Test.js")); +/*require(Config.absPathInTestsFolder("/routes/user/avatar/routes.user.avatar.Test.js"));*/ +/*require(Config.absPathInTestsFolder("/routes/user/demouser1/avatar/routes.user.demouser1.avatar.Test.js")); + require(Config.absPathInTestsFolder("/routes/user/demouser2/avatar/routes.user.demouser2.avatar.Test.js")); + require(Config.absPathInTestsFolder("/routes/user/demouser3/avatar/routes.user.demouser3.avatar.Test.js"));*/ \ No newline at end of file diff --git a/test_new_structure/routes/user/avatar/routes.user.avatar.Test.js.js b/test_new_structure/routes/user/avatar/routes.user.avatar.Test.js.js new file mode 100644 index 00000000..46fb8e9c --- /dev/null +++ b/test_new_structure/routes/user/avatar/routes.user.avatar.Test.js.js @@ -0,0 +1,57 @@ +var chai = require("chai"); +var chaiHttp = require("chai-http"); +const should = chai.should(); +var _ = require("underscore"); +chai.use(chaiHttp); + +const Config = GLOBAL.Config; + +const userUtils = require(Config.absPathInTestsFolder("utils/user/userUtils.js")); + +const appUtils = require(Config.absPathInTestsFolder("utils/app/appUtils.js")); +var createUserUnit = appUtils.requireUncached(Config.absPathInTestsFolder("units/users/createUsers.Unit.js")); +//TODO var createAvatarsForUsersUnit = appUtils.requireUncached(Config.absPathInTestsFolder("units/users/createAvatarsForUsers.Unit.js")); + +describe("[GET] /user/avatar", function (done) { + + before(function (done) { + this.timeout(60000); + createUserUnit.setup(function (err, results) { + should.equal(err, null); + done(); + }); + }); + + it("[JSON] should give an unauthorized error if the current user is not authenticated", function (done) { + + }); + + it("[JSON] should give a not found error if the avatar is from a user that does not exist and if the current user is authenticated", function (done) { + + }); + + it("[JSON] should give an unauthorized error if the avatar is from a user that does not exist and if the current user is not authenticated", function (done) { + + }); + + it("[JSON] should give the avatar for demouser1 if the current user is authenticated", function (done) { + + }); + + it("[JSON] should give the avatar for demouser2 if the current user is authenticated", function (done) { + + }); + + it("[JSON] should give the avatar for demouser2 if the current user is authenticated", function (done) { + + }); + + after(function (done) { + this.timeout(60000); + appUtils.clearAppState(function (err, data) { + should.equal(err, null); + done(); + }); + }); + +}); diff --git a/test_new_structure/routes/user/demouser1/route.user.demouser1.avatar.Test.js b/test_new_structure/routes/user/demouser1/route.user.demouser1.avatar.Test.js new file mode 100644 index 00000000..6d64b24f --- /dev/null +++ b/test_new_structure/routes/user/demouser1/route.user.demouser1.avatar.Test.js @@ -0,0 +1,57 @@ +var chai = require("chai"); +var chaiHttp = require("chai-http"); +const should = chai.should(); +var _ = require("underscore"); +chai.use(chaiHttp); + +const Config = GLOBAL.Config; + +const userUtils = require(Config.absPathInTestsFolder("utils/user/userUtils.js")); + +const appUtils = require(Config.absPathInTestsFolder("utils/app/appUtils.js")); +var createUserUnit = appUtils.requireUncached(Config.absPathInTestsFolder("units/users/createUsers.Unit.js")); +//TODO var createAvatarsForUsersUnit = appUtils.requireUncached(Config.absPathInTestsFolder("units/users/createAvatarsForUsers.Unit.js")); + +describe("[GET] /user/demouser1/avatar", function (done) { + + before(function (done) { + this.timeout(60000); + createUserUnit.setup(function (err, results) { + should.equal(err, null); + done(); + }); + }); + + it("[JSON] should give an unauthorized error if the current user is not authenticated", function (done) { + + }); + + it("[JSON] should give a not found error if the avatar is from a user that does not exist and if the current user is authenticated", function (done) { + + }); + + it("[JSON] should give an unauthorized error if the avatar is from a user that does not exist and if the current user is not authenticated", function (done) { + + }); + + it("[JSON] should give the avatar for demouser1 if the current user is authenticated", function (done) { + + }); + + it("[JSON] should give the avatar for demouser2 if the current user is authenticated", function (done) { + + }); + + it("[JSON] should give the avatar for demouser2 if the current user is authenticated", function (done) { + + }); + + after(function (done) { + this.timeout(60000); + appUtils.clearAppState(function (err, data) { + should.equal(err, null); + done(); + }); + }); + +}); diff --git a/test_new_structure/routes/user/demouser2/route.user.demouser2.avatar.Test.js b/test_new_structure/routes/user/demouser2/route.user.demouser2.avatar.Test.js new file mode 100644 index 00000000..c4edc473 --- /dev/null +++ b/test_new_structure/routes/user/demouser2/route.user.demouser2.avatar.Test.js @@ -0,0 +1,125 @@ +var chai = require("chai"); +var chaiHttp = require("chai-http"); +const should = chai.should(); +var _ = require("underscore"); +chai.use(chaiHttp); + +const Config = GLOBAL.Config; + +const userUtils = require(Config.absPathInTestsFolder("utils/user/userUtils.js")); + +const appUtils = require(Config.absPathInTestsFolder("utils/app/appUtils.js")); +var createUserUnit = appUtils.requireUncached(Config.absPathInTestsFolder("units/users/createUsers.Unit.js")); + +describe("/user/demouser1", function (done) { + + const demouser1 = require(Config.absPathInTestsFolder("mockdata/users/demouser1.js")); + const falseUser = "demouser404"; + + before(function (done) { + this.timeout(60000); + createUserUnit.setup(function (err, results) { + should.equal(err, null); + done(); + }); + }); + + it("[JSON] should NOT access demouser1.username profile when given demouser1.username and NOT logged in",function (done) { + var app = GLOBAL.tests.app; + var agent = chai.request.agent(app); + userUtils.getUserInfo(demouser1.username, true, agent, function(err, res){ + res.should.have.status(401); + res.text.should.contain("You are not logged into the system."); + done(); + }) + }); + + it("[HTML] should NOT access demouser1.username profile when given demouser1.username and NOT logged in",function (done) { + var app = GLOBAL.tests.app; + var agent = chai.request.agent(app); + userUtils.getUserInfo(demouser1.username, false, agent, function(err, res){ + res.should.have.status(200); + res.redirects[0].should.contain("/login"); + res.text.should.contain("Please log into the system"); + done(); + }) + }); + //review agent immediatly + it("[JSON] should access demouser1.username profile when given demouser1.username and logged in",function (done) { + var app = GLOBAL.tests.app; + var agent = chai.request.agent(app); + userUtils.loginUser(demouser1.username, demouser1.password, function (err, agent) { + userUtils.getUserInfo(demouser1.username, true, agent, function(err, res){ + res.should.have.status(200); + res.text.should.contain("\"username\":\"demouser1\""); + done(); + }) + }) + }); + + it("[HTML] should access demouser1.username profile when given demouser1.username and logged in",function (done) { + var app = GLOBAL.tests.app; + var agent = chai.request.agent(app); + userUtils.loginUser(demouser1.username, demouser1.password, function (err, agent) { + userUtils.getUserInfo(demouser1.username, false, agent, function(err, res){ + res.should.have.status(200); + res.text.should.contain("Viewing user demouser1"); + done(); + }) + }) + }); + + + it("[JSON] should NOT access demouser1.username profile when given non-existent username and logged in",function (done) { + var app = GLOBAL.tests.app; + var agent = chai.request.agent(app); + userUtils.loginUser(demouser1.username, demouser1.password, function (err, agent) { + userUtils.getUserInfo(falseUser, true, agent, function(err, res){ + res.should.have.status(200); + res.text.should.contain("demouser404 does not exist"); + done(); + }) + }) + }); + + it("[HTML] should NOT access demouser1.username profile when given non-existent username and logged in",function (done) { + var app = GLOBAL.tests.app; + var agent = chai.request.agent(app); + userUtils.loginUser(demouser1.username, demouser1.password, function (err, agent) { + userUtils.getUserInfo(falseUser, false, agent, function(err, res){ + res.should.have.status(200); + res.text.should.contain("demouser404 does not exist"); + done(); + }) + }) + }); + + it("[JSON] should NOT access demouser1.username profile when given non-existent username and NOT logged in",function (done) { + var app = GLOBAL.tests.app; + var agent = chai.request.agent(app); + userUtils.getUserInfo(falseUser, true, agent, function(err, res){ + res.should.have.status(401); + res.text.should.contain("You are not logged into the system"); + done(); + }) + }); + + it("[HTML] should NOT access demouser1.username profile when given non-existent username and NOT logged in",function (done) { + var app = GLOBAL.tests.app; + var agent = chai.request.agent(app); + userUtils.getUserInfo(falseUser, false, agent, function(err, res){ + res.should.have.status(200); + res.text.should.contain("Please log into the system"); + done(); + }) + }); + + after(function (done) { + this.timeout(60000); + appUtils.clearAppState(function (err, data) { + should.equal(err, null); + done(); + }); + }); + +}); diff --git a/test_new_structure/routes/user/demouser3/route.user.demouser3.avatar.Test.js b/test_new_structure/routes/user/demouser3/route.user.demouser3.avatar.Test.js new file mode 100644 index 00000000..c4edc473 --- /dev/null +++ b/test_new_structure/routes/user/demouser3/route.user.demouser3.avatar.Test.js @@ -0,0 +1,125 @@ +var chai = require("chai"); +var chaiHttp = require("chai-http"); +const should = chai.should(); +var _ = require("underscore"); +chai.use(chaiHttp); + +const Config = GLOBAL.Config; + +const userUtils = require(Config.absPathInTestsFolder("utils/user/userUtils.js")); + +const appUtils = require(Config.absPathInTestsFolder("utils/app/appUtils.js")); +var createUserUnit = appUtils.requireUncached(Config.absPathInTestsFolder("units/users/createUsers.Unit.js")); + +describe("/user/demouser1", function (done) { + + const demouser1 = require(Config.absPathInTestsFolder("mockdata/users/demouser1.js")); + const falseUser = "demouser404"; + + before(function (done) { + this.timeout(60000); + createUserUnit.setup(function (err, results) { + should.equal(err, null); + done(); + }); + }); + + it("[JSON] should NOT access demouser1.username profile when given demouser1.username and NOT logged in",function (done) { + var app = GLOBAL.tests.app; + var agent = chai.request.agent(app); + userUtils.getUserInfo(demouser1.username, true, agent, function(err, res){ + res.should.have.status(401); + res.text.should.contain("You are not logged into the system."); + done(); + }) + }); + + it("[HTML] should NOT access demouser1.username profile when given demouser1.username and NOT logged in",function (done) { + var app = GLOBAL.tests.app; + var agent = chai.request.agent(app); + userUtils.getUserInfo(demouser1.username, false, agent, function(err, res){ + res.should.have.status(200); + res.redirects[0].should.contain("/login"); + res.text.should.contain("Please log into the system"); + done(); + }) + }); + //review agent immediatly + it("[JSON] should access demouser1.username profile when given demouser1.username and logged in",function (done) { + var app = GLOBAL.tests.app; + var agent = chai.request.agent(app); + userUtils.loginUser(demouser1.username, demouser1.password, function (err, agent) { + userUtils.getUserInfo(demouser1.username, true, agent, function(err, res){ + res.should.have.status(200); + res.text.should.contain("\"username\":\"demouser1\""); + done(); + }) + }) + }); + + it("[HTML] should access demouser1.username profile when given demouser1.username and logged in",function (done) { + var app = GLOBAL.tests.app; + var agent = chai.request.agent(app); + userUtils.loginUser(demouser1.username, demouser1.password, function (err, agent) { + userUtils.getUserInfo(demouser1.username, false, agent, function(err, res){ + res.should.have.status(200); + res.text.should.contain("Viewing user demouser1"); + done(); + }) + }) + }); + + + it("[JSON] should NOT access demouser1.username profile when given non-existent username and logged in",function (done) { + var app = GLOBAL.tests.app; + var agent = chai.request.agent(app); + userUtils.loginUser(demouser1.username, demouser1.password, function (err, agent) { + userUtils.getUserInfo(falseUser, true, agent, function(err, res){ + res.should.have.status(200); + res.text.should.contain("demouser404 does not exist"); + done(); + }) + }) + }); + + it("[HTML] should NOT access demouser1.username profile when given non-existent username and logged in",function (done) { + var app = GLOBAL.tests.app; + var agent = chai.request.agent(app); + userUtils.loginUser(demouser1.username, demouser1.password, function (err, agent) { + userUtils.getUserInfo(falseUser, false, agent, function(err, res){ + res.should.have.status(200); + res.text.should.contain("demouser404 does not exist"); + done(); + }) + }) + }); + + it("[JSON] should NOT access demouser1.username profile when given non-existent username and NOT logged in",function (done) { + var app = GLOBAL.tests.app; + var agent = chai.request.agent(app); + userUtils.getUserInfo(falseUser, true, agent, function(err, res){ + res.should.have.status(401); + res.text.should.contain("You are not logged into the system"); + done(); + }) + }); + + it("[HTML] should NOT access demouser1.username profile when given non-existent username and NOT logged in",function (done) { + var app = GLOBAL.tests.app; + var agent = chai.request.agent(app); + userUtils.getUserInfo(falseUser, false, agent, function(err, res){ + res.should.have.status(200); + res.text.should.contain("Please log into the system"); + done(); + }) + }); + + after(function (done) { + this.timeout(60000); + appUtils.clearAppState(function (err, data) { + should.equal(err, null); + done(); + }); + }); + +}); diff --git a/test_new_structure/routes/user/edit/routes.user.edit.Test.js.js b/test_new_structure/routes/user/edit/routes.user.edit.Test.js.js new file mode 100644 index 00000000..ebfe1c3e --- /dev/null +++ b/test_new_structure/routes/user/edit/routes.user.edit.Test.js.js @@ -0,0 +1,207 @@ +var chai = require("chai"); +var chaiHttp = require("chai-http"); +const should = chai.should(); +var _ = require("underscore"); +chai.use(chaiHttp); + +const Config = GLOBAL.Config; + +const userUtils = require(Config.absPathInTestsFolder("utils/user/userUtils.js")); + +const appUtils = require(Config.absPathInTestsFolder("utils/app/appUtils.js")); +var createUserUnit = appUtils.requireUncached(Config.absPathInTestsFolder("units/users/createUsers.Unit.js")); + +describe("[POST] /user/edit", function (done) { + + const demouser1 = require(Config.absPathInTestsFolder("mockdata/users/demouser1.js")); + const demouser2 = require(Config.absPathInTestsFolder("mockdata/users/demouser2.js")); + const demouser3 = require(Config.absPathInTestsFolder("mockdata/users/demouser3.js")); + + + let demouser1BaseData = { + firstname: "demouser1", + surname: "demouser1", + email: "demouser1@gmail.com", + password : "demouserpassword2015", + repeat_password : "demouserpassword2015" + }; + + let correctDataToEdit = { + firstname: "usernameedited", + surname: "usernameedited", + email: "usernameedited@gmail.com", + password : "123456789", + repeat_password : "123456789" + }; + + let invalidEmailDataToEdit = { + firstname: "usernameedited", + surname: "usernameedited", + email: "usernameedited@gmail", + password : "123456789", + repeat_password : "123456789" + }; + + let invalidPasswordLengthDataToEdit = { + firstname: "usernameedited", + surname: "usernameedited", + email: "usernameedited@gmail.com", + password : "123", + repeat_password : "123" + }; + + let passwordsNotTheSameDataToEdit = { + firstname: "usernameedited", + surname: "usernameedited", + email: "usernameedited@gmail.com", + password : "123456789", + repeat_password : "123456780" + }; + + before(function (done) { + this.timeout(60000); + createUserUnit.setup(function (err, results) { + should.equal(err, null); + done(); + }); + }); + + it("[HTML] should give an unauthorized error if the current user is not authenticated", function (done) { + var app = GLOBAL.tests.app; + var agent = chai.request.agent(app); + + userUtils.editUser(true, agent, correctDataToEdit, function(err, res){ + res.should.have.status(401); + res.text.should.contain("You are not logged into the system."); + done(); + }); + }); + + it("[HTML] should not edit demouser2 if the current authenticated user is the demouser1", function (done) { + userUtils.loginUser(demouser1.username, demouser1.password, function (err, agent) { + userUtils.editUser(true, agent, demouser1BaseData, function(err, res){ + res.should.have.status(200); + res.text.should.contain("User " + demouser1.username + " edited."); + userUtils.loginUser(demouser1.username, demouser1.password, function (err, agent) { + userUtils.getUserInfo(demouser2.username, true, agent, function (err, res) { + res.should.have.status(200); + res.body.foaf.mbox.should.not.equal(demouser1BaseData.email); + done(); + }); + }); + }); + }); + }); + + it("[HTML] should not edit demouser3 if the current authenticated user is the demouser1", function (done) { + userUtils.loginUser(demouser1.username, demouser1.password, function (err, agent) { + userUtils.editUser(true, agent, demouser1BaseData, function(err, res){ + res.should.have.status(200); + res.text.should.contain("User " + demouser1.username + " edited."); + userUtils.loginUser(demouser1.username, demouser1.password, function (err, agent) { + userUtils.getUserInfo(demouser3.username, true, agent, function (err, res) { + res.should.have.status(200); + res.body.foaf.mbox.should.not.equal(demouser1BaseData.email); + done(); + }); + }); + }); + }); + }); + + it("[HTML] should give an error if the password and repeat_password body params are not the same", function (done) { + userUtils.loginUser(demouser1.username, demouser1.password, function (err, agent) { + userUtils.editUser(true, agent, passwordsNotTheSameDataToEdit, function(err, res){ + res.should.have.status(200); + res.text.should.contain("Passwords fields must be the same and at least 8 characters in length!"); + done(); + }); + }); + }); + + it("[HTML] should give an error if the password and repeat_password body params are not above 8 chars long", function (done) { + userUtils.loginUser(demouser1.username, demouser1.password, function (err, agent) { + userUtils.editUser(true, agent, invalidPasswordLengthDataToEdit, function(err, res){ + res.should.have.status(200); + res.text.should.contain("Passwords fields must be the same and at least 8 characters in length!"); + done(); + }); + }); + }); + + it("[HTML] should give an error if the email body param is not in a valid email format", function (done) { + userUtils.loginUser(demouser1.username, demouser1.password, function (err, agent) { + userUtils.editUser(true, agent, invalidEmailDataToEdit, function(err, res){ + res.should.have.status(200); + res.text.should.contain("Invalid email format!"); + done(); + }); + }); + }); + + it("[HTML] should edit demouser1 if the current authenticated user is demouser1 and all fields are complying to the rules", function (done) { + userUtils.loginUser(demouser1.username, demouser1.password, function (err, agent) { + userUtils.editUser(true, agent, correctDataToEdit, function(err, res){ + res.should.have.status(200); + res.text.should.contain("User " + demouser1.username + " edited."); + //because the password was changed + userUtils.loginUser(demouser1.username, correctDataToEdit.password, function (err, agent) { + userUtils.getUserInfo(demouser1.username, true, agent, function (err, res) { + res.should.have.status(200); + res.body.foaf.mbox.should.equal(correctDataToEdit.email); + res.body.foaf.firstName.should.equal(correctDataToEdit.firstname); + res.body.foaf.surname.should.equal(correctDataToEdit.surname); + done(); + }); + }); + }); + }); + }); + + it("[HTML] should edit demouser2 if the current authenticated user is demouser2 and all fields are complying to the rules", function (done) { + userUtils.loginUser(demouser2.username, demouser2.password, function (err, agent) { + userUtils.editUser(true, agent, correctDataToEdit, function(err, res){ + res.should.have.status(200); + res.text.should.contain("User " + demouser2.username + " edited."); + //because the password was changed + userUtils.loginUser(demouser2.username, correctDataToEdit.password, function (err, agent) { + userUtils.getUserInfo(demouser2.username, true, agent, function (err, res) { + res.should.have.status(200); + res.body.foaf.mbox.should.equal(correctDataToEdit.email); + res.body.foaf.firstName.should.equal(correctDataToEdit.firstname); + res.body.foaf.surname.should.equal(correctDataToEdit.surname); + done(); + }); + }); + }); + }); + }); + + it("[HTML] should edit demouser3 if the current authenticated user is demouser3 and all fields are complying to the rules", function (done) { + userUtils.loginUser(demouser3.username, demouser3.password, function (err, agent) { + userUtils.editUser(true, agent, correctDataToEdit, function(err, res){ + res.should.have.status(200); + res.text.should.contain("User " + demouser3.username + " edited."); + //because the password was changed + userUtils.loginUser(demouser3.username, correctDataToEdit.password, function (err, agent) { + userUtils.getUserInfo(demouser3.username, true, agent, function (err, res) { + res.should.have.status(200); + res.body.foaf.mbox.should.equal(correctDataToEdit.email); + res.body.foaf.firstName.should.equal(correctDataToEdit.firstname); + res.body.foaf.surname.should.equal(correctDataToEdit.surname); + done(); + }); + }); + }); + }); + }); + + after(function (done) { + this.timeout(60000); + appUtils.clearAppState(function (err, data) { + should.equal(err, null); + done(); + }); + }); + +}); diff --git a/test_new_structure/utils/user/userUtils.js b/test_new_structure/utils/user/userUtils.js index 4d415fd6..9de1050f 100644 --- a/test_new_structure/utils/user/userUtils.js +++ b/test_new_structure/utils/user/userUtils.js @@ -178,5 +178,26 @@ exports.sendingNewPassword = function (email, token, pass, passConfirm, cb) { }); }; +exports.editUser = function (jsonOnly, agent, dataToEdit, cb) { + let path = "/user/edit"; + if(jsonOnly){ + agent + .post(path) + .set('Accept','application/json') + .send(dataToEdit) + .end(function(err,res){ + cb(err, res); + }); + } + else{ + agent + .post(path) + .send(dataToEdit) + .end(function (err, res) { + cb(err, res); + }); + } +}; + module.exports = exports;