PMCORE-659

This commit is contained in:
Andrea Adamczyk
2020-06-24 17:53:09 -04:00
parent 78228cfbfd
commit a8acbe7aa9
2 changed files with 117 additions and 21 deletions

View File

@@ -0,0 +1,90 @@
<?php
namespace Tests\unit\workflow\engine\methods\cases;
use Illuminate\Foundation\Testing\DatabaseTransactions;
use ProcessMaker\Model\Application;
use ProcessMaker\Model\Delegation;
use ProcessMaker\Model\Dynaform;
use ProcessMaker\Model\Process;
use ProcessMaker\Model\Task;
use ProcessMaker\Model\User;
use Publisher;
use RBAC;
use Tests\TestCase;
class CasesOpenTest extends TestCase
{
use DatabaseTransactions;
/**
* It test the cases_Open file when the jump action is set in the unassigned list
*
* @test
*/
public function it_should_test_the_jump_case()
{
global $RBAC;
global $G_PUBLISH;
$user = User::where('USR_ID', '=', 1)
->get()
->first();
$_SESSION['USER_LOGGED'] = $user['USR_UID'];
$_SESSION['USR_USERNAME'] = $user['USR_USERNAME'];
$G_PUBLISH = new Publisher();
$RBAC = RBAC::getSingleton(PATH_DATA, session_id());
$RBAC->initRBAC();
$RBAC->loadUserRolePermission('PROCESSMAKER', $_SESSION['USER_LOGGED']);
$task = factory(Task::class)->create();
$dynaform = factory(Dynaform::class)->create();
$process = factory(Process::class)->create([
'PRO_DYNAFORMS' => $dynaform['DYN_UID']
]);
$application = factory(Application::class)->create([
'PRO_UID' => $process['PRO_UID'],
'APP_STATUS' => 'COMPLETED'
]);
$delegation = factory(Delegation::class)->create([
'APP_UID' => $application['APP_UID'],
'TAS_UID' => $task['TAS_UID'],
'DEL_INDEX' => 1,
'DEL_THREAD_STATUS' => 'CLOSED'
]);
factory(Delegation::class)->create([
'APP_UID' => $application['APP_UID'],
'TAS_UID' => $task['TAS_UID'],
'DEL_INDEX' => 2,
'DEL_LAST_INDEX' => 1,
'DEL_THREAD_STATUS' => 'OPEN',
'DEL_DELEGATE_DATE' => $delegation['DEL_DELEGATE_DATE']
]);
$_GET['APP_UID'] = $application['APP_UID'];
$_GET['DEL_INDEX'] = $delegation['DEL_INDEX'];
$_GET['action'] = 'jump';
define("PATH_GULLIVER_HOME", PATH_TRUNK . "gulliver" . PATH_SEP);
define("PATH_TEMPLATE", PATH_GULLIVER_HOME . "templates" . PATH_SEP);
//Turn on output buffering
ob_start();
//Call the tested file
require_once PATH_METHODS . 'cases/cases_Open.php';
//Return the contents of the output buffer
$outputBuffer = ob_get_contents();
//Clean the output buffer and turn off output buffering
ob_end_clean();
$res = '<html>';
$this->assertContains($res, $outputBuffer);
}
}

View File

@@ -1,4 +1,5 @@
<?php
/**
* cases_Open.php
*
@@ -44,7 +45,16 @@ try {
if (!isset($_GET['APP_UID']) && isset($_GET['APP_NUMBER'])) {
$_GET['APP_UID'] = $caseInstance->getApplicationUIDByNumber($_GET['APP_NUMBER']);
//Get the index related to the userLogged but this thread can be OPEN or CLOSED
if (isset($_GET['actionFromList'])) {
if ($_GET['actionFromList'] == 'unassigned') {
$_SESSION['APPLICATION'] = $_GET['APP_UID'];
$_GET['DEL_INDEX'] = $caseInstance->getCurrentDelegation($_GET['APP_UID'], $_SESSION['USER_LOGGED'], true);
} else {
$_GET['DEL_INDEX'] = $caseInstance->getCurrentDelegation($_GET['APP_UID'], $_SESSION['USER_LOGGED']);
}
} else {
$_GET['DEL_INDEX'] = $caseInstance->getCurrentDelegation($_GET['APP_UID'], $_SESSION['USER_LOGGED']);
}
//if the application doesn't exist
if (is_null($_GET['APP_UID'])) {
@@ -123,7 +133,6 @@ try {
require_once(PATH_METHODS . 'cases' . PATH_SEP . 'cases_Resume.php');
exit();
}
}
//Proceed and try to open the case
@@ -151,8 +160,8 @@ try {
//If the current users is in the AppDelegation row and the thread is open will be open the case
if (($delegationInfo['USR_UID'] == $_SESSION['USER_LOGGED'] && $delegationInfo['DEL_THREAD_STATUS'] === 'OPEN')
&& $action != 'sent')
{
&& $action != 'sent'
) {
$_SESSION['APPLICATION'] = $appUid;
$_SESSION['INDEX'] = $delIndex;
@@ -180,7 +189,6 @@ try {
$pageOpenCase = $nextStep['PAGE'];
G::header('location: ' . $pageOpenCase);
} else {
$_SESSION['APPLICATION'] = $appUid;
$_SESSION['PROCESS'] = $fieldCase['PRO_UID'];
@@ -210,7 +218,6 @@ try {
$_SESSION['CURRENT_TASK'] = $fields['TAS_UID'];
require_once(PATH_METHODS . 'cases' . PATH_SEP . 'cases_Resume.php');
}
break;
default: //APP_STATUS IS COMPLETED OR CANCELLED
@@ -231,4 +238,3 @@ try {
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'login/showMessage', '', $message);
G::RenderPage('publishBlank', 'blank');
}