+ Fix web entry login bloqued when session_block configuration is enabled.
+ Include behat test.
This commit is contained in:
davidcallizaya
2017-07-04 16:51:24 -04:00
parent 966c2890fe
commit cb80a42125
16 changed files with 4256 additions and 261 deletions

View File

@@ -1,37 +1,15 @@
# behat.yml # behat.yml
default: default:
context: suites:
webentry2_features:
paths:
- %paths.base%/features/webentry2
- %paths.base%/features/test
contexts:
- FeatureContext:
parameters: parameters:
base_url: http://processmaker-ip-or-domain/api/1.0/[workspace]/ webDriverHost: "http://localhost:4444"
access_token: e79057f4276661bedb6154eed3834f6cbd738853 browser: "chrome"
client_id: x-pm-local-client capabilities:
client_secret: 179ad45c6ce2cb97cf1029e212046e81 browserName: chrome
#uploadFilesFolder: /opt/uploadfiles platform: ANY
#cd5cff9b2e3ebabf49e276e47e977fab5988c00e
login_url: http://processmaker-ip-or-domain/sys[workspace]/en/neoclassic/login/login
authentication_url: http://processmaker-ip-or-domain/sys[workspace]/en/neoclassic/login/authentication.php
oauth_app_url: http://processmaker-ip-or-domain/sys[workspace]/en/neoclassic/oauth2/clientSetupAjax
oauth_authorization_url: http://processmaker-ip-or-domain/[workspace]/oauth2/authorize
user_name: <your-admin-username>
user_password: <your-admin-password>
# Database connection parameters
# To Mysql
mys_db_type: mysql
mys_db_server: <your-mysql-server-ip>
mys_db_name: <your-db-name>
mys_db_username: <your-db-username>
mys_db_password:<your-db-password>
mys_db_port: 3306
mys_db_encode: utf8
mys_db_description: Mysql connection
# To SQL Server
sqlsrv_db_type: mssql
sqlsrv_db_server: <your-myssql-server-ip>
sqlsrv_db_name: <your-db-name>
sqlsrv_db_username: <your-db-username>
sqlsrv_db_password: <your-db-password>
sqlsrv_db_port: 1433
sqlsrv_db_encode: utf8
sqlsrv_db_description: Microsoft SQL Server connection

View File

