diff --git a/phpunit.xml b/phpunit.xml
old mode 100644
new mode 100755
index a5a5f121f..69862355d
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -52,6 +52,8 @@
+
+
diff --git a/tests/bootstrap.php b/tests/bootstrap.php
index ecb0a9f07..1314d19e7 100755
--- a/tests/bootstrap.php
+++ b/tests/bootstrap.php
@@ -3,14 +3,13 @@
/**
* Test harness bootstrap that sets up initial defines and builds up the initial database schema
*/
-// Bring in our standard bootstrap
+
include_once(__DIR__ . '/../bootstrap/autoload.php');
use Illuminate\Contracts\Console\Kernel;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
-// Setup our required defines
/**
* @todo Migrate to configuration parameters
*/
@@ -35,20 +34,14 @@ define('PMTABLE_KEY', 'pmtable');
define('PATH_WORKFLOW_MYSQL_DATA', PATH_TRUNK . '/workflow/engine/data/mysql/');
define('PATH_RBAC_MYSQL_DATA', PATH_TRUNK . '/rbac/engine/data/mysql/');
define('PATH_LANGUAGECONT', PATH_DATA . '/META-INF/');
-define('PM_NEW_PROCESS_SAVE', 1006);
-define('PATH_DATA_SITE', PATH_DATA . 'sites/' . SYS_SYS . '/');
-define("PATH_DATA_MAILTEMPLATES", PATH_DATA_SITE . "mailTemplates/");
-define('PATH_DATA_PUBLIC', PATH_DATA_SITE . 'public/');
define('DB_ADAPTER', 'mysql');
define('PATH_RBAC_HOME', PATH_TRUNK . '/rbac/');
define('PATH_RBAC', PATH_RBAC_HOME . 'engine/classes/');
define("PATH_CUSTOM_SKINS", PATH_DATA . "skins/");
define("PATH_TPL", PATH_CORE . "templates/");
-//timezone
-$_SESSION['__SYSTEM_UTC_TIME_ZONE__'] = (int) (env('MAIN_SYSTEM_UTC_TIME_ZONE', 'workflow')) == 1;
-
-//Set Time Zone
+// Set Time Zone
+$_SESSION['__SYSTEM_UTC_TIME_ZONE__'] = (int)(env('MAIN_SYSTEM_UTC_TIME_ZONE', 'workflow')) == 1;
ini_set('date.timezone', $_SESSION['__SYSTEM_UTC_TIME_ZONE__'] ? 'UTC' : env('MAIN_TIME_ZONE', 'America/New_York'));
define('TIME_ZONE', ini_get('date.timezone'));
@@ -56,25 +49,28 @@ define('TIME_ZONE', ini_get('date.timezone'));
$app = require __DIR__ . '/../bootstrap/app.php';
$app->make(Kernel::class)->bootstrap();
-//Overwrite with the Processmaker env.ini configuration used in production environments
+// Overwrite with the ProcessMaker env.ini configuration used in production environments
//@todo: move env.ini configuration to .env
ini_set('date.timezone', TIME_ZONE); //Set Time Zone
date_default_timezone_set(TIME_ZONE);
+// Configuration values
config(['app.timezone' => TIME_ZONE]);
-
-//configuration values
config([
"system.workspace" => SYS_SYS
]);
+// Defining constants related to the workspace
define("PATH_DATA_SITE", PATH_DATA . "sites/" . config("system.workspace") . "/");
define("PATH_DYNAFORM", PATH_DATA_SITE . "xmlForms/");
define("PATH_DATA_MAILTEMPLATES", PATH_DATA_SITE . "mailTemplates/");
define("PATH_DATA_PUBLIC", PATH_DATA_SITE . "public/");
-
G::defineConstants();
-// Setup our testexternal database
-config(['database.connections.testexternal' => [
+/**
+ * Database configurations
+ */
+// Setup connection to database SQLServer
+config([
+ 'database.connections.testexternal' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'database' => 'testexternal',
@@ -86,31 +82,25 @@ config(['database.connections.testexternal' => [
'prefix' => '',
'strict' => true,
'engine' => null
-]]);
-
-// Now, drop all test tables and repopulate with schema
-Schema::connection('testexternal')->dropIfExists('test');
-
-Schema::connection('testexternal')->create('test', function($table) {
- $table->increments('id');
- $table->string('value');
-});
-DB::connection('testexternal')->table('test')->insert([
- 'value' => 'testvalue'
+ ]
]);
-// Only do if we are supporting MSSql tests
+/**
+ * Configuration for MSSQL
+ */
if (env('RUN_MSSQL_TESTS')) {
- config(['database.connections.mssql' => [
+ config([
+ 'database.connections.mssql' => [
'driver' => 'sqlsrv',
'host' => env('MSSQL_HOST', '127.0.0.1'),
'database' => env('MSSQL_DATABASE', 'testexternal'),
'username' => env('MSSQL_USERNAME', 'root'),
'password' => env('MSSQL_PASSWORD', 'password'),
- ]]);
+ ]
+ ]);
Schema::connection('mssql')->dropIfExists('test');
- Schema::connection('mssql')->create('test', function($table) {
+ Schema::connection('mssql')->create('test', function ($table) {
$table->increments('id');
$table->string('value');
});
@@ -119,50 +109,63 @@ if (env('RUN_MSSQL_TESTS')) {
]);
}
+/**
+ * This is for standard ProcessMaker tables
+ */
+if (!env('POPULATE_DATABASE')) {
+ // Create a table for define the connection
+ Schema::connection('testexternal')->dropIfExists('test');
+ Schema::connection('testexternal')->create('test', function ($table) {
+ $table->increments('id');
+ $table->string('value');
+ });
+ DB::connection('testexternal')->table('test')->insert([
+ 'value' => 'testvalue'
+ ]);
-// THIS IS FOR STANDARD PROCESSMAKER TABLES
-// Now, drop all test tables and repopulate with schema
-DB::unprepared('SET FOREIGN_KEY_CHECKS = 0');
-$colname = 'Tables_in_' . env('DB_DATABASE');
-$tables = DB::select('SHOW TABLES');
-$drop = [];
-foreach ($tables as $table) {
- $drop[] = $table->$colname;
+ // Now, drop all test tables and repopulate with schema
+ DB::unprepared('SET FOREIGN_KEY_CHECKS = 0');
+ $colname = 'Tables_in_' . env('DB_DATABASE', 'test');
+ $tables = DB::select('SHOW TABLES');
+ $drop = [];
+ foreach ($tables as $table) {
+ $drop[] = $table->$colname;
+ }
+ if (count($drop)) {
+ $drop = implode(',', $drop);
+ DB::statement("DROP TABLE $drop");
+ DB::unprepared('SET FOREIGN_KEY_CHECKS = 1');
+ }
+
+ // Repopulate with schema and standard inserts
+ DB::unprepared(file_get_contents(PATH_CORE . 'data/mysql/schema.sql'));
+ DB::unprepared(file_get_contents(PATH_RBAC_CORE . 'data/mysql/schema.sql'));
+ DB::unprepared(file_get_contents(PATH_CORE . 'data/mysql/insert.sql'));
+ DB::unprepared(file_get_contents(PATH_RBAC_CORE . 'data/mysql/insert.sql'));
+
+ // Set our APP_SEQUENCE val
+ DB::table('APP_SEQUENCE')->insert([
+ 'ID' => 1
+ ]);
+
+ // Setup our initial oauth client for our web designer
+ DB::table('OAUTH_CLIENTS')->insert([
+ 'CLIENT_ID' => 'x-pm-local-client',
+ 'CLIENT_SECRET' => '179ad45c6ce2cb97cf1029e212046e81',
+ 'CLIENT_NAME' => 'PM Web Designer',
+ 'CLIENT_DESCRIPTION' => 'ProcessMaker Web Designer App',
+ 'CLIENT_WEBSITE' => 'www.processmaker.com',
+ 'REDIRECT_URI' => config('app.url') . '/sys' . config('system.workspace') . '/en/neoclassic/oauth2/grant',
+ 'USR_UID' => '00000000000000000000000000000001'
+ ]);
+ DB::table('OAUTH_ACCESS_TOKENS')->insert([
+ 'ACCESS_TOKEN' => '39704d17049f5aef45e884e7b769989269502f83',
+ 'CLIENT_ID' => 'x-pm-local-client',
+ 'USER_ID' => '00000000000000000000000000000001',
+ 'EXPIRES' => '2017-06-15 17:55:19',
+ 'SCOPE' => 'view_processes edit_processes *'
+ ]);
}
-if (count($drop)) {
- $drop = implode(',', $drop);
- DB::statement("DROP TABLE $drop");
- DB::unprepared('SET FOREIGN_KEY_CHECKS = 1');
-}
-
-// Repopulate with schema and standard inserts
-DB::unprepared(file_get_contents(PATH_CORE . 'data/mysql/schema.sql'));
-DB::unprepared(file_get_contents(PATH_RBAC_CORE . 'data/mysql/schema.sql'));
-DB::unprepared(file_get_contents(PATH_CORE . 'data/mysql/insert.sql'));
-DB::unprepared(file_get_contents(PATH_RBAC_CORE . 'data/mysql/insert.sql'));
-
-// Set our APP_SEQUENCE val
-DB::table('APP_SEQUENCE')->insert([
- 'ID' => 1
-]);
-
-// Setup our initial oauth client for our web designer
-DB::table('OAUTH_CLIENTS')->insert([
- 'CLIENT_ID' => 'x-pm-local-client',
- 'CLIENT_SECRET' => '179ad45c6ce2cb97cf1029e212046e81',
- 'CLIENT_NAME' => 'PM Web Designer',
- 'CLIENT_DESCRIPTION' => 'ProcessMaker Web Designer App',
- 'CLIENT_WEBSITE' => 'www.processmaker.com',
- 'REDIRECT_URI' => config('app.url') . '/sys' . config('system.workspace') . '/en/neoclassic/oauth2/grant',
- 'USR_UID' => '00000000000000000000000000000001'
-]);
-DB::table('OAUTH_ACCESS_TOKENS')->insert([
- 'ACCESS_TOKEN' => '39704d17049f5aef45e884e7b769989269502f83',
- 'CLIENT_ID' => 'x-pm-local-client',
- 'USER_ID' => '00000000000000000000000000000001',
- 'EXPIRES' => '2017-06-15 17:55:19',
- 'SCOPE' => 'view_processes edit_processes *'
-]);
// We need to manually initialize Propel with our test database
Propel::initConfiguration([