From c821e91b6d20dcd8d08573c201befd96a21c61f5 Mon Sep 17 00:00:00 2001 From: m3ik0 Date: Tue, 13 Jan 2015 14:15:29 -0400 Subject: [PATCH 1/4] Were fixed the negatives tests related to start tasks with bad credentials. --- .../negative_tests_project_user.feature | 38 ++++++++++--------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/features/backend/projects/project_user/negative_tests_project_user.feature b/features/backend/projects/project_user/negative_tests_project_user.feature index d2ac8b4b8..2982da15c 100644 --- a/features/backend/projects/project_user/negative_tests_project_user.feature +++ b/features/backend/projects/project_user/negative_tests_project_user.feature @@ -1,36 +1,38 @@ @ProcessMakerMichelangelo @RestAPI Feature: Project User Resources Negative Tests - Background: Given that I have a valid access_token - Scenario: Get a list of start task of a specific user - Given I request "project/1265557095225ff5c688f46031700471/user/23348978752d567259ea6f3004731611/starting-tasks" + + # GET /api/1.0/{workspace}/project//user//starting-tasks + # Get started tasks list by a user + Scenario: Get a list of start task of a specific user + Given I request "project/1265557095225ff5c688f46031700471/user/23348978752d567259ea6f3004731611/starting-tasks" Then the response status code should be 400 And the response charset is "UTF-8" And the content type is "application/json" -Scenario Outline: Verify if a user can start a task with bad parameters (negative tests) - Given POST this data: - """ + # POST /api/1.0/{workspace}/project//ws/user/can-start-task + # Start a task with bad credentials + Scenario Outline: Verify if a user can start a task with bad parameters (negative tests) + Given POST this data: + """ { "act_uid": "", "username": "", "password": "" } """ - And I request "project//ws/user/can-start-task" - Then the response status code should be - And the response status message should have the following text "" - + And I request "project//ws/user/can-start-task" + Then the response status code should be + And the response status message should have the following text "" - Examples: - - | test_description | project | act_uid | username | password | error_code | error_message | - | Invalid act_uid | 1265557095225ff5c688f46031700471 | 00000000009999f5fe54de2005407079 | admin | sample123* | 400 | act_uid | - | Invalid username | 1265557095225ff5c688f46031700471 | 1546168275225ff617b6a34046164891 | ain | admin | 400 | usr_uid | - | Invalid password | 1265557095225ff5c688f46031700471 | 1546168275225ff617b6a34046164891 | erick | sle | 400 | usr_uid | - | Field requered project | | 46941969352af5be2ab3f39001216717 | admin | admin | 400 | prj_uid | - | Field requered act_uid | 1265557095225ff5c688f46031700471 | | admin | admin | 400 | act_uid | + Examples: + | test_description | project | act_uid | username | password | error_code | error_message | + | Invalid act_uid | 1265557095225ff5c688f46031700471 | 00000000009999f5fe54de2005407079 | admin | sample123* | 400 | act_uid | + | Invalid username | 1265557095225ff5c688f46031700471 | 1546168275225ff617b6a34046164891 | ain | admin | 400 | User not registered! | + | Invalid password | 1265557095225ff5c688f46031700471 | 1546168275225ff617b6a34046164891 | erick | sle | 400 | Wrong password | + | Field requered project | | 46941969352af5be2ab3f39001216717 | admin | admin | 400 | prj_uid | + | Field requered act_uid | 1265557095225ff5c688f46031700471 | | admin | admin | 400 | act_uid | From ef44e81047aa7bc9b11f88196340acb0845ea595 Mon Sep 17 00:00:00 2001 From: m3ik0 Date: Tue, 13 Jan 2015 14:43:43 -0400 Subject: [PATCH 2/4] It was fixed the 'error password' verification test in order to start a task with a wrong password. --- .../basic_sequence_project_user.feature | 47 ++++++++++++------- 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/features/backend/projects/project_user/basic_sequence_project_user.feature b/features/backend/projects/project_user/basic_sequence_project_user.feature index 239911f23..34baf61c7 100644 --- a/features/backend/projects/project_user/basic_sequence_project_user.feature +++ b/features/backend/projects/project_user/basic_sequence_project_user.feature @@ -4,6 +4,9 @@ Feature: Project User Resources Background: Given that I have a valid access_token + + # GET /api/1.0/{workspace}/project//users + # Get project users list Scenario: Get a list of users of a project Given I request "project/1265557095225ff5c688f46031700471/users" Then the response status code should be 200 @@ -11,40 +14,48 @@ Feature: Project User Resources And the content type is "application/json" And the type is "array" + + # GET /api/1.0/{workspace}/project//starting-tasks + # Get started tasks list Scenario: Get a list of starting task of a project - Given I request "project/1265557095225ff5c688f46031700471/starting-tasks" - Then the response status code should be 200 - And the response charset is "UTF-8" - And the content type is "application/json" - And the type is "array" - - Scenario: Get a list of start task of a user - Given I request "project/1265557095225ff5c688f46031700471/user/00000000000000000000000000000001/starting-tasks" + Given I request "project/1265557095225ff5c688f46031700471/starting-tasks" Then the response status code should be 200 And the response charset is "UTF-8" And the content type is "application/json" And the type is "array" + + # GET /api/1.0/{workspace}/project//user//starting-tasks + # Get started tasks list by a user + Scenario: Get a list of start task of a user + Given I request "project/1265557095225ff5c688f46031700471/user/00000000000000000000000000000001/starting-tasks" + Then the response status code should be 200 + And the response charset is "UTF-8" + And the content type is "application/json" + And the type is "array" + + + # GET /api/1.0/{workspace}/project//ws/user/can-start-task + # Verify if it is possible to start a task with valid/invalid credentials Scenario Outline: Verify if a user can start a task - Given POST this data: - """ + Given POST this data: + """ { "act_uid": "", "username": "", "password": "" } """ - And I request "project/1265557095225ff5c688f46031700471/ws/user/can-start-task" - Then the response status code should be - And the response charset is "UTF-8" - And the content type is "application/json" - And the type is "" + And I request "project/1265557095225ff5c688f46031700471/ws/user/can-start-task" + Then the response status code should be + And the response charset is "UTF-8" + And the content type is "application/json" + And the type is "" - Examples: + Examples: | test_description | act_uid | username | password | http_code | type | | error username | 1352844695225ff5fe54de2005407079 | adm | admin | 400 | string | - # TODO review the Backend QA instance and Michelangelo instance (because a user with wrong password can able to start a task) - #| error password | 1352844695225ff5fe54de2005407079 | admin | adm | 400 | string | + | error password | 1352844695225ff5fe54de2005407079 | admin | adm | 400 | string | | short activity | 1352844695225ff5fe54de20 | admin | admin | 400 | string | | error activity | 225ff5fe54de20054070791352844695 | admin | admin | 400 | string | | all ok | 1352844695225ff5fe54de2005407079 | admin | sample123* | 200 | array | From e1598437db028ad49ede64ca02fd119c12b48934 Mon Sep 17 00:00:00 2001 From: jennylee Date: Tue, 13 Jan 2015 17:29:12 -0400 Subject: [PATCH 3/4] PM-1180 Menu contextual en Designer Tab no se muestra bien en IE El problema era el Document Mode, que para q el Diseniador de procesos funcione tenia q ser cambiado obligatoriamente y de forma manual por el usuario a Standards, cosa que hacia que varias cosas en PM se reenderen mal, entre estas: La letra crecia y ya no se visualizaban los labels completos, aparecian dobles scrolls en algunas ventanas y tambien desaparecia el footer de las tablas de los listados tanto en HOME, Designer y Admin. Por lo tanto se opto por abrir en otro tab el diseador cuando el proceso sea BPMN y el navegador sea IE, esto para que el meta que se seteo en Michelangelo se respete y no sea pisado por el meta de PM, ya que ambos son distintos. PM-> 'IE=8' y Michelangelo-> 'IE=edge' --- workflow/engine/templates/processes/main.js | 45 ++++++++++++++++++--- 1 file changed, 40 insertions(+), 5 deletions(-) diff --git a/workflow/engine/templates/processes/main.js b/workflow/engine/templates/processes/main.js index 3200297a2..88f97c7f5 100755 --- a/workflow/engine/templates/processes/main.js +++ b/workflow/engine/templates/processes/main.js @@ -572,7 +572,14 @@ function saveProcess() if (projectType == 'classicProject') { location.href = 'processes_Map?PRO_UID='+resp.result.PRO_UID; } else { - location.href = '../designer?prj_uid='+resp.result.PRO_UID; + if ( navigator.userAgent.indexOf('MSIE') !=-1 ) { + window.open( + "../designer?prj_uid="+resp.result.PRO_UID, + '_blank' + ); + } else { + location.href = '../designer?prj_uid='+resp.result.PRO_UID; + } } }, failure: function(obj, resp) { @@ -622,7 +629,14 @@ editProcess = function(typeParam) url = 'processes_Map?PRO_UID=' + pro_uid; } - location.href = url; + if ( (navigator.userAgent.indexOf('MSIE') !=-1) && (type == "bpmn") ) { + window.open( + url, + '_blank' + ); + } else { + location.href = url; + } } editNewProcess = function(){ @@ -927,7 +941,14 @@ importProcessExistGroup = function() var sNewProUid = resp_.sNewProUid; if (typeof(resp_.project_type) != "undefined" && resp_.project_type == "bpmn") { - window.location.href = "../designer?prj_uid=" + sNewProUid; + if ( navigator.userAgent.indexOf('MSIE') !=-1 ) { + window.open( + "../designer?prj_uid=" + sNewProUid, + '_blank' + ); + } else { + window.location.href = "../designer?prj_uid=" + sNewProUid; + } } else { window.location.href = "processes_Map?PRO_UID=" + sNewProUid; } @@ -1062,7 +1083,14 @@ importProcessExistProcess = function() if (resp_.ExistGroupsInDatabase == 0) { if (typeof(resp_.project_type) != "undefined" && resp_.project_type == "bpmn") { - window.location.href = "../designer?prj_uid=" + sNewProUid; + if ( navigator.userAgent.indexOf('MSIE') !=-1 ) { + window.open( + "../designer?prj_uid=" + sNewProUid, + '_blank' + ); + } else { + window.location.href = "../designer?prj_uid=" + sNewProUid; + } } else { window.location.href = "processes_Map?PRO_UID=" + sNewProUid; } @@ -1189,7 +1217,14 @@ importProcess = function() var sNewProUid = resp_.sNewProUid; if (typeof(resp_.project_type) != "undefined" && resp_.project_type == "bpmn") { - window.location.href = "../designer?prj_uid=" + sNewProUid; + if ( navigator.userAgent.indexOf('MSIE') !=-1 ) { + window.open( + "../designer?prj_uid=" + sNewProUid, + '_blank' + ); + } else { + window.location.href = "../designer?prj_uid=" + sNewProUid; + } } else { window.location.href = "processes_Map?PRO_UID=" + sNewProUid; } From 7722b805ebceafd8a892996c1b8c863ccc695ae1 Mon Sep 17 00:00:00 2001 From: jennylee Date: Wed, 14 Jan 2015 14:41:17 -0400 Subject: [PATCH 4/4] PM-1180 Menu contextual en Designer Tab no se muestra bien en IE Agregando algunas validaciones para controlar si un proceso ya esta abierto o no. --- workflow/engine/templates/processes/main.js | 66 ++++++++++++++------- 1 file changed, 44 insertions(+), 22 deletions(-) diff --git a/workflow/engine/templates/processes/main.js b/workflow/engine/templates/processes/main.js index 88f97c7f5..1ec40dd19 100755 --- a/workflow/engine/templates/processes/main.js +++ b/workflow/engine/templates/processes/main.js @@ -5,6 +5,8 @@ var processesGrid; var store; var comboCategory; +var winDesigner; + /** * Global variables and variable initialization for import process. @@ -573,10 +575,14 @@ function saveProcess() location.href = 'processes_Map?PRO_UID='+resp.result.PRO_UID; } else { if ( navigator.userAgent.indexOf('MSIE') !=-1 ) { - window.open( - "../designer?prj_uid="+resp.result.PRO_UID, - '_blank' - ); + if ( typeof(winDesigner) == "undefined" || winDesigner.closed ){ + winDesigner = window.open( + "../designer?prj_uid="+resp.result.PRO_UID, + '_blank' + ); + } else { + PMExt.error( _('ID_FAILED'), _('PROCESS_ALREADY_OPENED')); + } } else { location.href = '../designer?prj_uid='+resp.result.PRO_UID; } @@ -630,10 +636,14 @@ editProcess = function(typeParam) } if ( (navigator.userAgent.indexOf('MSIE') !=-1) && (type == "bpmn") ) { - window.open( - url, - '_blank' - ); + if (typeof(winDesigner) == "undefined" || winDesigner.closed){ + winDesigner = window.open( + url, + '_blank' + ); + } else { + PMExt.error( _('ID_FAILED'), _('PROCESS_ALREADY_OPENED')); + } } else { location.href = url; } @@ -942,10 +952,14 @@ importProcessExistGroup = function() if (typeof(resp_.project_type) != "undefined" && resp_.project_type == "bpmn") { if ( navigator.userAgent.indexOf('MSIE') !=-1 ) { - window.open( - "../designer?prj_uid=" + sNewProUid, - '_blank' - ); + if (typeof(winDesigner) == "undefined" || winDesigner.closed){ + winDesigner = window.open( + "../designer?prj_uid=" + sNewProUid, + '_blank' + ); + } else { + PMExt.error( _('ID_FAILED'), _('PROCESS_ALREADY_OPENED')); + } } else { window.location.href = "../designer?prj_uid=" + sNewProUid; } @@ -1084,10 +1098,14 @@ importProcessExistProcess = function() if (resp_.ExistGroupsInDatabase == 0) { if (typeof(resp_.project_type) != "undefined" && resp_.project_type == "bpmn") { if ( navigator.userAgent.indexOf('MSIE') !=-1 ) { - window.open( - "../designer?prj_uid=" + sNewProUid, - '_blank' - ); + if (typeof(winDesigner) == "undefined" || winDesigner.closed){ + winDesigner = window.open( + "../designer?prj_uid=" + sNewProUid, + '_blank' + ); + } else { + PMExt.error( _('ID_FAILED'), _('PROCESS_ALREADY_OPENED')); + } } else { window.location.href = "../designer?prj_uid=" + sNewProUid; } @@ -1218,13 +1236,17 @@ importProcess = function() if (typeof(resp_.project_type) != "undefined" && resp_.project_type == "bpmn") { if ( navigator.userAgent.indexOf('MSIE') !=-1 ) { - window.open( - "../designer?prj_uid=" + sNewProUid, - '_blank' - ); - } else { + if (typeof(winDesigner) == "undefined" || winDesigner.closed){ + winDesigner = window.open( + "../designer?prj_uid=" + sNewProUid, + '_blank' + ); + } else { + PMExt.error( _('ID_FAILED'), _('PROCESS_ALREADY_OPENED')); + } + } else { window.location.href = "../designer?prj_uid=" + sNewProUid; - } + } } else { window.location.href = "processes_Map?PRO_UID=" + sNewProUid; }