@@ -39,7 +39,9 @@
}, },
"require-dev": { "require-dev": {
"guzzle/guzzle": "~3.1.1", "guzzle/guzzle": "~3.1.1",
"behat/behat": "2.4.*@stable" "lmc/steward": "^2.2",
"behat/behat": "^3.3",
"behat/mink-selenium2-driver": "^1.3"
}, },
"autoload": { "autoload": {
"psr-0": { "psr-0": {

2939
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,152 @@
<?php
use Behat\Mink\Session;
/**
* Window
*/
class Browser extends Session
{
/**
* Time to wait before use after selecting an element.
* To avoid click or get information about an element that
* is still beeing proceesed by javascript.
*
* @var integer
*/
public $waitForJavascriptProcessing=500;
/**
* Get an element by id.
*
* @param string $id
* @return \Behat\Mink\Element\NodeElement
*/
public function getElementByXpath($xpath, $wait = true)
{
$wait ? $this->waitFor($xpath) : null;
$found = $this->getDriver()->find($xpath);
return $found ? $found[0] : null;
}
/**
* Get an element by id.
*
* @param string $id
* @return \Behat\Mink\Element\NodeElement
*/
public function getElementById($id, $wait = true)
{
$xpath = "//*[@id=".
$this->encodeXpathString($id).
"]";
$wait ? $this->waitFor($xpath) : null;
$found = $this->getDriver()->find($xpath);
return $found ? $found[0] : null;
}
/**
* Get the elements that contains and specific text.
*
* @param string $textContent
* @return \Behat\Mink\Element\NodeElement[]
*/
public function getElementsByTextContent(
$textContent,
$base = '//*',
$wait = true
) {
$xpath = $base.
"[contains(., ".
$this->encodeXpathString($textContent).
")]";
$wait ? $this->waitFor($xpath) : null;
return $this->getDriver()->find($xpath);
}
/**
* Encodes and string to be used inside an xpath expression.
*
* @param string $string
* @return string
*/
public function encodeXpathString($string)
{
if (strpos($string, '"') !== false && strpos($string, "'") !== false) {
$parts = preg_split(
'/(\'|")/', $string, -1,
PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY
);
$encoded = [];
foreach ($parts as $str) {
$encoded[] = $this->encodeXpathString($str);
}
return 'concat('.implode(',', $encoded).')';
} elseif (strpos($string, '"') !== false) {
return "'".$string."'";
} else {
return '"'.$string.'"';
}
}
/**
* Wait until elements defined with a xpath expression are present.
*
* @param string $xpath
* @param int $time
*/
public function waitFor($xpath, $time = 5000)
{
$jxpath = json_encode($xpath);
$condition = 'document.evaluate('.$jxpath.', document, null, XPathResult.ANY_TYPE, null).iterateNext()!==null';
$this->wait($time, $condition);
//Wait for javascript event handlers
$this->wait($this->waitForJavascriptProcessing);
}
/**
* Get the last element that match a text.
*
* @param string $text
* @return \Behat\Mink\Element\NodeElement
*/
public function getElementByTextContent($text, $cssClass = '')
{
if ($cssClass) {
$base = '//*[contains(@class, '.$this->encodeXpathString($cssClass).')]';
} else {
$base = '//*';
}
$tags = $this->getElementsByTextContent($text, $base);
return $tags ? $tags[count($tags) - 1] : null;
}
/**
* Get the last element that match a text.
*
* @param string $text
* @return \Behat\Mink\Element\NodeElement
*/
public function getElementByValue($selector, $value)
{
$base = '//'.$selector;
$tags = $this->getDriver()->find($base);
$regexp = '/'.str_replace('\*', '.*', preg_quote($value, '/')).'/';
foreach ($tags as $tag) {
if (preg_match($regexp, $tag->getValue())) {
return $tag;
}
}
return $tags ? $tags[count($tags)-1] : null;
}
/**
* Returns Session ID of WebDriver or `null`, when session not started yet.
*
* @return string|null
*/
public function getWebDriverSessionId()
{
return $this->getDriver()->getWebDriverSessionId();
}
}

View File

@@ -1,67 +1,248 @@
<?php <?php
use Behat\Behat\Context\ClosuredContextInterface, use Behat\Behat\Context\Context;
Behat\Behat\Context\TranslatedContextInterface, use Behat\Behat\Hook\Scope\AfterScenarioScope;
Behat\Behat\Context\BehatContext,
Behat\Behat\Exception\PendingException; require 'config.php';
use Behat\Gherkin\Node\PyStringNode,
Behat\Gherkin\Node\TableNode;
//
// Require 3rd-party libraries here:
//
// require_once 'PHPUnit/Autoload.php';
// require_once 'PHPUnit/Framework/Assert/Functions.php';
//
require_once 'config.php';
/** /**
* Features context. * Defines application features from the specific context.
*/ */
class FeatureContext extends BehatContext class FeatureContext extends WorkflowTestCase implements Context
{ {
/** /**
* Initializes context.
* Every scenario gets it's own context object.
* *
* @param array $parameters context parameters (set them up through behat.yml) * @var Browser $browser
*/ */
public function __construct(array $parameters) protected $browser;
/**
*
* @var string $clipboard
*/
protected $clipboard;
/**
*
* @var Array $parameters
*/
protected $parameters;
/**
* Initializes context.
*
* Every scenario gets its own context instance.
* You can also pass arbitrary arguments to the
* context constructor through behat.yml.
*/
public function __construct($parameters)
{ {
// Initialize your context here $this->parameters = $parameters;
$this->useContext('RestContext', new RestContext($parameters)); }
/** @AfterScenario */
public function after(AfterScenarioScope $scope)
{
//Close the browser if it was opened.
$this->closeTheBrowser();
} }
/** /**
* @When /^I run "([^"]*)"$/ * @Given a new workspace
*/ */
public function iRun($command) public function aNewWorkspace()
{ {
exec($command, $result); $this->setupDB();
$this->output = $result; $this->installLicense(__DIR__.'/../resources/license_*.dat');
$this->config(['CFG_UID' => 'getStarted', 'CFG_VALUE' => '1']);
$this->setTranslation('ID_INVALID_VALUE_CAN_NOT_BE_EMPTY',
'ID_INVALID_VALUE_CAN_NOT_BE_EMPTY({0})');
$this->setTranslation('ID_UNDEFINED_VALUE_IS_REQUIRED',
'ID_UNDEFINED_VALUE_IS_REQUIRED({0})');
$this->setTranslation('ID_WEB_ENTRY_EVENT_DOES_NOT_EXIST',
'ID_WEB_ENTRY_EVENT_DOES_NOT_EXIST({0})');
$this->setTranslation('ID_INVALID_VALUE_ONLY_ACCEPTS_VALUES',
'ID_INVALID_VALUE_ONLY_ACCEPTS_VALUES({0},{1})');
} }
/** /**
* @Then /^I should see the file "([^"]*)"$/ * @Then Config env.ini with :arg1
*/ */
public function iShouldSeeTheFile($fileName) public function configEnvIniWith($arg1)
{ {
if (!in_array($fileName, $this->output)) { $args = explode("=", $arg1);
throw new Exception('File named ' . $fileName . ' not found!'); $name = trim($args[0]);
$value = isset($args[1]) ? trim($args[1]) : '';
$this->setEnvIni($name, $value);
} }
/**
* @Then Config env.ini without :arg1
*/
public function configEnvIniWithout($arg1)
{
$this->unsetEnvIni($arg1);
} }
/**
* @Given Import process :arg1
*/
public function importProcess($arg1)
{
$this->import(__DIR__.'/../resources/'.$arg1);
}
// /**
// Place your definition and hook methods here: * @Then Go to Processmaker login
// */
// /** public function goToProcessmakerLogin()
// * @Given /^I have done something with "([^"]*)"$/ {
// */ $session = $this->browser;
// public function iHaveDoneSomethingWith($argument) $session->visit($this->getBaseUrl('login/login'));
// { }
// doSomethingWith($argument);
// } /**
// * @Then Login as :arg1 :arg2
*/
public function loginAs($arg1, $arg2)
{
$session = $this->browser;
$username = $session->getElementById('form[USR_USERNAME]');
$username->setValue('admin');
$password = $session->getElementById('form[USR_PASSWORD_MASK]');
$password->setValue('admin');
$submit = $session->getElementById('form[BSUBMIT]');
$submit->click();
}
/**
* @When Inside :arg1
*/
public function inside($arg1)
{
$this->browser->switchToIFrame($arg1);
}
/**
* @Then Copy :arg1 of :arg2
*/
public function copyOf($arg1, $arg2)
{
$element = $this->browser->getElementByXpath($arg2);
$this->clipboard = $element->getAttribute($arg1);
}
/**
* @Then Double click on :arg1
*/
public function doubleClickOn($arg1)
{
$process = $this->browser->getElementByTextContent($arg1);
$process->doubleClick();
}
/**
* @Then Right click on :arg1
*/
public function rightClickOn($arg1)
{
$this->browser->getElementByTextContent($arg1)->rightClick();
}
/**
* @Then Click on :arg1 inside :arg2
*/
public function clickOnInside($arg1, $arg2)
{
$this->browser->getElementByTextContent($arg1, $arg2)->click();
}
/**
* @Then Copy value of :arg1 like :arg2
*/
public function copyValueOfLike($arg1, $arg2)
{
$this->clipboard = $this->browser->getElementByValue($arg1, $arg2)->getValue();
}
/**
* @Then Logout Processmaker
*/
public function logoutProcessmaker()
{
$this->browser->visit($this->getBaseUrl('login/login'));
}
/**
* @Then open url copied
*/
public function openUrlCopied()
{
$this->browser->visit($this->clipboard);
}
/**
* @Then Verify the page does not redirect to the standard \/login\/login
*/
public function verifyThePageDoesNotRedirectToTheStandardLoginLogin()
{
$this->assertEquals($this->clipboard, $this->browser->getCurrentUrl());
}
/**
* @Then Verify the page goes to the WebEntry steps
*/
public function verifyThePageGoesToTheWebentrySteps()
{
$this->assertLessThan(count($this->browser->getElementsByTextContent('Next Step')), 0);
}
/**
* @Then Open a browser
*/
public function openABrowser()
{
$this->browser = $this->openBrowser();
}
/**
* @Then close the browser
*/
public function closeTheBrowser()
{
if ($this->browser) {
$sessionId = $this->browser->getWebDriverSessionId();
$this->browser->wait(1000);
$this->browser->stop();
echo "Video available at:\n";
echo $this->parameters['webDriverHost']."/grid/admin/HubVideoDownloadServlet?sessionId=".$sessionId;
$this->browser = null;
}
}
/**
*
* @return \Browser
*/
private function openBrowser()
{
$capabilities = $this->parameters['capabilities'];
$capabilities['seleniumProtocol'] = "WebDriver";
if (empty($capabilities['browserName'])) {
$capabilities['browserName'] = 'chrome';
}
$driver = new \Behat\Mink\Driver\Selenium2Driver(
$capabilities['browserName'],
$capabilities,
$this->parameters['webDriverHost'].'/wd/hub'
);
$session = new Browser($driver);
$session->start();
return $session;
}
public function __destruct()
{
$this->closeTheBrowser();
}
} }

View File

@@ -10,3 +10,14 @@ $config = array (
'refresh_token' => "ade174976fe77f12ecde7c9e1d8307ac495f443e", 'refresh_token' => "ade174976fe77f12ecde7c9e1d8307ac495f443e",
); );
call_user_func(function() {
$phpunit = new DOMDocument;
$phpunit->load(__DIR__.'/../../phpunit.xml');
foreach($phpunit->getElementsByTagName('php') as $php) {
foreach($php->getElementsByTagName('var') as $var) {
$GLOBALS[$var->getAttribute("name")] = $var->getAttribute("value");
}
}
});
require __DIR__.'/../../tests/bootstrap.php';

View File

@@ -0,0 +1,922 @@
<?xml version="1.0" encoding="utf-8"?>
<ProcessMaker-Project version="3.0">
<metadata>
<meta key="vendor_version"><![CDATA[(Branch bugfix/HOR-3373)]]></meta>
<meta key="vendor_version_code">Michelangelo</meta>
<meta key="export_timestamp">1498574271</meta>
<meta key="export_datetime"><![CDATA[2017-06-27T10:37:51-04:00]]></meta>
<meta key="export_server_addr"><![CDATA[127.0.0.1:8080]]></meta>
<meta key="export_server_os">Darwin</meta>
<meta key="export_server_php_version">50621</meta>
<meta key="export_version">1</meta>
<meta key="workspace">test</meta>
<meta key="name">WebEntryEvent</meta>
<meta key="uid">441299927591d969ff284b7005303758</meta>
</metadata>
<definition class="BPMN">
<table name="ACTIVITY">
<record>
<act_uid>382310413591d96b6cb34d7077964801</act_uid>
<prj_uid>441299927591d969ff284b7005303758</prj_uid>
<pro_uid>684563509591d96a01cbab3088210120</pro_uid>
<act_name>Task 1</act_name>
<act_type>TASK</act_type>
<act_is_for_compensation>0</act_is_for_compensation>
<act_start_quantity>1</act_start_quantity>
<act_completion_quantity>0</act_completion_quantity>
<act_task_type>EMPTY</act_task_type>
<act_implementation></act_implementation>
<act_instantiate>0</act_instantiate>
<act_script_type></act_script_type>
<act_script></act_script>
<act_loop_type>EMPTY</act_loop_type>
<act_test_before>0</act_test_before>
<act_loop_maximum>0</act_loop_maximum>
<act_loop_condition>0</act_loop_condition>
<act_loop_cardinality>0</act_loop_cardinality>
<act_loop_behavior>0</act_loop_behavior>
<act_is_adhoc>0</act_is_adhoc>
<act_is_collapsed>0</act_is_collapsed>
<act_completion_condition>0</act_completion_condition>
<act_ordering>0</act_ordering>
<act_cancel_remaining_instances>1</act_cancel_remaining_instances>
<act_protocol>0</act_protocol>
<act_method>0</act_method>
<act_is_global>0</act_is_global>
<act_referer>0</act_referer>
<act_default_flow>0</act_default_flow>
<act_master_diagram>0</act_master_diagram>
<bou_uid>635529260591d96b6cbfcb7051450866</bou_uid>
<dia_uid>358612266591d96a014d1e6034604444</dia_uid>
<element_uid>382310413591d96b6cb34d7077964801</element_uid>
<bou_element>891718728591d96a426dd25018705242</bou_element>
<bou_element_type>bpmnActivity</bou_element_type>
<bou_x>256</bou_x>
<bou_y>79</bou_y>
<bou_width>150</bou_width>
<bou_height>75</bou_height>
<bou_rel_position>0</bou_rel_position>
<bou_size_identical>0</bou_size_identical>
<bou_container>bpmnDiagram</bou_container>
</record>
</table>
<table name="ARTIFACT"/>
<table name="BOUND">
<record>
<bou_uid>214544408591d96f0071200088162965</bou_uid>
<prj_uid>441299927591d969ff284b7005303758</prj_uid>
<dia_uid>358612266591d96a014d1e6034604444</dia_uid>
<element_uid>754852677591d96f0066c53097043776</element_uid>
<bou_element>891718728591d96a426dd25018705242</bou_element>
<bou_element_type>bpmnEvent</bou_element_type>
<bou_x>100</bou_x>
<bou_y>213</bou_y>
<bou_width>33</bou_width>
<bou_height>33</bou_height>
<bou_rel_position>0</bou_rel_position>
<bou_size_identical>0</bou_size_identical>
<bou_container>bpmnDiagram</bou_container>
</record>
<record>
<bou_uid>635529260591d96b6cbfcb7051450866</bou_uid>
<prj_uid>441299927591d969ff284b7005303758</prj_uid>
<dia_uid>358612266591d96a014d1e6034604444</dia_uid>
<element_uid>382310413591d96b6cb34d7077964801</element_uid>
<bou_element>891718728591d96a426dd25018705242</bou_element>
<bou_element_type>bpmnActivity</bou_element_type>
<bou_x>256</bou_x>
<bou_y>79</bou_y>
<bou_width>150</bou_width>
<bou_height>75</bou_height>
<bou_rel_position>0</bou_rel_position>
<bou_size_identical>0</bou_size_identical>
<bou_container>bpmnDiagram</bou_container>
</record>
<record>
<bou_uid>735358742591d96b70622c8075629514</bou_uid>
<prj_uid>441299927591d969ff284b7005303758</prj_uid>
<dia_uid>358612266591d96a014d1e6034604444</dia_uid>
<element_uid>349681056591d96b7059a07092140602</element_uid>
<bou_element>891718728591d96a426dd25018705242</bou_element>
<bou_element_type>bpmnEvent</bou_element_type>
<bou_x>100</bou_x>
<bou_y>100</bou_y>
<bou_width>33</bou_width>
<bou_height>33</bou_height>
<bou_rel_position>0</bou_rel_position>
<bou_size_identical>0</bou_size_identical>
<bou_container>bpmnDiagram</bou_container>
</record>
<record>
<bou_uid>908599339591d96b70910b0020050417</bou_uid>
<prj_uid>441299927591d969ff284b7005303758</prj_uid>
<dia_uid>358612266591d96a014d1e6034604444</dia_uid>
<element_uid>132598392591d96b7084aa6048071487</element_uid>
<bou_element>891718728591d96a426dd25018705242</bou_element>
<bou_element_type>bpmnEvent</bou_element_type>
<bou_x>545</bou_x>
<bou_y>100</bou_y>
<bou_width>33</bou_width>
<bou_height>33</bou_height>
<bou_rel_position>0</bou_rel_position>
<bou_size_identical>0</bou_size_identical>
<bou_container>bpmnDiagram</bou_container>
</record>
</table>
<table name="DATA"/>
<table name="DIAGRAM">
<record>
<dia_uid>358612266591d96a014d1e6034604444</dia_uid>
<prj_uid>441299927591d969ff284b7005303758</prj_uid>
<dia_name>WebEntryEvent</dia_name>
<dia_is_closable>0</dia_is_closable>
</record>
</table>
<table name="DOCUMENTATION"/>
<table name="EVENT">
<record>
<evn_uid>754852677591d96f0066c53097043776</evn_uid>
<prj_uid>441299927591d969ff284b7005303758</prj_uid>
<pro_uid>684563509591d96a01cbab3088210120</pro_uid>
<evn_name></evn_name>
<evn_type>START</evn_type>
<evn_marker>EMPTY</evn_marker>
<evn_is_interrupting>1</evn_is_interrupting>
<evn_attached_to></evn_attached_to>
<evn_cancel_activity>0</evn_cancel_activity>
<evn_activity_ref></evn_activity_ref>
<evn_wait_for_completion>0</evn_wait_for_completion>
<evn_error_name></evn_error_name>
<evn_error_code></evn_error_code>
<evn_escalation_name></evn_escalation_name>
<evn_escalation_code></evn_escalation_code>
<evn_condition></evn_condition>
<evn_message>LEAD</evn_message>
<evn_operation_name></evn_operation_name>
<evn_operation_implementation_ref></evn_operation_implementation_ref>
<evn_time_date></evn_time_date>
<evn_time_cycle></evn_time_cycle>
<evn_time_duration></evn_time_duration>
<evn_behavior>CATCH</evn_behavior>
<bou_uid>214544408591d96f0071200088162965</bou_uid>
<dia_uid>358612266591d96a014d1e6034604444</dia_uid>
<element_uid>754852677591d96f0066c53097043776</element_uid>
<bou_element>891718728591d96a426dd25018705242</bou_element>
<bou_element_type>bpmnEvent</bou_element_type>
<bou_x>100</bou_x>
<bou_y>213</bou_y>
<bou_width>33</bou_width>
<bou_height>33</bou_height>
<bou_rel_position>0</bou_rel_position>
<bou_size_identical>0</bou_size_identical>
<bou_container>bpmnDiagram</bou_container>
</record>
<record>
<evn_uid>349681056591d96b7059a07092140602</evn_uid>
<prj_uid>441299927591d969ff284b7005303758</prj_uid>
<pro_uid>684563509591d96a01cbab3088210120</pro_uid>
<evn_name>first</evn_name>
<evn_type>START</evn_type>
<evn_marker>EMPTY</evn_marker>
<evn_is_interrupting>1</evn_is_interrupting>
<evn_attached_to></evn_attached_to>
<evn_cancel_activity>0</evn_cancel_activity>
<evn_activity_ref></evn_activity_ref>
<evn_wait_for_completion>0</evn_wait_for_completion>
<evn_error_name></evn_error_name>
<evn_error_code></evn_error_code>
<evn_escalation_name></evn_escalation_name>
<evn_escalation_code></evn_escalation_code>
<evn_condition></evn_condition>
<evn_message>LEAD</evn_message>
<evn_operation_name></evn_operation_name>
<evn_operation_implementation_ref></evn_operation_implementation_ref>
<evn_time_date></evn_time_date>
<evn_time_cycle></evn_time_cycle>
<evn_time_duration></evn_time_duration>
<evn_behavior>CATCH</evn_behavior>
<bou_uid>735358742591d96b70622c8075629514</bou_uid>
<dia_uid>358612266591d96a014d1e6034604444</dia_uid>
<element_uid>349681056591d96b7059a07092140602</element_uid>
<bou_element>891718728591d96a426dd25018705242</bou_element>
<bou_element_type>bpmnEvent</bou_element_type>
<bou_x>100</bou_x>
<bou_y>100</bou_y>
<bou_width>33</bou_width>
<bou_height>33</bou_height>
<bou_rel_position>0</bou_rel_position>
<bou_size_identical>0</bou_size_identical>
<bou_container>bpmnDiagram</bou_container>
</record>
<record>
<evn_uid>132598392591d96b7084aa6048071487</evn_uid>
<prj_uid>441299927591d969ff284b7005303758</prj_uid>
<pro_uid>684563509591d96a01cbab3088210120</pro_uid>
<evn_name></evn_name>
<evn_type>END</evn_type>
<evn_marker>EMPTY</evn_marker>
<evn_is_interrupting>1</evn_is_interrupting>
<evn_attached_to></evn_attached_to>
<evn_cancel_activity>0</evn_cancel_activity>
<evn_activity_ref></evn_activity_ref>
<evn_wait_for_completion>0</evn_wait_for_completion>
<evn_error_name></evn_error_name>
<evn_error_code></evn_error_code>
<evn_escalation_name></evn_escalation_name>
<evn_escalation_code></evn_escalation_code>
<evn_condition></evn_condition>
<evn_message></evn_message>
<evn_operation_name></evn_operation_name>
<evn_operation_implementation_ref></evn_operation_implementation_ref>
<evn_time_date></evn_time_date>
<evn_time_cycle></evn_time_cycle>
<evn_time_duration></evn_time_duration>
<evn_behavior>THROW</evn_behavior>
<bou_uid>908599339591d96b70910b0020050417</bou_uid>
<dia_uid>358612266591d96a014d1e6034604444</dia_uid>
<element_uid>132598392591d96b7084aa6048071487</element_uid>
<bou_element>891718728591d96a426dd25018705242</bou_element>
<bou_element_type>bpmnEvent</bou_element_type>
<bou_x>545</bou_x>
<bou_y>100</bou_y>
<bou_width>33</bou_width>
<bou_height>33</bou_height>
<bou_rel_position>0</bou_rel_position>
<bou_size_identical>0</bou_size_identical>
<bou_container>bpmnDiagram</bou_container>
</record>
</table>
<table name="EXTENSION"/>
<table name="FLOW">
<record>
<flo_uid>85805175959526a730f76b2063192396</flo_uid>
<prj_uid>441299927591d969ff284b7005303758</prj_uid>
<dia_uid>358612266591d96a014d1e6034604444</dia_uid>
<flo_type>SEQUENCE</flo_type>
<flo_name> </flo_name>
<flo_element_origin>382310413591d96b6cb34d7077964801</flo_element_origin>
<flo_element_origin_type>bpmnActivity</flo_element_origin_type>
<flo_element_origin_port>0</flo_element_origin_port>
<flo_element_dest>132598392591d96b7084aa6048071487</flo_element_dest>
<flo_element_dest_type>bpmnEvent</flo_element_dest_type>
<flo_element_dest_port>0</flo_element_dest_port>
<flo_is_inmediate>1</flo_is_inmediate>
<flo_condition></flo_condition>
<flo_x1>407</flo_x1>
<flo_y1>117</flo_y1>
<flo_x2>545</flo_x2>
<flo_y2>117</flo_y2>
<flo_state><![CDATA[[{"x":407,"y":117},{"x":545,"y":117}]]]></flo_state>
<flo_position>1</flo_position>
</record>
<record>
<flo_uid>92420993359526a730f7569046601886</flo_uid>
<prj_uid>441299927591d969ff284b7005303758</prj_uid>
<dia_uid>358612266591d96a014d1e6034604444</dia_uid>
<flo_type>SEQUENCE</flo_type>
<flo_name> </flo_name>
<flo_element_origin>349681056591d96b7059a07092140602</flo_element_origin>
<flo_element_origin_type>bpmnEvent</flo_element_origin_type>
<flo_element_origin_port>0</flo_element_origin_port>
<flo_element_dest>382310413591d96b6cb34d7077964801</flo_element_dest>
<flo_element_dest_type>bpmnActivity</flo_element_dest_type>
<flo_element_dest_port>0</flo_element_dest_port>
<flo_is_inmediate>1</flo_is_inmediate>
<flo_condition></flo_condition>
<flo_x1>133</flo_x1>
<flo_y1>117</flo_y1>
<flo_x2>256</flo_x2>
<flo_y2>117</flo_y2>
<flo_state><![CDATA[[{"x":133,"y":117},{"x":256,"y":117}]]]></flo_state>
<flo_position>1</flo_position>
</record>
<record>
<flo_uid>94742392759526a730f7308076877504</flo_uid>
<prj_uid>441299927591d969ff284b7005303758</prj_uid>
<dia_uid>358612266591d96a014d1e6034604444</dia_uid>
<flo_type>SEQUENCE</flo_type>
<flo_name> </flo_name>
<flo_element_origin>754852677591d96f0066c53097043776</flo_element_origin>
<flo_element_origin_type>bpmnEvent</flo_element_origin_type>
<flo_element_origin_port>0</flo_element_origin_port>
<flo_element_dest>382310413591d96b6cb34d7077964801</flo_element_dest>
<flo_element_dest_type>bpmnActivity</flo_element_dest_type>
<flo_element_dest_port>0</flo_element_dest_port>
<flo_is_inmediate>1</flo_is_inmediate>
<flo_condition></flo_condition>
<flo_x1>133</flo_x1>
<flo_y1>230</flo_y1>
<flo_x2>332</flo_x2>
<flo_y2>154</flo_y2>
<flo_state><![CDATA[[{"x":133,"y":230},{"x":332,"y":230},{"x":332,"y":154}]]]></flo_state>
<flo_position>1</flo_position>
</record>
</table>
<table name="GATEWAY"/>
<table name="LANE"/>
<table name="LANESET"/>
<table name="PARTICIPANT"/>
<table name="PROCESS">
<record>
<pro_uid>684563509591d96a01cbab3088210120</pro_uid>
<prj_uid>441299927591d969ff284b7005303758</prj_uid>
<dia_uid>358612266591d96a014d1e6034604444</dia_uid>
<pro_name>WebEntryEvent</pro_name>
<pro_type>NONE</pro_type>
<pro_is_executable>0</pro_is_executable>
<pro_is_closed>0</pro_is_closed>
<pro_is_subprocess>0</pro_is_subprocess>
</record>
</table>
<table name="PROJECT">
<record>
<prj_uid>441299927591d969ff284b7005303758</prj_uid>
<prj_name>WebEntryEvent</prj_name>
<prj_description></prj_description>
<prj_target_namespace></prj_target_namespace>
<prj_expresion_language></prj_expresion_language>
<prj_type_language></prj_type_language>
<prj_exporter></prj_exporter>
<prj_exporter_version></prj_exporter_version>
<prj_create_date><![CDATA[2017-05-18 12:42:08]]></prj_create_date>
<prj_update_date><![CDATA[2017-06-27 10:23:46]]></prj_update_date>
<prj_author>00000000000000000000000000000001</prj_author>
<prj_author_version></prj_author_version>
<prj_original_source></prj_original_source>
</record>
</table>
</definition>
<definition class="workflow">
<table name="process">
<record>
<pro_uid>441299927591d969ff284b7005303758</pro_uid>
<pro_title>WebEntryEvent</pro_title>
<pro_description></pro_description>
<pro_parent>441299927591d969ff284b7005303758</pro_parent>
<pro_time>1</pro_time>
<pro_timeunit>DAYS</pro_timeunit>
<pro_status>ACTIVE</pro_status>
<pro_type_day></pro_type_day>
<pro_type>NORMAL</pro_type>
<pro_assignment>FALSE</pro_assignment>
<pro_show_map>0</pro_show_map>
<pro_show_message>0</pro_show_message>
<pro_subprocess>0</pro_subprocess>
<pro_tri_create></pro_tri_create>
<pro_tri_open></pro_tri_open>
<pro_tri_deleted></pro_tri_deleted>
<pro_tri_canceled></pro_tri_canceled>
<pro_tri_paused></pro_tri_paused>
<pro_tri_reassigned></pro_tri_reassigned>
<pro_tri_unpaused></pro_tri_unpaused>
<pro_type_process>PUBLIC</pro_type_process>
<pro_show_delegate>0</pro_show_delegate>
<pro_show_dynaform>0</pro_show_dynaform>
<pro_category></pro_category>
<pro_sub_category></pro_sub_category>
<pro_industry>0</pro_industry>
<pro_update_date><![CDATA[2017-06-27 10:23:46]]></pro_update_date>
<pro_create_date><![CDATA[2017-06-27 10:23:46]]></pro_create_date>
<pro_create_user></pro_create_user>
<pro_height>5000</pro_height>
<pro_width>10000</pro_width>
<pro_title_x>0</pro_title_x>
<pro_title_y>0</pro_title_y>
<pro_debug>0</pro_debug>
<pro_dynaforms></pro_dynaforms>
<pro_derivation_screen_tpl></pro_derivation_screen_tpl>
<pro_cost>0</pro_cost>
<pro_unit_cost></pro_unit_cost>
<pro_itee>1</pro_itee>
<pro_action_done><![CDATA[a:1:{i:0;s:41:"GATEWAYTOGATEWAY_DELETE_CORRUPTED_RECORDS";}]]></pro_action_done>
<pro_category_label>No Category</pro_category_label>
<pro_bpmn>1</pro_bpmn>
</record>
</table>
<table name="tasks">
<record>
<pro_uid>441299927591d969ff284b7005303758</pro_uid>
<tas_uid>382310413591d96b6cb34d7077964801</tas_uid>
<tas_title>Task 1</tas_title>
<tas_description></tas_description>
<tas_def_title></tas_def_title>
<tas_def_subject_message></tas_def_subject_message>
<tas_def_proc_code></tas_def_proc_code>
<tas_def_message></tas_def_message>
<tas_def_description></tas_def_description>
<tas_type>NORMAL</tas_type>
<tas_duration>1</tas_duration>
<tas_delay_type></tas_delay_type>
<tas_temporizer>0</tas_temporizer>
<tas_type_day></tas_type_day>
<tas_timeunit>DAYS</tas_timeunit>
<tas_alert>FALSE</tas_alert>
<tas_priority_variable></tas_priority_variable>
<tas_assign_type>BALANCED</tas_assign_type>
<tas_assign_variable><![CDATA[@@SYS_NEXT_USER_TO_BE_ASSIGNED]]></tas_assign_variable>
<tas_group_variable></tas_group_variable>
<tas_mi_instance_variable><![CDATA[@@SYS_VAR_TOTAL_INSTANCE]]></tas_mi_instance_variable>
<tas_mi_complete_variable><![CDATA[@@SYS_VAR_TOTAL_INSTANCES_COMPLETE]]></tas_mi_complete_variable>
<tas_assign_location>FALSE</tas_assign_location>
<tas_assign_location_adhoc>FALSE</tas_assign_location_adhoc>
<tas_transfer_fly>FALSE</tas_transfer_fly>
<tas_last_assigned>0</tas_last_assigned>
<tas_user>0</tas_user>
<tas_can_upload>FALSE</tas_can_upload>
<tas_view_upload>FALSE</tas_view_upload>
<tas_view_additional_documentation>FALSE</tas_view_additional_documentation>
<tas_can_cancel>FALSE</tas_can_cancel>
<tas_owner_app>FALSE</tas_owner_app>
<stg_uid></stg_uid>
<tas_can_pause>FALSE</tas_can_pause>
<tas_can_send_message>TRUE</tas_can_send_message>
<tas_can_delete_docs>FALSE</tas_can_delete_docs>
<tas_self_service>FALSE</tas_self_service>
<tas_start>TRUE</tas_start>
<tas_to_last_user>FALSE</tas_to_last_user>
<tas_send_last_email>FALSE</tas_send_last_email>
<tas_derivation>NORMAL</tas_derivation>
<tas_posx>256</tas_posx>
<tas_posy>79</tas_posy>
<tas_width>110</tas_width>
<tas_height>60</tas_height>
<tas_color></tas_color>
<tas_evn_uid></tas_evn_uid>
<tas_boundary></tas_boundary>
<tas_derivation_screen_tpl></tas_derivation_screen_tpl>
<tas_selfservice_timeout>0</tas_selfservice_timeout>
<tas_selfservice_time>0</tas_selfservice_time>
<tas_selfservice_time_unit></tas_selfservice_time_unit>
<tas_selfservice_trigger_uid></tas_selfservice_trigger_uid>
<tas_selfservice_execution>EVERY_TIME</tas_selfservice_execution>
<tas_not_email_from_format>0</tas_not_email_from_format>
<tas_offline>FALSE</tas_offline>
<tas_email_server_uid></tas_email_server_uid>
<tas_auto_root>FALSE</tas_auto_root>
<tas_receive_server_uid></tas_receive_server_uid>
<tas_receive_last_email>FALSE</tas_receive_last_email>
<tas_receive_email_from_format>0</tas_receive_email_from_format>
<tas_receive_message_type>text</tas_receive_message_type>
<tas_receive_message_template>alert_message.html</tas_receive_message_template>
<tas_receive_subject_message></tas_receive_subject_message>
<tas_receive_message></tas_receive_message>
<tas_average></tas_average>
<tas_sdv></tas_sdv>
</record>
<record>
<pro_uid>441299927591d969ff284b7005303758</pro_uid>
<tas_uid>wee-52677591d96f0066c53097043776</tas_uid>
<tas_title>WEBENTRYEVENT</tas_title>
<tas_description></tas_description>
<tas_def_title></tas_def_title>
<tas_def_subject_message></tas_def_subject_message>
<tas_def_proc_code></tas_def_proc_code>
<tas_def_message></tas_def_message>
<tas_def_description></tas_def_description>
<tas_type>WEBENTRYEVENT</tas_type>
<tas_duration>1</tas_duration>
<tas_delay_type></tas_delay_type>
<tas_temporizer>0</tas_temporizer>
<tas_type_day></tas_type_day>
<tas_timeunit>DAYS</tas_timeunit>
<tas_alert>FALSE</tas_alert>
<tas_priority_variable></tas_priority_variable>
<tas_assign_type>BALANCED</tas_assign_type>
<tas_assign_variable><![CDATA[@@SYS_NEXT_USER_TO_BE_ASSIGNED]]></tas_assign_variable>
<tas_group_variable></tas_group_variable>
<tas_mi_instance_variable><![CDATA[@@SYS_VAR_TOTAL_INSTANCE]]></tas_mi_instance_variable>
<tas_mi_complete_variable><![CDATA[@@SYS_VAR_TOTAL_INSTANCES_COMPLETE]]></tas_mi_complete_variable>
<tas_assign_location>FALSE</tas_assign_location>
<tas_assign_location_adhoc>FALSE</tas_assign_location_adhoc>
<tas_transfer_fly>FALSE</tas_transfer_fly>
<tas_last_assigned>0</tas_last_assigned>
<tas_user>0</tas_user>
<tas_can_upload>FALSE</tas_can_upload>
<tas_view_upload>FALSE</tas_view_upload>
<tas_view_additional_documentation>FALSE</tas_view_additional_documentation>
<tas_can_cancel>FALSE</tas_can_cancel>
<tas_owner_app>FALSE</tas_owner_app>
<stg_uid></stg_uid>
<tas_can_pause>FALSE</tas_can_pause>
<tas_can_send_message>TRUE</tas_can_send_message>
<tas_can_delete_docs>FALSE</tas_can_delete_docs>
<tas_self_service>FALSE</tas_self_service>
<tas_start>TRUE</tas_start>
<tas_to_last_user>FALSE</tas_to_last_user>
<tas_send_last_email>FALSE</tas_send_last_email>
<tas_derivation>NORMAL</tas_derivation>
<tas_posx>100</tas_posx>
<tas_posy>213</tas_posy>
<tas_width>110</tas_width>
<tas_height>60</tas_height>
<tas_color></tas_color>
<tas_evn_uid></tas_evn_uid>
<tas_boundary></tas_boundary>
<tas_derivation_screen_tpl></tas_derivation_screen_tpl>
<tas_selfservice_timeout>0</tas_selfservice_timeout>
<tas_selfservice_time>0</tas_selfservice_time>
<tas_selfservice_time_unit></tas_selfservice_time_unit>
<tas_selfservice_trigger_uid></tas_selfservice_trigger_uid>
<tas_selfservice_execution>EVERY_TIME</tas_selfservice_execution>
<tas_not_email_from_format>0</tas_not_email_from_format>
<tas_offline>FALSE</tas_offline>
<tas_email_server_uid></tas_email_server_uid>
<tas_auto_root>FALSE</tas_auto_root>
<tas_receive_server_uid></tas_receive_server_uid>
<tas_receive_last_email>FALSE</tas_receive_last_email>
<tas_receive_email_from_format>0</tas_receive_email_from_format>
<tas_receive_message_type>text</tas_receive_message_type>
<tas_receive_message_template>alert_message.html</tas_receive_message_template>
<tas_receive_subject_message></tas_receive_subject_message>
<tas_receive_message></tas_receive_message>
<tas_average></tas_average>
<tas_sdv></tas_sdv>
</record>
<record>
<pro_uid>441299927591d969ff284b7005303758</pro_uid>
<tas_uid>wee-81056591d96b7059a07092140602</tas_uid>
<tas_title>WEBENTRYEVENT</tas_title>
<tas_description></tas_description>
<tas_def_title></tas_def_title>
<tas_def_subject_message></tas_def_subject_message>
<tas_def_proc_code></tas_def_proc_code>
<tas_def_message></tas_def_message>
<tas_def_description></tas_def_description>
<tas_type>WEBENTRYEVENT</tas_type>
<tas_duration>1</tas_duration>
<tas_delay_type></tas_delay_type>
<tas_temporizer>0</tas_temporizer>
<tas_type_day></tas_type_day>
<tas_timeunit>DAYS</tas_timeunit>
<tas_alert>FALSE</tas_alert>
<tas_priority_variable></tas_priority_variable>
<tas_assign_type>BALANCED</tas_assign_type>
<tas_assign_variable><![CDATA[@@SYS_NEXT_USER_TO_BE_ASSIGNED]]></tas_assign_variable>
<tas_group_variable></tas_group_variable>
<tas_mi_instance_variable><![CDATA[@@SYS_VAR_TOTAL_INSTANCE]]></tas_mi_instance_variable>
<tas_mi_complete_variable><![CDATA[@@SYS_VAR_TOTAL_INSTANCES_COMPLETE]]></tas_mi_complete_variable>
<tas_assign_location>FALSE</tas_assign_location>
<tas_assign_location_adhoc>FALSE</tas_assign_location_adhoc>
<tas_transfer_fly>FALSE</tas_transfer_fly>
<tas_last_assigned>0</tas_last_assigned>
<tas_user>0</tas_user>
<tas_can_upload>FALSE</tas_can_upload>
<tas_view_upload>FALSE</tas_view_upload>
<tas_view_additional_documentation>FALSE</tas_view_additional_documentation>
<tas_can_cancel>FALSE</tas_can_cancel>
<tas_owner_app>FALSE</tas_owner_app>
<stg_uid></stg_uid>
<tas_can_pause>FALSE</tas_can_pause>
<tas_can_send_message>TRUE</tas_can_send_message>
<tas_can_delete_docs>FALSE</tas_can_delete_docs>
<tas_self_service>FALSE</tas_self_service>
<tas_start>TRUE</tas_start>
<tas_to_last_user>FALSE</tas_to_last_user>
<tas_send_last_email>FALSE</tas_send_last_email>
<tas_derivation>NORMAL</tas_derivation>
<tas_posx>100</tas_posx>
<tas_posy>100</tas_posy>
<tas_width>110</tas_width>
<tas_height>60</tas_height>
<tas_color></tas_color>
<tas_evn_uid></tas_evn_uid>
<tas_boundary></tas_boundary>
<tas_derivation_screen_tpl></tas_derivation_screen_tpl>
<tas_selfservice_timeout>0</tas_selfservice_timeout>
<tas_selfservice_time>0</tas_selfservice_time>
<tas_selfservice_time_unit></tas_selfservice_time_unit>
<tas_selfservice_trigger_uid></tas_selfservice_trigger_uid>
<tas_selfservice_execution>EVERY_TIME</tas_selfservice_execution>
<tas_not_email_from_format>0</tas_not_email_from_format>
<tas_offline>FALSE</tas_offline>
<tas_email_server_uid></tas_email_server_uid>
<tas_auto_root>FALSE</tas_auto_root>
<tas_receive_server_uid></tas_receive_server_uid>
<tas_receive_last_email>FALSE</tas_receive_last_email>
<tas_receive_email_from_format>0</tas_receive_email_from_format>
<tas_receive_message_type>text</tas_receive_message_type>
<tas_receive_message_template>alert_message.html</tas_receive_message_template>
<tas_receive_subject_message></tas_receive_subject_message>
<tas_receive_message></tas_receive_message>
<tas_average></tas_average>
<tas_sdv></tas_sdv>
</record>
</table>
<table name="routes">
<record>
<rou_uid>34124367559526a737f2d69069467270</rou_uid>
<rou_parent>0</rou_parent>
<pro_uid>441299927591d969ff284b7005303758</pro_uid>
<tas_uid>wee-52677591d96f0066c53097043776</tas_uid>
<rou_next_task>382310413591d96b6cb34d7077964801</rou_next_task>
<rou_case>1</rou_case>
<rou_type>SEQUENTIAL</rou_type>
<rou_default>0</rou_default>
<rou_condition></rou_condition>
<rou_to_last_user>FALSE</rou_to_last_user>
<rou_optional>FALSE</rou_optional>
<rou_send_email>TRUE</rou_send_email>
<rou_sourceanchor>1</rou_sourceanchor>
<rou_targetanchor>0</rou_targetanchor>
<rou_to_port>1</rou_to_port>
<rou_from_port>2</rou_from_port>
<rou_evn_uid></rou_evn_uid>
<gat_uid></gat_uid>
</record>
<record>
<rou_uid>68350484159526a734be212087171708</rou_uid>
<rou_parent>0</rou_parent>
<pro_uid>441299927591d969ff284b7005303758</pro_uid>
<tas_uid>wee-81056591d96b7059a07092140602</tas_uid>
<rou_next_task>382310413591d96b6cb34d7077964801</rou_next_task>
<rou_case>1</rou_case>
<rou_type>SEQUENTIAL</rou_type>
<rou_default>0</rou_default>
<rou_condition></rou_condition>
<rou_to_last_user>FALSE</rou_to_last_user>
<rou_optional>FALSE</rou_optional>
<rou_send_email>TRUE</rou_send_email>
<rou_sourceanchor>1</rou_sourceanchor>
<rou_targetanchor>0</rou_targetanchor>
<rou_to_port>1</rou_to_port>
<rou_from_port>2</rou_from_port>
<rou_evn_uid></rou_evn_uid>
<gat_uid></gat_uid>
</record>
<record>
<rou_uid>70270521159526a731f2246077513527</rou_uid>
<rou_parent>0</rou_parent>
<pro_uid>441299927591d969ff284b7005303758</pro_uid>
<tas_uid>382310413591d96b6cb34d7077964801</tas_uid>
<rou_next_task>-1</rou_next_task>
<rou_case>1</rou_case>
<rou_type>SEQUENTIAL</rou_type>
<rou_default>0</rou_default>
<rou_condition></rou_condition>
<rou_to_last_user>FALSE</rou_to_last_user>
<rou_optional>FALSE</rou_optional>
<rou_send_email>TRUE</rou_send_email>
<rou_sourceanchor>1</rou_sourceanchor>
<rou_targetanchor>0</rou_targetanchor>
<rou_to_port>1</rou_to_port>
<rou_from_port>2</rou_from_port>
<rou_evn_uid></rou_evn_uid>
<gat_uid></gat_uid>
</record>
</table>
<table name="lanes"/>
<table name="gateways"/>
<table name="inputs"/>
<table name="outputs"/>
<table name="dynaforms">
<record>
<dyn_uid>361249164591d96e6edcb81084086222</dyn_uid>
<dyn_title>Form2</dyn_title>
<dyn_description></dyn_description>
<pro_uid>441299927591d969ff284b7005303758</pro_uid>
<dyn_type>xmlform</dyn_type>
<dyn_filename><![CDATA[441299927591d969ff284b7005303758/361249164591d96e6edcb81084086222]]></dyn_filename>
<dyn_content><![CDATA[{"name":"Form2","description":"","items":[{"type":"form","variable":"","var_uid":"","dataType":"","id":"361249164591d96e6edcb81084086222","name":"Form2","description":"","mode":"edit","script":"","language":"en","externalLibs":"","printable":false,"items":[],"variables":[]}]}]]></dyn_content>
<dyn_label></dyn_label>
<dyn_version>2</dyn_version>
<dyn_update_date><![CDATA[2017-06-27 10:23:47]]></dyn_update_date>
</record>
<record>
<dyn_uid>839383145591d96c1331811037017265</dyn_uid>
<dyn_title>Form1</dyn_title>
<dyn_description></dyn_description>
<pro_uid>441299927591d969ff284b7005303758</pro_uid>
<dyn_type>xmlform</dyn_type>
<dyn_filename><![CDATA[441299927591d969ff284b7005303758/839383145591d96c1331811037017265]]></dyn_filename>
<dyn_content><![CDATA[{"name":"Form1","description":"","items":[{"type":"form","variable":"","var_uid":"","dataType":"","id":"839383145591d96c1331811037017265","name":"Form1","description":"","mode":"edit","script":"","language":"en","externalLibs":"","printable":false,"items":[],"variables":[]}]}]]></dyn_content>
<dyn_label></dyn_label>
<dyn_version>2</dyn_version>
<dyn_update_date><![CDATA[2017-06-27 10:23:47]]></dyn_update_date>
</record>
</table>
<table name="steps">
<record>
<step_uid>184891718591d96fc460179075100311</step_uid>
<pro_uid>441299927591d969ff284b7005303758</pro_uid>
<tas_uid>wee-64523591d96fc408bb5096940569</tas_uid>
<step_type_obj>DYNAFORM</step_type_obj>
<step_uid_obj>361249164591d96e6edcb81084086222</step_uid_obj>
<step_condition></step_condition>
<step_position>1</step_position>
<step_mode>EDIT</step_mode>
</record>
<record>
<step_uid>22063748159526a734912c2062942429</step_uid>
<pro_uid>441299927591d969ff284b7005303758</pro_uid>
<tas_uid>wee-81056591d96b7059a07092140602</tas_uid>
<step_type_obj>DYNAFORM</step_type_obj>
<step_uid_obj>839383145591d96c1331811037017265</step_uid_obj>
<step_condition></step_condition>
<step_position>1</step_position>
<step_mode>EDIT</step_mode>
</record>
<record>
<step_uid>593687534591d96ceca0ba3047943309</step_uid>
<pro_uid>441299927591d969ff284b7005303758</pro_uid>
<tas_uid>wee-54929591d96cebdc838076843684</tas_uid>
<step_type_obj>DYNAFORM</step_type_obj>
<step_uid_obj>839383145591d96c1331811037017265</step_uid_obj>
<step_condition></step_condition>
<step_position>1</step_position>
<step_mode>EDIT</step_mode>
</record>
<record>
<step_uid>74100777159526a737c2051048300991</step_uid>
<pro_uid>441299927591d969ff284b7005303758</pro_uid>
<tas_uid>wee-52677591d96f0066c53097043776</tas_uid>
<step_type_obj>DYNAFORM</step_type_obj>
<step_uid_obj>361249164591d96e6edcb81084086222</step_uid_obj>
<step_condition></step_condition>
<step_position>1</step_position>
<step_mode>EDIT</step_mode>
</record>
</table>
<table name="triggers"/>
<table name="taskusers"/>
<table name="groupwfs"/>
<table name="steptriggers"/>
<table name="dbconnections"/>
<table name="reportTables"/>
<table name="reportTablesVars"/>
<table name="stepSupervisor"/>
<table name="objectPermissions"/>
<table name="subProcess"/>
<table name="caseTracker"/>
<table name="caseTrackerObject"/>
<table name="stage"/>
<table name="fieldCondition"/>
<table name="event"/>
<table name="caseScheduler"/>
<table name="processCategory"/>
<table name="taskExtraProperties"/>
<table name="processUser"/>
<table name="processVariables"/>
<table name="webEntry"/>
<table name="webEntryEvent">
<record>
<wee_uid>30403965959526a738a4895074682321</wee_uid>
<prj_uid>441299927591d969ff284b7005303758</prj_uid>
<evn_uid>754852677591d96f0066c53097043776</evn_uid>
<act_uid>382310413591d96b6cb34d7077964801</act_uid>
<dyn_uid>361249164591d96e6edcb81084086222</dyn_uid>
<usr_uid>00000000000000000000000000000001</usr_uid>
<wee_title>754852677591d96f0066c53097043776</wee_title>
<wee_description></wee_description>
<wee_status>ENABLED</wee_status>
<wee_we_uid>18637106659526a73829350046415963</wee_we_uid>
<wee_we_tas_uid>wee-52677591d96f0066c53097043776</wee_we_tas_uid>
<wee_we_url>754852677591d96f0066c53097043776.php</wee_we_url>
<we_custom_title></we_custom_title>
<we_type>SINGLE</we_type>
<we_authentication>ANONYMOUS</we_authentication>
<we_hide_information_bar>1</we_hide_information_bar>
<we_callback>PROCESSMAKER</we_callback>
<we_callback_url></we_callback_url>
<we_link_generation>DEFAULT</we_link_generation>
<we_link_skin></we_link_skin>
<we_link_language></we_link_language>
<we_link_domain></we_link_domain>
<tas_uid>wee-52677591d96f0066c53097043776</tas_uid>
</record>
<record>
<wee_uid>58996753759526a73700e73080322738</wee_uid>
<prj_uid>441299927591d969ff284b7005303758</prj_uid>
<evn_uid>349681056591d96b7059a07092140602</evn_uid>
<act_uid>382310413591d96b6cb34d7077964801</act_uid>
<dyn_uid>839383145591d96c1331811037017265</dyn_uid>
<usr_uid>00000000000000000000000000000001</usr_uid>
<wee_title>349681056591d96b7059a07092140602</wee_title>
<wee_description></wee_description>
<wee_status>ENABLED</wee_status>
<wee_we_uid>56350997259526a73553602065170481</wee_we_uid>
<wee_we_tas_uid>wee-81056591d96b7059a07092140602</wee_we_tas_uid>
<wee_we_url>349681056591d96b7059a07092140602.php</wee_we_url>
<we_custom_title></we_custom_title>
<we_type>SINGLE</we_type>
<we_authentication>LOGIN_REQUIRED</we_authentication>
<we_hide_information_bar>0</we_hide_information_bar>
<we_callback>CUSTOM_CLEAR</we_callback>
<we_callback_url><![CDATA[https://www.google.com?q=@&USR_USERNAME]]></we_callback_url>
<we_link_generation>DEFAULT</we_link_generation>
<we_link_skin>classic</we_link_skin>
<we_link_language>en</we_link_language>
<we_link_domain></we_link_domain>
<tas_uid>wee-81056591d96b7059a07092140602</tas_uid>
</record>
</table>
<table name="messageType"/>
<table name="messageTypeVariable"/>
<table name="messageEventDefinition"/>
<table name="scriptTask"/>
<table name="timerEvent"/>
<table name="emailEvent"/>
<table name="filesManager">
<record>
<prf_uid>25146358659526a73a206e5049400821</prf_uid>
<pro_uid>441299927591d969ff284b7005303758</pro_uid>
<usr_uid>00000000000000000000000000000001</usr_uid>
<prf_update_usr_uid></prf_update_usr_uid>
<prf_path><![CDATA[/Users/davidcallizaya/NetBeansProjects/processmaker3/shared/sites/test/public/441299927591d969ff284b7005303758/349681056591d96b7059a07092140602Post.php]]></prf_path>
<prf_type>file</prf_type>
<prf_editable>0</prf_editable>
<prf_create_date><![CDATA[2017-06-27 10:23:47]]></prf_create_date>
<prf_update_date></prf_update_date>
</record>
<record>
<prf_uid>47935392859526a73a375b4044996807</prf_uid>
<pro_uid>441299927591d969ff284b7005303758</pro_uid>
<usr_uid>00000000000000000000000000000001</usr_uid>
<prf_update_usr_uid></prf_update_usr_uid>
<prf_path><![CDATA[/Users/davidcallizaya/NetBeansProjects/processmaker3/shared/sites/test/public/441299927591d969ff284b7005303758/754852677591d96f0066c53097043776Info.php]]></prf_path>
<prf_type>file</prf_type>
<prf_editable>0</prf_editable>
<prf_create_date><![CDATA[2017-06-27 10:23:47]]></prf_create_date>
<prf_update_date></prf_update_date>
</record>
<record>
<prf_uid>61678188859526a73a4c2d5052790333</prf_uid>
<pro_uid>441299927591d969ff284b7005303758</pro_uid>
<usr_uid>00000000000000000000000000000001</usr_uid>
<prf_update_usr_uid></prf_update_usr_uid>
<prf_path><![CDATA[/Users/davidcallizaya/NetBeansProjects/processmaker3/shared/sites/test/public/441299927591d969ff284b7005303758/wsClient.php]]></prf_path>
<prf_type>file</prf_type>
<prf_editable>0</prf_editable>
<prf_create_date><![CDATA[2017-06-27 10:23:47]]></prf_create_date>
<prf_update_date></prf_update_date>
</record>
<record>
<prf_uid>62130216959526a73a15514057910004</prf_uid>
<pro_uid>441299927591d969ff284b7005303758</pro_uid>
<usr_uid>00000000000000000000000000000001</usr_uid>
<prf_update_usr_uid></prf_update_usr_uid>
<prf_path><![CDATA[/Users/davidcallizaya/NetBeansProjects/processmaker3/shared/sites/test/public/441299927591d969ff284b7005303758/349681056591d96b7059a07092140602Info.php]]></prf_path>
<prf_type>file</prf_type>
<prf_editable>0</prf_editable>
<prf_create_date><![CDATA[2017-06-27 10:23:47]]></prf_create_date>
<prf_update_date></prf_update_date>
</record>
<record>
<prf_uid>81082366859526a73a41c25082555170</prf_uid>
<pro_uid>441299927591d969ff284b7005303758</pro_uid>
<usr_uid>00000000000000000000000000000001</usr_uid>
<prf_update_usr_uid></prf_update_usr_uid>
<prf_path><![CDATA[/Users/davidcallizaya/NetBeansProjects/processmaker3/shared/sites/test/public/441299927591d969ff284b7005303758/754852677591d96f0066c53097043776Post.php]]></prf_path>
<prf_type>file</prf_type>
<prf_editable>0</prf_editable>
<prf_create_date><![CDATA[2017-06-27 10:23:47]]></prf_create_date>
<prf_update_date></prf_update_date>
</record>
<record>
<prf_uid>91407667759526a73a2a984083615491</prf_uid>
<pro_uid>441299927591d969ff284b7005303758</pro_uid>
<usr_uid>00000000000000000000000000000001</usr_uid>
<prf_update_usr_uid></prf_update_usr_uid>
<prf_path><![CDATA[/Users/davidcallizaya/NetBeansProjects/processmaker3/shared/sites/test/public/441299927591d969ff284b7005303758/754852677591d96f0066c53097043776.php]]></prf_path>
<prf_type>file</prf_type>
<prf_editable>0</prf_editable>
<prf_create_date><![CDATA[2017-06-27 10:23:47]]></prf_create_date>
<prf_update_date></prf_update_date>
</record>
<record>
<prf_uid>98986674459526a73a0a475037755740</prf_uid>
<pro_uid>441299927591d969ff284b7005303758</pro_uid>
<usr_uid>00000000000000000000000000000001</usr_uid>
<prf_update_usr_uid></prf_update_usr_uid>
<prf_path><![CDATA[/Users/davidcallizaya/NetBeansProjects/processmaker3/shared/sites/test/public/441299927591d969ff284b7005303758/349681056591d96b7059a07092140602.php]]></prf_path>
<prf_type>file</prf_type>
<prf_editable>0</prf_editable>
<prf_create_date><![CDATA[2017-06-27 10:23:47]]></prf_create_date>
<prf_update_date></prf_update_date>
</record>
</table>
<table name="abeConfiguration"/>
<table name="elementTask"/>
</definition>
<workflow-files>
<file target="dynaforms">
<file_name>Form2</file_name>
<file_path><![CDATA[441299927591d969ff284b7005303758/361249164591d96e6edcb81084086222.xml]]></file_path>
<file_content><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGR5bmFGb3JtIHR5cGU9InhtbGZvcm0iIG5hbWU9IjQ0MTI5OTkyNzU5MWQ5NjlmZjI4NGI3MDA1MzAzNzU4LzM2MTI0OTE2NDU5MWQ5NmU2ZWRjYjgxMDg0MDg2MjIyIiB3aWR0aD0iNTAwIiBlbmFibGV0ZW1wbGF0ZT0iMCIgbW9kZT0iIiBuZXh0c3RlcHNhdmU9InByb21wdCI+CjwvZHluYUZvcm0+]]></file_content>
</file>
<file target="dynaforms">
<file_name>Form1</file_name>
<file_path><![CDATA[441299927591d969ff284b7005303758/839383145591d96c1331811037017265.xml]]></file_path>
<file_content><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGR5bmFGb3JtIHR5cGU9InhtbGZvcm0iIG5hbWU9IjQ0MTI5OTkyNzU5MWQ5NjlmZjI4NGI3MDA1MzAzNzU4LzgzOTM4MzE0NTU5MWQ5NmMxMzMxODExMDM3MDE3MjY1IiB3aWR0aD0iNTAwIiBlbmFibGV0ZW1wbGF0ZT0iMCIgbW9kZT0iIiBuZXh0c3RlcHNhdmU9InByb21wdCI+CjwvZHluYUZvcm0+]]></file_content>
</file>
<file target="public">
<file_name>349681056591d96b7059a07092140602Info.php</file_name>
<file_path><![CDATA[441299927591d969ff284b7005303758/349681056591d96b7059a07092140602Info.php]]></file_path>
<file_content><![CDATA[PD9waHAKCiRHX1BVQkxJU0ggPSBuZXcgUHVibGlzaGVyKCk7CiRzaG93ID0gImxvZ2luL3Nob3dNZXNzYWdlIjsKJG1lc3NhZ2UgPSAiIjsKaWYgKGlzc2V0KCRfU0VTU0lPTlsiX193ZWJFbnRyeVN1Y2Nlc3NfXyJdKSkgewogICAgJHNob3cgPSAibG9naW4vc2hvd0luZm8iOwogICAgJG1lc3NhZ2UgPSAkX1NFU1NJT05bIl9fd2ViRW50cnlTdWNjZXNzX18iXTsKfSBlbHNlIHsKICAgICRzaG93ID0gImxvZ2luL3Nob3dNZXNzYWdlIjsKICAgICRtZXNzYWdlID0gJF9TRVNTSU9OWyJfX3dlYkVudHJ5RXJyb3JfXyJdOwp9CiRHX1BVQkxJU0gtPkFkZENvbnRlbnQoInhtbGZvcm0iLCAieG1sZm9ybSIsICRzaG93LCAiIiwgJG1lc3NhZ2UpOwpHOjpSZW5kZXJQYWdlKCJwdWJsaXNoIiwgImJsYW5rIik7Cgo=]]></file_content>
</file>
<file target="public">
<file_name>754852677591d96f0066c53097043776Info.php</file_name>
<file_path><![CDATA[441299927591d969ff284b7005303758/754852677591d96f0066c53097043776Info.php]]></file_path>
<file_content><![CDATA[PD9waHAKCiRHX1BVQkxJU0ggPSBuZXcgUHVibGlzaGVyKCk7CiRzaG93ID0gImxvZ2luL3Nob3dNZXNzYWdlIjsKJG1lc3NhZ2UgPSAiIjsKaWYgKGlzc2V0KCRfU0VTU0lPTlsiX193ZWJFbnRyeVN1Y2Nlc3NfXyJdKSkgewogICAgJHNob3cgPSAibG9naW4vc2hvd0luZm8iOwogICAgJG1lc3NhZ2UgPSAkX1NFU1NJT05bIl9fd2ViRW50cnlTdWNjZXNzX18iXTsKfSBlbHNlIHsKICAgICRzaG93ID0gImxvZ2luL3Nob3dNZXNzYWdlIjsKICAgICRtZXNzYWdlID0gJF9TRVNTSU9OWyJfX3dlYkVudHJ5RXJyb3JfXyJdOwp9CiRHX1BVQkxJU0gtPkFkZENvbnRlbnQoInhtbGZvcm0iLCAieG1sZm9ybSIsICRzaG93LCAiIiwgJG1lc3NhZ2UpOwpHOjpSZW5kZXJQYWdlKCJwdWJsaXNoIiwgImJsYW5rIik7Cgo=]]></file_content>
</file>
</workflow-files>
</ProcessMaker-Project>

View File

@@ -0,0 +1,25 @@
Feature: WebEntry2
PROD-181: As a process architect I want an option to force login on web
entry forms so my users can start cases without having to go to the standard
home/inbox section and without having to click "New Case."
Scenario: Test WebEntry2 when session_block=1
Given a new workspace
Then Import process "WebEntryEventTest.pmx"
Then Config env.ini with "session_block=1"
Then Open a browser
Then Go to Processmaker login
Then Login as "admin" "admin"
When Inside "frameMain"
Then Double click on "WebEntryEvent"
Then Right click on "first"
Then Click on "Web Entry" inside "menu"
Then Click on "Link" inside "tab"
Then Copy "href" of "//*[@id='webEntryLink']//a"
Then Logout Processmaker
Then Open URL copied
Then Verify the page does not redirect to the standard /login/login
When Inside "iframe"
Then Login as "admin" "admin"
Then Verify the page goes to the WebEntry steps
Then close the browser

View File

@@ -20,11 +20,7 @@
<filter> <filter>
<whitelist addUncoveredFilesFromWhitelist="true" processUncoveredFilesFromWhitelist="false"> <whitelist addUncoveredFilesFromWhitelist="true" processUncoveredFilesFromWhitelist="false">
<directory suffix=".php">./workflow/engine/classes</directory> <directory suffix=".php">./workflow/engine/classes</directory>
<!-- <directory suffix=".php">./workflow/engine/controllers</directory>
<directory suffix=".php">./workflow/engine/methods</directory> -->
<directory suffix=".php">./workflow/engine/src</directory> <directory suffix=".php">./workflow/engine/src</directory>
<!-- <directory suffix=".php">./gulliver/bin</directory> -->
<!-- <directory suffix=".php">./gulliver/system</directory> -->
</whitelist> </whitelist>
<exclude> <exclude>
<directory>./workflow/engine/classes/model/map</directory> <directory>./workflow/engine/classes/model/map</directory>
@@ -35,18 +31,19 @@
</filter> </filter>
<php> <php>
<var name="SYS_SYS" value="os" /> <var name="SYS_SYS" value="test" />
<var name="SYS_LANG" value="en" /> <var name="SYS_LANG" value="en" />
<var name="SYS_SKIN" value="classic" /> <var name="SYS_SKIN" value="neoclassic" />
<var name="DB_ADAPTER" value="mysql" /> <var name="DB_ADAPTER" value="mysql" />
<var name="DB_HOST" value="localhost" /> <var name="DB_HOST" value="processmaker3" />
<var name="DB_NAME" value="wf_test" /> <var name="DB_NAME" value="wf_test" />
<var name="DB_USER" value="root" /> <var name="DB_USER" value="paula" />
<var name="DB_PASS" value="" /> <var name="DB_PASS" value="68M=muF@Xt,-vcN" />
<var name="PATH_DB" value="./test_shared/workflow_data/sites/" /> <var name="PATH_DB" value="./shared/sites/" />
<var name="PATH_DATA" value="./test_shared/workflow_data/" /> <var name="PATH_DATA" value="./shared/" />
<var name="APP_HOST" value="localhost" /> <var name="APP_HOST" value="processmaker3" />
<var name="HTTPS" value="off" /> <var name="HTTPS" value="off" />
<var name="SERVER_PORT" value="8080" />
</php> </php>
<logging> <logging>

View File

@@ -26,6 +26,11 @@ class WorkflowTestCase extends TestCase
$pdo->exec(file_get_contents(PATH_RBAC_CORE.'data/mysql/schema.sql')); $pdo->exec(file_get_contents(PATH_RBAC_CORE.'data/mysql/schema.sql'));
$pdo->exec(file_get_contents(PATH_CORE.'data/mysql/insert.sql')); $pdo->exec(file_get_contents(PATH_CORE.'data/mysql/insert.sql'));
$pdo->exec(file_get_contents(PATH_RBAC_CORE.'data/mysql/insert.sql')); $pdo->exec(file_get_contents(PATH_RBAC_CORE.'data/mysql/insert.sql'));
$pdo->exec("INSERT INTO `APP_SEQUENCE` (`ID`) VALUES ('1')");
$pdo->exec("INSERT INTO `OAUTH_CLIENTS` (`CLIENT_ID`, `CLIENT_SECRET`, `CLIENT_NAME`, `CLIENT_DESCRIPTION`, `CLIENT_WEBSITE`, `REDIRECT_URI`, `USR_UID`) VALUES
('x-pm-local-client', '179ad45c6ce2cb97cf1029e212046e81', 'PM Web Designer', 'ProcessMaker Web Designer App', 'www.processmaker.com', 'http://".$_SERVER["HTTP_HOST"].":".$_SERVER['SERVER_PORT']."/sys".SYS_SYS."/en/neoclassic/oauth2/grant', '00000000000000000000000000000001');");
$pdo->exec("INSERT INTO `OAUTH_ACCESS_TOKENS` (`ACCESS_TOKEN`, `CLIENT_ID`, `USER_ID`, `EXPIRES`, `SCOPE`) VALUES
('39704d17049f5aef45e884e7b769989269502f83', 'x-pm-local-client', '00000000000000000000000000000001', '2017-06-15 17:55:19', 'view_processes edit_processes *');");
} }
/** /**
@@ -114,4 +119,81 @@ class WorkflowTestCase extends TestCase
} }
return rmdir($dir); return rmdir($dir);
} }
/**
* Set specific env.ini configuration.
*
* @param type $param
* @param type $value
*/
protected function setEnvIni($param, $value)
{
$config = file_get_contents(PATH_CONFIG.'env.ini');
if (substr($config, -1, 1) !== "\n") {
$config.="\n";
}
$regexp = '/^\s*'.preg_quote($param).'\s*=\s*.*\n$/m';
if (preg_match($regexp, $config."\n")) {
if ($value === null) {
$config = preg_replace($regexp, "", $config);
} else {
$value1 = is_numeric($value) ? $value : json_encode($value, true);
$config = preg_replace($regexp, "$param = $value1\n", $config);
}
} elseif ($value !== null) {
$value1 = is_numeric($value) ? $value : json_encode($value, true);
$config.="$param = $value1\n";
}
file_put_contents(PATH_CONFIG.'env.ini', $config);
}
/**
* Unset specific env.ini configuration.
*
* @param type $param
*/
protected function unsetEnvIni($param)
{
$this->setEnvIni($param, null);
}
/**
* Installa an licese file.
*
* @param type $path
* @throws \Exception
*/
protected function installLicense($path)
{
$licenseFile = glob($path);
if (!$licenseFile) {
throw new \Exception('To continue please put a valid license at features/resources');
}
G::LoadClass('pmLicenseManager');
$licenseManager = new pmLicenseManager();
$licenseManager->installLicense($licenseFile[0]);
}
/**
* Add a PM configuration.
*
* @return \Configurations
*/
protected function config($config=[]){
$configGetStarted = new \Configuration;
$data = array_merge([
'OBJ_UID' => '',
'PRO_UID' => '',
'USR_UID' => '',
'APP_UID' => '',
], $config);
$configGetStarted->create($data);
}
protected function getBaseUrl($url)
{
return (\G::is_https() ? "https://" : "http://").
$GLOBALS["APP_HOST"].':'.$GLOBALS['SERVER_PORT']."/sys".SYS_SYS."/".
SYS_LANG."/".SYS_SKIN."/".$url;
}
} }

View File

@@ -8,8 +8,10 @@ define('PATH_SEP', '/');
if (!defined('__DIR__')) { if (!defined('__DIR__')) {
define('__DIR__', dirname(__FILE__)); define('__DIR__', dirname(__FILE__));
} }
$_SERVER["HTTP_HOST"] = $GLOBALS['APP_HOST']; $_SERVER["HTTP_HOST"] = $GLOBALS['APP_HOST'].
($GLOBALS['SERVER_PORT'] === '80' ? '' : ':'.$GLOBALS['SERVER_PORT']);
$_SERVER['HTTPS'] = $GLOBALS['HTTPS']; $_SERVER['HTTPS'] = $GLOBALS['HTTPS'];
$_SERVER['SERVER_PORT'] = $GLOBALS['SERVER_PORT'];
// Defining the Home Directory // Defining the Home Directory
define('PATH_TRUNK', realpath(__DIR__.'/../').PATH_SEP); define('PATH_TRUNK', realpath(__DIR__.'/../').PATH_SEP);

View File

@@ -36,6 +36,10 @@ class WebEntryEventTest extends \WorkflowTestCase
'ID_UNDEFINED_VALUE_IS_REQUIRED({0})'); 'ID_UNDEFINED_VALUE_IS_REQUIRED({0})');
$this->setTranslation('ID_WEB_ENTRY_EVENT_DOES_NOT_EXIST', $this->setTranslation('ID_WEB_ENTRY_EVENT_DOES_NOT_EXIST',
'ID_WEB_ENTRY_EVENT_DOES_NOT_EXIST({0})'); 'ID_WEB_ENTRY_EVENT_DOES_NOT_EXIST({0})');
$this->setTranslation('ID_INVALID_VALUE_ONLY_ACCEPTS_VALUES',
'ID_INVALID_VALUE_ONLY_ACCEPTS_VALUES({0},{1})');
$this->setTranslation('ID_DYNAFORM_IS_NOT_ASSIGNED_TO_ACTIVITY',
'ID_DYNAFORM_IS_NOT_ASSIGNED_TO_ACTIVITY({0},{1})');
} }
/** /**
@@ -58,7 +62,7 @@ class WebEntryEventTest extends \WorkflowTestCase
$this->assertNotNull($entryEvents[0]['TAS_UID']); $this->assertNotNull($entryEvents[0]['TAS_UID']);
$this->assertNull($entryEvents[0]['WE_CUSTOM_TITLE']); $this->assertNull($entryEvents[0]['WE_CUSTOM_TITLE']);
$this->assertEquals($entryEvents[0]['WE_AUTHENTICATION'], 'ANONYMOUS'); $this->assertEquals($entryEvents[0]['WE_AUTHENTICATION'], 'ANONYMOUS');
$this->assertEquals($entryEvents[0]['WE_HIDE_INFORMATION_BAR'], '0'); $this->assertEquals($entryEvents[0]['WE_HIDE_INFORMATION_BAR'], '1');
$this->assertEquals($entryEvents[0]['WE_CALLBACK'], 'PROCESSMAKER'); $this->assertEquals($entryEvents[0]['WE_CALLBACK'], 'PROCESSMAKER');
$this->assertNull($entryEvents[0]['WE_CALLBACK_URL']); $this->assertNull($entryEvents[0]['WE_CALLBACK_URL']);
$this->assertEquals($entryEvents[0]['WE_LINK_GENERATION'], 'DEFAULT'); $this->assertEquals($entryEvents[0]['WE_LINK_GENERATION'], 'DEFAULT');
@@ -76,7 +80,7 @@ class WebEntryEventTest extends \WorkflowTestCase
$this->assertCount(3, $entryEvents); $this->assertCount(3, $entryEvents);
$this->assertNull($entryEvents[0]['WE_CUSTOM_TITLE']); $this->assertNull($entryEvents[0]['WE_CUSTOM_TITLE']);
$this->assertEquals($entryEvents[0]['WE_AUTHENTICATION'], 'ANONYMOUS'); $this->assertEquals($entryEvents[0]['WE_AUTHENTICATION'], 'ANONYMOUS');
$this->assertEquals($entryEvents[0]['WE_HIDE_INFORMATION_BAR'], '0'); $this->assertEquals($entryEvents[0]['WE_HIDE_INFORMATION_BAR'], '1');
$this->assertEquals($entryEvents[0]['WE_CALLBACK'], 'PROCESSMAKER'); $this->assertEquals($entryEvents[0]['WE_CALLBACK'], 'PROCESSMAKER');
$this->assertNull($entryEvents[0]['WE_CALLBACK_URL']); $this->assertNull($entryEvents[0]['WE_CALLBACK_URL']);
$this->assertEquals($entryEvents[0]['WE_LINK_GENERATION'], 'DEFAULT'); $this->assertEquals($entryEvents[0]['WE_LINK_GENERATION'], 'DEFAULT');
@@ -158,7 +162,6 @@ class WebEntryEventTest extends \WorkflowTestCase
$processUid, $processUid,
$entryEvents, $entryEvents,
[ [
'WEE_URL' => $this->domain."/sys".SYS_SYS."/".SYS_LANG."/".SYS_SKIN."/".$processUid."/custom.php",
'WE_TYPE' => "MULTIPLE", 'WE_TYPE' => "MULTIPLE",
'WE_CUSTOM_TITLE' => $this->customTitle, 'WE_CUSTOM_TITLE' => $this->customTitle,
'WE_AUTHENTICATION' => 'ANONYMOUS', 'WE_AUTHENTICATION' => 'ANONYMOUS',
@@ -213,14 +216,11 @@ class WebEntryEventTest extends \WorkflowTestCase
$this->assertCount(1, $entryEvents); $this->assertCount(1, $entryEvents);
$rows = $this->getCombinationsFor([ $rows = $this->getCombinationsFor([
'WE_LINK_GENERATION' => ['DEFAULT', 'ADVANCED'], 'WE_LINK_GENERATION' => ['DEFAULT', 'ADVANCED'],
'WEE_URL' => [
$this->domain."/sys".SYS_SYS."/".SYS_LANG."/".SYS_SKIN."/".$processUid."/custom.php",
null
],
'WEE_STATUS' => ['ENABLED', null], 'WEE_STATUS' => ['ENABLED', null],
'WE_TYPE' => ['MULTIPLE'], 'WE_TYPE' => ['MULTIPLE'],
'WE_LINK_SKIN' => [SYS_SKIN, null], 'WE_LINK_SKIN' => [SYS_SKIN],
'WE_LINK_LANGUAGE' => [SYS_LANG, null], 'WE_LINK_LANGUAGE' => [SYS_LANG],
'WE_LINK_DOMAIN' => ['domain.localhost'],
]); ]);
$criteria = new \Criteria(); $criteria = new \Criteria();
$criteria->add(\BpmnEventPeer::PRJ_UID, $processUid); $criteria->add(\BpmnEventPeer::PRJ_UID, $processUid);
@@ -323,12 +323,11 @@ class WebEntryEventTest extends \WorkflowTestCase
$rows = $this->getCombinationsFor([ $rows = $this->getCombinationsFor([
'WE_LINK_GENERATION' => ['DEFAULT', 'ADVANCED'], 'WE_LINK_GENERATION' => ['DEFAULT', 'ADVANCED'],
'WEE_URL' => [
$this->domain."/sys".SYS_SYS."/".SYS_LANG."/".SYS_SKIN."/".$processUid."/custom.php",
null
],
'DYN_UID' => $dynaformIds, 'DYN_UID' => $dynaformIds,
'USR_UID' => [null, $this->adminUid, static::SKIP_VALUE], 'USR_UID' => [null, $this->adminUid, static::SKIP_VALUE],
'WE_LINK_SKIN' => [SYS_SKIN],
'WE_LINK_LANGUAGE' => [SYS_LANG],
'WE_LINK_DOMAIN' => [$this->domain],
]); ]);
foreach ($rows as $row) { foreach ($rows as $row) {
try { try {

View File

@@ -210,7 +210,7 @@ $webEntryModel = \WebEntryPeer::retrieveByPK($weUid);
if (localStorage.weData) { if (localStorage.weData) {
try { try {
weData = JSON.parse(localStorage.weData); weData = JSON.parse(localStorage.weData);
if (weData.TAS_UID!==tasUid) { if (weData.TAS_UID!==tasUid || !weData.APPLICATION || !weData.INDEX) {
//TAS_UID is different, reset. //TAS_UID is different, reset.
resetLocalData(); resetLocalData();
} }
@@ -265,7 +265,7 @@ $webEntryModel = \WebEntryPeer::retrieveByPK($weUid);
return new Promise(function (logged, failure) { return new Promise(function (logged, failure) {
if (!isLogged) { if (!isLogged) {
log("login"); log("login");
open('../login/login?u=' + encodeURIComponent(location.pathname + '/../../webentry/logged')) open('../login/login?inIFrame=1&u=' + encodeURIComponent(location.pathname + '/../../webentry/logged'))
.then(function (userInformation) { .then(function (userInformation) {
logged(userInformation); logged(userInformation);
}) })
@@ -411,7 +411,7 @@ $webEntryModel = \WebEntryPeer::retrieveByPK($weUid);
//This code is to prevent error at back history //This code is to prevent error at back history
//in Firefox //in Firefox
$("#iframe").hide(); $("#iframe").hide();
$("#iframe").attr("src", "../login/login"); $("#iframe").attr("src", "../login/login?inIFrame=1");
logout(false, function() { logout(false, function() {
resolve(callbackUrl); resolve(callbackUrl);
}); });

View File

@@ -534,6 +534,12 @@ class WebEntryEvent
unset($arrayData["PRJ_UID"]); unset($arrayData["PRJ_UID"]);
unset($arrayData["WEE_WE_UID"]); unset($arrayData["WEE_WE_UID"]);
unset($arrayData["WEE_WE_TAS_UID"]); unset($arrayData["WEE_WE_TAS_UID"]);
if (empty($arrayData["WE_LINK_SKIN"])) {
unset($arrayData["WE_LINK_SKIN"]);
}
if (empty($arrayData["WE_LINK_LANGUAGE"])) {
unset($arrayData["WE_LINK_LANGUAGE"]);
}
if (!isset($arrayData["WEE_DESCRIPTION"])) { if (!isset($arrayData["WEE_DESCRIPTION"])) {
$arrayData["WEE_DESCRIPTION"] = ""; $arrayData["WEE_DESCRIPTION"] = "";
@@ -678,7 +684,8 @@ class WebEntryEvent
$task = new \Tasks(); $task = new \Tasks();
//Task - Step for WE_TYPE=SINGLE //Task - Step for WE_TYPE=SINGLE
if (isset($arrayData["DYN_UID"]) && $arrayData["DYN_UID"] != $arrayWebEntryEventData["DYN_UID"] && $arrayData["WE_TYPE"]==='SINGLE') { if (isset($arrayData["DYN_UID"]) && $arrayData["DYN_UID"] != $arrayWebEntryEventData["DYN_UID"] &&
((isset($arrayData["WE_TYPE"]) && $arrayData["WE_TYPE"]==='SINGLE') || ($arrayWebEntryEventData["WE_TYPE"]==='SINGLE'))) {
//Delete //Delete
$step = new \Step(); $step = new \Step();

View File

@@ -27,7 +27,7 @@ SELECT LANG_ID, LANG_NAME FROM langOptions
<JS type="javascript"><![CDATA[ <JS type="javascript"><![CDATA[
//validate iframe login //validate iframe login
if(inIframe()) { if(inIframe() && (window.location.search.indexOf("inIFrame=1")===-1)) {
if (PM.Sessions.getCookie('PM-TabPrimary') !== '101010010' if (PM.Sessions.getCookie('PM-TabPrimary') !== '101010010'
&& (window.location.pathname.indexOf("login/login") !== -1 && (window.location.pathname.indexOf("login/login") !== -1
|| window.location.pathname.indexOf("sysLogin") !== -1)) { || window.location.pathname.indexOf("sysLogin") !== -1)) {

View File

@@ -30,7 +30,7 @@ SELECT LANG_ID, LANG_NAME FROM langOptions
<JS type="javascript"><![CDATA[ <JS type="javascript"><![CDATA[
//validate iframe login //validate iframe login
if(inIframe()) { if(inIframe() && (window.location.search.indexOf("inIFrame=1")===-1)) {
if (PM.Sessions.getCookie('PM-TabPrimary') !== '101010010' if (PM.Sessions.getCookie('PM-TabPrimary') !== '101010010'
&& (window.location.pathname.indexOf("login/login") !== -1 && (window.location.pathname.indexOf("login/login") !== -1
|| window.location.pathname.indexOf("sysLogin") !== -1)) { || window.location.pathname.indexOf("sysLogin") !== -1)) {