diff --git a/behat.yml.dist b/behat.yml.dist index a8869196e..3c42f2ff9 100644 --- a/behat.yml.dist +++ b/behat.yml.dist @@ -2,5 +2,36 @@ default: context: parameters: - base_url: http://192.168.11.181/api/1.0/michelangelo/ - access_token: cd5cff9b2e3ebabf49e276e47e977fab5988c00e + base_url: http://processmaker-ip-or-domain/api/1.0/[workspace]/ + access_token: e79057f4276661bedb6154eed3834f6cbd738853 + client_id: x-pm-local-client + client_secret: 179ad45c6ce2cb97cf1029e212046e81 + #uploadFilesFolder: /opt/uploadfiles + #cd5cff9b2e3ebabf49e276e47e977fab5988c00e + login_url: http://processmaker-ip-or-domaint/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-domaint/sys[workspace]/en/neoclassic/oauth2/clientSetupAjax + oauth_authorization_url: http://processmaker-ip-or-domain/[workspace]/oauth2/authorize + user_name: + user_password: + + # Database connection parameters + # To Mysql + mys_db_type: mysql + mys_db_server: + mys_db_name: + mys_db_username: + mys_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: + sqlsrv_db_name: + sqlsrv_db_username: + sqlsrv_db_password: + sqlsrv_db_port: 1433 + sqlsrv_db_encode: utf8 + sqlsrv_db_description: Microsoft SQL Server connection \ No newline at end of file diff --git a/features/backend/projects/database_connections/basic_sequence_database_connections.feature b/features/backend/projects/database_connections/basic_sequence_database_connections.feature index 5e9418c52..db2393786 100644 --- a/features/backend/projects/database_connections/basic_sequence_database_connections.feature +++ b/features/backend/projects/database_connections/basic_sequence_database_connections.feature @@ -1,87 +1,96 @@ @ProcessMakerMichelangelo @RestAPI Feature: DataBase Connections - Scenario: List all the database connections (result 0 database connections) - Given that I have a valid access_token - And I request "project/74737540052e1641ab88249082085472/database-connections" - Then the response status code should be 200 - And the response charset is "UTF-8" - And the response has 0 record + Scenario: List all the database connections (result 0 database connections) + Given that I have a valid access_token + And I request "project/74737540052e1641ab88249082085472/database-connections" + Then the response status code should be 200 + And the response charset is "UTF-8" + And the response has 0 record - Scenario: Create a new database connection - Given that I have a valid access_token - And POST this data: - """ - { - "dbs_type": "mysql", - "dbs_server": "michelangelo-be.colosa.net", - "dbs_database_name": "test", - "dbs_username": "testuser", - "dbs_password": "sample", - "dbs_port": 3306, - "dbs_encode": "utf8", - "dbs_description": "conection correcta" + Scenario Outline: Create a new database connection + Given that I have a valid access_token + And POST this data: + """ + { + "dbs_type": "", + "dbs_server": "", + "dbs_database_name": "", + "dbs_username": "", + "dbs_password": "", + "dbs_port": , + "dbs_encode": "", + "dbs_description": "" } """ - And I request "project/74737540052e1641ab88249082085472/database-connection" - Then the response status code should be 201 - And store "dbs_uid" in session array + And I request "project/74737540052e1641ab88249082085472/database-connection" + Then the response status code should be 201 + And store "dbs_uid" in session array - @3: TEST FOR GET DATABASE CONNECTIONS /---------------------------------------------------------------------- - Scenario: List all the database connections (result 1 database connection) - Given that I have a valid access_token - And I request "project/74737540052e1641ab88249082085472/database-connections" - Then the response status code should be 200 - And the response charset is "UTF-8" - And the response has 1 record + Examples: + | dbs_type | dbs_server | dbs_database_name | dbs_username | dbs_password | dbs_port | dbs_encode | dbs_description | + | | | | | | | | | - @4: TEST FOR PUT DATABASE CONNECTION /----------------------------------------------------------------------- - Scenario: Update a database connection - Given that I have a valid access_token - And PUT this data: - """ - { - "dbs_type": "mysql", - "dbs_server": "michelangelo-be.colosa.net", - "dbs_database_name": "test", - "dbs_username": "testuser", - "dbs_password": "sample", - "dbs_port": 3306, - "dbs_encode": "utf8", - "dbs_description": "conection correcta a workflow" + + @3: TEST FOR GET DATABASE CONNECTIONS /---------------------------------------------------------------------- + Scenario: List all the database connections (result 1 database connection) + Given that I have a valid access_token + And I request "project/74737540052e1641ab88249082085472/database-connections" + Then the response status code should be 200 + And the response charset is "UTF-8" + And the response has 1 record + + @4: TEST FOR PUT DATABASE CONNECTION /----------------------------------------------------------------------- + Scenario Outline: Update a database connection + Given that I have a valid access_token + And PUT this data: + """ + { + "dbs_type": "", + "dbs_server": "", + "dbs_database_name": "", + "dbs_username": "", + "dbs_password": "", + "dbs_port": , + "dbs_encode": "", + "dbs_description": "" } """ - And that I want to update a resource with the key "dbs_uid" stored in session array - And I request "project/74737540052e1641ab88249082085472/database-connection" - Then the response status code should be 200 - And the response charset is "UTF-8" - And the type is "object" + And that I want to update a resource with the key "dbs_uid" stored in session array + And I request "project/74737540052e1641ab88249082085472/database-connection" + Then the response status code should be 200 + And the response charset is "UTF-8" + And the type is "object" + + Examples: + | dbs_type | dbs_server | dbs_database_name | dbs_username | dbs_password | dbs_port | dbs_encode | dbs_description | + | | | | | | | | | - Scenario: Get a database connection (with change in "dbs_description" and "dbs_database_name") - Given that I have a valid access_token - And that I want to get a resource with the key "dbs_uid" stored in session array - And I request "project/74737540052e1641ab88249082085472/database-connection" - Then the response status code should be 200 - And the response charset is "UTF-8" - And the type is "object" - And that "dbs_description" is set to "conection correcta a workflow" - And that "dbs_database_name" is set to "wf_cochalo" + Scenario: Get a database connection (with change in "dbs_description" and "dbs_database_name") + Given that I have a valid access_token + And that I want to get a resource with the key "dbs_uid" stored in session array + And I request "project/74737540052e1641ab88249082085472/database-connection" + Then the response status code should be 200 + And the response charset is "UTF-8" + And the type is "object" + And that "dbs_description" is set to "conection correcta a workflow" + And that "dbs_database_name" is set to "wf_cochalo" - Scenario: Delete a database connection - Given that I have a valid access_token - And that I want to delete a resource with the key "dbs_uid" stored in session array - And I request "project/74737540052e1641ab88249082085472/database-connection" - Then the response status code should be 200 - And the response charset is "UTF-8" - And the type is "object" + Scenario: Delete a database connection + Given that I have a valid access_token + And that I want to delete a resource with the key "dbs_uid" stored in session array + And I request "project/74737540052e1641ab88249082085472/database-connection" + Then the response status code should be 200 + And the response charset is "UTF-8" + And the type is "object" - @7: TEST FOR GET DATABASE CONNECTIONS /---------------------------------------------------------------------- - Scenario: List all the database connections (result 0 database connections) - Given that I have a valid access_token - And I request "project/74737540052e1641ab88249082085472/database-connections" - Then the response status code should be 200 - And the response charset is "UTF-8" - And the response has 0 record \ No newline at end of file + @7: TEST FOR GET DATABASE CONNECTIONS /---------------------------------------------------------------------- + Scenario: List all the database connections (result 0 database connections) + Given that I have a valid access_token + And I request "project/74737540052e1641ab88249082085472/database-connections" + Then the response status code should be 200 + And the response charset is "UTF-8" + And the response has 0 record \ No newline at end of file diff --git a/features/backend/projects/database_connections/main_tests_database_connections_mysql.feature b/features/backend/projects/database_connections/main_tests_database_connections_mysql.feature index 4a49bed0b..e1a016a65 100644 --- a/features/backend/projects/database_connections/main_tests_database_connections_mysql.feature +++ b/features/backend/projects/database_connections/main_tests_database_connections_mysql.feature @@ -1,29 +1,34 @@ @ProcessMakerMichelangelo @RestAPI -Feature: DataBase Connections Main Tests MySQL +Feature: DataBase Connections Main Tests Mysql Requirements: - a workspace with the process 74737540052e1641ab88249082085472 ("Data Base Connenctions") already loaded - and workspace with the project 87648819953a85c0abc01d3080475981 ("testExecutionOfDerivationScreen") already loaded - there are zero Database Connections in the process + A workspace with previous creation of process with ID=74737540052e1641ab88249082085472 ("Data Base Connections") already loaded + and workspace with the project 87648819953a85c0abc01d3080475981 ("testExecutionOfDerivationScreen") already loaded + there are zero Database Connections in the processes. - Background: + Background: Given that I have a valid access_token - Scenario Outline: Get the DataBase Connections List when there are exactly zero DataBase Connections - Given I request "project//database-connections" - Then the response status code should be 200 - And the response charset is "UTF-8" - And the response has record - Examples: +# GET /api/1.0/{workspace}/project//database-connections + # Get list DataBase| dbs_type | dbs_server | dbs_database_name | dbs_username | dbs_password | dbs_port | dbs_encode | dbs_description | Connections + Scenario Outline: Get the DataBase Connections List when there are exactly zero DataBase Connections + Given I request "project//database-connections" + Then the response status code should be 200 + And the response charset is "UTF-8" + And the response has record - | test_description | project | record | - | List DB in the process Data Base Connenctions .pm | 74737540052e1641ab88249082085472 | 0 | - | List DB in the process testExecutionOfDerivationScreen .pmx | 87648819953a85c0abc01d3080475981 | 0 | + Examples: + | project | record | + | 106912358530c9b14ac15d3001790900 | 0 | + | 1265557095225ff5c688f46031700471 | 0 | - - Scenario Outline: Test database connection to test - Given POST this data: - """ + + # POST /api/1.0/{workspace}/project//database-connection/test + # Test DataBase Connection + @MysqlDbConnection + Scenario Outline: Test database connection to test + Given POST this data: + """ { "dbs_type": "", "dbs_server": "", @@ -35,23 +40,25 @@ Feature: DataBase Connections Main Tests MySQL "dbs_description": "" } """ - And I request "project//database-connection/test" - Then if database-connection with id "" is active - Then the response status code should be 200 - And the response charset is "UTF-8" - And the content type is "application/json" - - Examples: + And I request "project//database-connection/test" + Then if database-connection with id "" is active + Then the response status code should be 200 + And the response charset is "UTF-8" + And the content type is "application/json" - | test_description | dbs_uid_number | project | dbs_type | dbs_server | dbs_database_name | dbs_username | dbs_password | dbs_port | dbs_encode | dbs_description | - | Test SQL Server db connection .pm | 1 | 74737540052e1641ab88249082085472 | microsoft sql server | 192.168.11.99 | wf_michelangelo | sa | mafe12345 | 1433 | utf8 | SQL Server connection | - | Test SQL Server db connection .pmx | 2 | 87648819953a85c0abc01d3080475981 | microsoft sql server | 192.168.11.99 | wf_michelangelo | sa | mafe12345 | 1433 | utf8 | SQL Server connection | + Examples: + | dbs_uid_number | project | dbs_type | dbs_server | dbs_database_name | dbs_username | dbs_password | dbs_port | dbs_encode | dbs_description | + | 1 | 106912358530c9b14ac15d3001790900 | | | | | | | | | + | 2 | 1265557095225ff5c688f46031700471 | | | | | | | | | - Scenario Outline: Create a new database connection - Given database-connection with id "" is active - And POST this data: - """ + # POST /api/1.0/{workspace}/project//database-connection + # Create new DataBase Connection + @MysqlDbConnection + Scenario Outline: Create a new database connection + Given database-connection with id "" is active + And POST this data: + """ { "dbs_type": "", "dbs_server": "", @@ -63,39 +70,41 @@ Feature: DataBase Connections Main Tests MySQL "dbs_description": "" } """ - And I request "project//database-connection" - Then the response status code should be 201 - And the response charset is "UTF-8" - And the content type is "application/json" - And the type is "object" - And store "dbs_uid" in session array as variable "dbs_uid_" + And I request "project//database-connection" + Then the response status code should be 201 + And the response charset is "UTF-8" + And the content type is "application/json" + And the type is "object" + And store "dbs_uid" in session array as variable "dbs_uid_" - Examples: - - | test_description | dbs_uid_number | project | dbs_type | dbs_server | dbs_database_name | dbs_username | dbs_password | dbs_port | dbs_encode | dbs_description | - | Create SQL Server db connection .pm | 1 | 74737540052e1641ab88249082085472 | mssql | 192.168.11.99 | wf_michelangelo | sa | mafe12345 | 1433 | utf8 | SQL Server connection | - | Create SQL Server db connection .pmx | 2 | 87648819953a85c0abc01d3080475981 | mssql | 192.168.11.99 | wf_michelangelo | sa | mafe12345 | 1433 | utf8 | SQL Server connection | + Examples: + | dbs_uid_number | project | dbs_type | dbs_server | dbs_database_name | dbs_username | dbs_password | dbs_port | dbs_encode | dbs_description | + | 1 | 106912358530c9b14ac15d3001790900 | | | | | | | | | + | 2 | 1265557095225ff5c688f46031700471 | | | | | | | | | - Scenario Outline: Get the DataBase Connections List when there are exactly one DataBase Connections in each process - Given database-connection with id "" is active - And I request "project//database-connections" - Then the response status code should be 200 - And the response charset is "UTF-8" - And the response has record + # GET /api/1.0/{workspace}/project//database-connection + # Get DataBase Connections list of each process + Scenario Outline: Get the DataBase Connections List when there are exactly one DataBase Connections in each process + Given database-connection with id "" is active + And I request "project//database-connections" + Then the response status code should be 200 + And the response charset is "UTF-8" + And the response has record - Examples: - - | test_description | project | record | dbs_uid_number | - | List DB in the process Data Base Connenctions .pm | 74737540052e1641ab88249082085472 | 1 | 1 | - | List DB in the process testExecutionOfDerivationScreen .pmx | 87648819953a85c0abc01d3080475981 | 1 | 2 | + Examples: + | project | record | dbs_uid_number | + | 106912358530c9b14ac15d3001790900 | 1 | 1 | + | 1265557095225ff5c688f46031700471 | 1 | 2 | - - Scenario Outline: Update a database connection - Given database-connection with id "" is active - And PUT this data: - """ + # PUT /api/1.0/{workspace}/project//database-connection + # Update a DataBase Connection + @MysqlDbConnection + Scenario Outline: Update a database connection + Given database-connection with id "" is active + And PUT this data: + """ { "dbs_type": "", "dbs_server": "", @@ -107,66 +116,69 @@ Feature: DataBase Connections Main Tests MySQL "dbs_description": "" } """ - And that I want to update a resource with the key "dbs_uid" stored in session array as variable "dbs_uid_" - And I request "project//database-connection" - Then the response status code should be 200 - And the response charset is "UTF-8" - And the type is "object" + And that I want to update a resource with the key "dbs_uid" stored in session array as variable "dbs_uid_" + And I request "project//database-connection" + Then the response status code should be 200 + And the response charset is "UTF-8" + And the type is "object" - Examples: - - | test_description | dbs_uid_number | project | dbs_type | dbs_server | dbs_database_name | dbs_username | dbs_password | dbs_port | dbs_encode | dbs_description | - | Update sql server db connection .pm | 1 | 74737540052e1641ab88249082085472 | mssql | 192.168.11.99 | wf_michelangelo | sa | mafe12345 | 1433 | utf8 | update SQL Server connection | - | Update sql server db connection .pmx | 2 | 87648819953a85c0abc01d3080475981 | mssql | 192.168.11.99 | wf_michelangelo | sa | mafe12345 | 1433 | utf8 | update SQL Server connection | + Examples: + | dbs_uid_number | project | dbs_type | dbs_server | dbs_database_name | dbs_username | dbs_password | dbs_port | dbs_encode | dbs_description | + | 1 | 106912358530c9b14ac15d3001790900 | | | | | | | | | + | 2 | 1265557095225ff5c688f46031700471 | | | | | | | | | - Scenario Outline: Get a single database connection and check some properties - Given database-connection with id "" is active - And that I want to get a resource with the key "dbs_uid" stored in session array as variable "dbs_uid_" - And I request "project//database-connection" - Then the response status code should be 200 - And the response charset is "UTF-8" - And the type is "object" - And that "dbs_type" is set to "" - And that "dbs_server" is set to "" - And that "dbs_database_name" is set to "" - And that "dbs_username" is set to "" - And that "dbs_password" is set to "" - And that "dbs_port" is set to "" - And that "dbs_encode" is set to "" - And that "dbs_description" is set to "" + # GET /api/1.0/{workspace}/project//database-connection + # Get a single DataBase Connection and their properties + @MysqlDbConnection + Scenario Outline: Get a single database connection and check some properties + Given database-connection with id "" is active + And that I want to get a resource with the key "dbs_uid" stored in session array as variable "dbs_uid_" + And I request "project//database-connection" + Then the response status code should be 200 + And the response charset is "UTF-8" + And the type is "object" + And that "dbs_type" is set to "" + And that "dbs_server" is set to "" + And that "dbs_database_name" is set to "" + And that "dbs_username" is set to "" + And that "dbs_password" is set to "" + And that "dbs_port" is set to "" + And that "dbs_encode" is set to "" + And that "dbs_description" is set to "" - Examples: - - | test_description | dbs_uid_number | project | dbs_type | dbs_server | dbs_database_name | dbs_username | dbs_password | dbs_port | dbs_encode | dbs_description | - | Update sql server db connection .pm | 1 | 74737540052e1641ab88249082085472 | mssql | 192.168.11.99 | wf_michelangelo | sa | mafe12345 | 1433 | utf8 | update SQL Server connection | - | Update sql server db connection .pmx | 2 | 87648819953a85c0abc01d3080475981 | mssql | 192.168.11.99 | wf_michelangelo | sa | mafe12345 | 1433 | utf8 | update SQL Server connection | + Examples: + | dbs_uid_number | project | dbs_type | dbs_server | dbs_database_name | dbs_username | dbs_password | dbs_port | dbs_encode | dbs_description | + | 1 | 106912358530c9b14ac15d3001790900 | | | | | | | | | + | 2 | 1265557095225ff5c688f46031700471 | | | | | | | | | - Scenario Outline: Delete all Database Connection created previously in this script - Given database-connection with id "" is active - And that I want to delete a resource with the key "dbs_uid" stored in session array as variable "dbs_uid_" - And I request "project//database-connection" - Then the response status code should be 200 - And the response charset is "UTF-8" - And the type is "object" + # DELETE /api/1.0/{workspace}/project//database-connection + # Delete all DataBase Connections created in this script + Scenario Outline: Delete all Database Connection created in this script + Given database-connection with id "" is active + And that I want to delete a resource with the key "dbs_uid" stored in session array as variable "dbs_uid_" + And I request "project//database-connection" + Then the response status code should be 200 + And the response charset is "UTF-8" + And the type is "object" - Examples: + Examples: + | project | dbs_uid_number | + | 106912358530c9b14ac15d3001790900 | 1 | + | 1265557095225ff5c688f46031700471 | 2 | - | project | dbs_uid_number | - | 74737540052e1641ab88249082085472 | 1 | - | 87648819953a85c0abc01d3080475981 | 2 | - - Scenario Outline: Get the DataBase Connections List when there are exactly zero DataBase Connections - Given database-connection with id "" is active - And I request "project//database-connections" - Then the response status code should be 200 - And the response charset is "UTF-8" - And the response has record + # GET /api/1.0/{workspace}/project//database-connection + # Get DataBase Connections list + Scenario Outline: Get the DataBase Connections List when there are exactly zero DataBase Connections + Given database-connection with id "" is active + And I request "project//database-connections" + Then the response status code should be 200 + And the response charset is "UTF-8" + And the response has record - Examples: - - | test_description | project | record | dbs_uid_number | - | List DB in the process Data Base Connenctions .pm | 74737540052e1641ab88249082085472 | 0 | 1 | - | List DB in the process testExecutionOfDerivationScreen .pmx | 87648819953a85c0abc01d3080475981 | 0 | 2 | \ No newline at end of file + Examples: + | project | record | dbs_uid_number | + | 106912358530c9b14ac15d3001790900 | 0 | 1 | + | 1265557095225ff5c688f46031700471 | 0 | 2 | \ No newline at end of file diff --git a/features/backend/projects/database_connections/main_tests_database_connections_sqlserver.feature b/features/backend/projects/database_connections/main_tests_database_connections_sqlserver.feature index 3aad843e3..2fb272877 100644 --- a/features/backend/projects/database_connections/main_tests_database_connections_sqlserver.feature +++ b/features/backend/projects/database_connections/main_tests_database_connections_sqlserver.feature @@ -1,29 +1,34 @@ @ProcessMakerMichelangelo @RestAPI Feature: DataBase Connections Main Tests SQL Server Requirements: - a workspace with the process 74737540052e1641ab88249082085472 ("Data Base Connenctions") already loaded - and workspace with the project 87648819953a85c0abc01d3080475981 ("testExecutionOfDerivationScreen") already loaded - there are zero Database Connections in the processes + A workspace with previous creation of process with ID=74737540052e1641ab88249082085472 ("Data Base Connections") already loaded + and workspace with the project 87648819953a85c0abc01d3080475981 ("testExecutionOfDerivationScreen") already loaded + there are zero Database Connections in the processes. - Background: + Background: Given that I have a valid access_token - Scenario Outline: Get the DataBase Connections List when there are exactly zero DataBase Connections - Given I request "project//database-connections" - Then the response status code should be 200 - And the response charset is "UTF-8" - And the response has record - Examples: + # GET /api/1.0/{workspace}/project//database-connections + # Get list DataBase Connections + Scenario Outline: Get the DataBase Connections List when there are exactly zero DataBase Connections + Given I request "project//database-connections" + Then the response status code should be 200 + And the response charset is "UTF-8" + And the response has record - | test_description | project | record | - | List DB in the process Data Base Connenctions .pm | 74737540052e1641ab88249082085472 | 0 | - | List DB in the process testExecutionOfDerivationScreen .pmx | 87648819953a85c0abc01d3080475981 | 0 | + Examples: + | project | record | + | 106912358530c9b14ac15d3001790900 | 0 | + | 1265557095225ff5c688f46031700471 | 0 | - Scenario Outline: Test database connection to test - Given POST this data: - """ + # POST /api/1.0/{workspace}/project//database-connection/test + # Test DataBase Connection + @SqlServerDbConnection + Scenario Outline: Test database connection to test + Given POST this data: + """ { "dbs_type": "", "dbs_server": "", @@ -35,23 +40,25 @@ Feature: DataBase Connections Main Tests SQL Server "dbs_description": "" } """ - And I request "project//database-connection/test" - Then if database-connection with id "" is active - Then the response status code should be 200 - And the response charset is "UTF-8" - And the content type is "application/json" - - Examples: + And I request "project//database-connection/test" + Then if database-connection with id "" is active + Then the response status code should be 200 + And the response charset is "UTF-8" + And the content type is "application/json" - | test_description | dbs_uid_number | project | dbs_type | dbs_server | dbs_database_name | dbs_username | dbs_password | dbs_port | dbs_encode | dbs_description | - | Test SQL Server db connection .pm | 1 | 74737540052e1641ab88249082085472 | microsoft sql server | 192.168.11.99 | wf_michelangelo | sa | mafe12345 | 1433 | utf8 | SQL Server connection | - | Test SQL Server db connection .pmx | 2 | 87648819953a85c0abc01d3080475981 | microsoft sql server | 192.168.11.99 | wf_michelangelo | sa | mafe12345 | 1433 | utf8 | SQL Server connection | + Examples: + | dbs_uid_number | project | dbs_type | dbs_server | dbs_database_name | dbs_username | dbs_password | dbs_port | dbs_encode | dbs_description | + | 1 | 106912358530c9b14ac15d3001790900 | | | | | | | | | + | 2 | 1265557095225ff5c688f46031700471 | | | | | | | | | - Scenario Outline: Create a new database connection - Given database-connection with id "" is active - And POST this data: - """ + # POST /api/1.0/{workspace}/project//database-connection + # Create new DataBase Connection + @SqlServerDbConnection + Scenario Outline: Create a new database connection + Given database-connection with id "" is active + And POST this data: + """ { "dbs_type": "", "dbs_server": "", @@ -63,38 +70,41 @@ Feature: DataBase Connections Main Tests SQL Server "dbs_description": "" } """ - And I request "project//database-connection" - Then the response status code should be 201 - And the response charset is "UTF-8" - And the content type is "application/json" - And the type is "object" - And store "dbs_uid" in session array as variable "dbs_uid_" + And I request "project//database-connection" + Then the response status code should be 201 + And the response charset is "UTF-8" + And the content type is "application/json" + And the type is "object" + And store "dbs_uid" in session array as variable "dbs_uid_" - Examples: - - | test_description | dbs_uid_number | project | dbs_type | dbs_server | dbs_database_name | dbs_username | dbs_password | dbs_port | dbs_encode | dbs_description | - | Create SQL Server db connection .pm | 1 | 74737540052e1641ab88249082085472 | mssql | 192.168.11.99 | wf_michelangelo | sa | mafe12345 | 1433 | utf8 | SQL Server connection | - | Create SQL Server db connection .pmx | 2 | 87648819953a85c0abc01d3080475981 | mssql | 192.168.11.99 | wf_michelangelo | sa | mafe12345 | 1433 | utf8 | SQL Server connection | + Examples: + | dbs_uid_number | project | dbs_type | dbs_server | dbs_database_name | dbs_username | dbs_password | dbs_port | dbs_encode | dbs_description | + | 1 | 106912358530c9b14ac15d3001790900 | | | | | | | | | + | 2 | 1265557095225ff5c688f46031700471 | | | | | | | | | - Scenario Outline: Get the DataBase Connections List when there are exactly one DataBase Connections in each process - Given database-connection with id "" is active - And I request "project//database-connections" - Then the response status code should be 200 - And the response charset is "UTF-8" - And the response has record + # GET /api/1.0/{workspace}/project//database-connection + # Get DataBase Connections list of each process + Scenario Outline: Get the DataBase Connections List when there are exactly one DataBase Connections in each process + Given database-connection with id "" is active + And I request "project//database-connections" + Then the response status code should be 200 + And the response charset is "UTF-8" + And the response has record - Examples: + Examples: + | project | record | dbs_uid_number | + | 106912358530c9b14ac15d3001790900 | 1 | 1 | + | 1265557095225ff5c688f46031700471 | 1 | 2 | - | test_description | project | record | dbs_uid_number | - | List DB in the process Data Base Connenctions .pm | 74737540052e1641ab88249082085472 | 1 | 1 | - | List DB in the process testExecutionOfDerivationScreen .pmx | 87648819953a85c0abc01d3080475981 | 1 | 2 | - - Scenario Outline: Update a database connection - Given database-connection with id "" is active - And PUT this data: - """ + # PUT /api/1.0/{workspace}/project//database-connection + # Update a DataBase Connection + @SqlServerDbConnection + Scenario Outline: Update a database connection + Given database-connection with id "" is active + And PUT this data: + """ { "dbs_type": "", "dbs_server": "", @@ -106,66 +116,69 @@ Feature: DataBase Connections Main Tests SQL Server "dbs_description": "" } """ - And that I want to update a resource with the key "dbs_uid" stored in session array as variable "dbs_uid_" - And I request "project//database-connection" - Then the response status code should be 200 - And the response charset is "UTF-8" - And the type is "object" + And that I want to update a resource with the key "dbs_uid" stored in session array as variable "dbs_uid_" + And I request "project//database-connection" + Then the response status code should be 200 + And the response charset is "UTF-8" + And the type is "object" - Examples: - - | test_description | dbs_uid_number | project | dbs_type | dbs_server | dbs_database_name | dbs_username | dbs_password | dbs_port | dbs_encode | dbs_description | - | Update sql server db connection .pm | 1 | 74737540052e1641ab88249082085472 | mssql | 192.168.11.99 | wf_michelangelo | sa | mafe12345 | 1433 | utf8 | update SQL Server connection | - | Update sql server db connection .pmx | 2 | 87648819953a85c0abc01d3080475981 | mssql | 192.168.11.99 | wf_michelangelo | sa | mafe12345 | 1433 | utf8 | update SQL Server connection | + Examples: + | dbs_uid_number | project | dbs_type | dbs_server | dbs_database_name | dbs_username | dbs_password | dbs_port | dbs_encode | dbs_description | + | 1 | 106912358530c9b14ac15d3001790900 | | | | | | | | | + | 2 | 1265557095225ff5c688f46031700471 | | | | | | | | | - Scenario Outline: Get a single database connection and check some properties - Given database-connection with id "" is active - And that I want to get a resource with the key "dbs_uid" stored in session array as variable "dbs_uid_" - And I request "project//database-connection" - Then the response status code should be 200 - And the response charset is "UTF-8" - And the type is "object" - And that "dbs_type" is set to "" - And that "dbs_server" is set to "" - And that "dbs_database_name" is set to "" - And that "dbs_username" is set to "" - And that "dbs_password" is set to "" - And that "dbs_port" is set to "" - And that "dbs_encode" is set to "" - And that "dbs_description" is set to "" + # GET /api/1.0/{workspace}/project//database-connection + # Get a single DataBase Connection and their properties + @SqlServerDbConnection + Scenario Outline: Get a single database connection and check some properties + Given database-connection with id "" is active + And that I want to get a resource with the key "dbs_uid" stored in session array as variable "dbs_uid_" + And I request "project//database-connection" + Then the response status code should be 200 + And the response charset is "UTF-8" + And the type is "object" + And that "dbs_type" is set to "" + And that "dbs_server" is set to "" + And that "dbs_database_name" is set to "" + And that "dbs_username" is set to "" + And that "dbs_password" is set to "" + And that "dbs_port" is set to "" + And that "dbs_encode" is set to "" + And that "dbs_description" is set to "" - Examples: - - | test_description | dbs_uid_number | project | dbs_type | dbs_server | dbs_database_name | dbs_username | dbs_password | dbs_port | dbs_encode | dbs_description | - | Update sql server db connection .pm | 1 | 74737540052e1641ab88249082085472 | mssql | 192.168.11.99 | wf_michelangelo | sa | mafe12345 | 1433 | utf8 | update SQL Server connection | - | Update sql server db connection .pmx | 2 | 87648819953a85c0abc01d3080475981 | mssql | 192.168.11.99 | wf_michelangelo | sa | mafe12345 | 1433 | utf8 | update SQL Server connection | + Examples: + | dbs_uid_number | project | dbs_type | dbs_server | dbs_database_name | dbs_username | dbs_password | dbs_port | dbs_encode | dbs_description | + | 1 | 106912358530c9b14ac15d3001790900 | | | | | | | | | + | 2 | 1265557095225ff5c688f46031700471 | | | | | | | | | - Scenario Outline: Delete all Database Connection created previously in this script - Given database-connection with id "" is active - And that I want to delete a resource with the key "dbs_uid" stored in session array as variable "dbs_uid_" - And I request "project//database-connection" - Then the response status code should be 200 - And the response charset is "UTF-8" - And the type is "object" + # DELETE /api/1.0/{workspace}/project//database-connection + # Delete all DataBase Connections created in this script + Scenario Outline: Delete all Database Connection created in this script + Given database-connection with id "" is active + And that I want to delete a resource with the key "dbs_uid" stored in session array as variable "dbs_uid_" + And I request "project//database-connection" + Then the response status code should be 200 + And the response charset is "UTF-8" + And the type is "object" - Examples: + Examples: + | project | dbs_uid_number | + | 106912358530c9b14ac15d3001790900 | 1 | + | 1265557095225ff5c688f46031700471 | 2 | - | project | dbs_uid_number | - | 74737540052e1641ab88249082085472 | 1 | - | 87648819953a85c0abc01d3080475981 | 2 | - - Scenario Outline: Get the DataBase Connections List when there are exactly zero DataBase Connections - Given database-connection with id "" is active - And I request "project//database-connections" - Then the response status code should be 200 - And the response charset is "UTF-8" - And the response has record + # GET /api/1.0/{workspace}/project//database-connection + # Get DataBase Connections list + Scenario Outline: Get the DataBase Connections List when there are exactly zero DataBase Connections + Given database-connection with id "" is active + And I request "project//database-connections" + Then the response status code should be 200 + And the response charset is "UTF-8" + And the response has record - Examples: - - | test_description | project | record | dbs_uid_number | - | List DB in the process Data Base Connenctions .pm | 74737540052e1641ab88249082085472 | 0 | 1 | - | List DB in the process testExecutionOfDerivationScreen .pmx | 87648819953a85c0abc01d3080475981 | 0 | 2 | \ No newline at end of file + Examples: + | project | record | dbs_uid_number | + | 106912358530c9b14ac15d3001790900 | 0 | 1 | + | 1265557095225ff5c688f46031700471 | 0 | 2 | \ No newline at end of file diff --git a/features/backend/projects/database_connections/negative_tests_database_connections.feature b/features/backend/projects/database_connections/negative_tests_database_connections.feature index 755f2048c..fe76867bd 100644 --- a/features/backend/projects/database_connections/negative_tests_database_connections.feature +++ b/features/backend/projects/database_connections/negative_tests_database_connections.feature @@ -5,8 +5,8 @@ Feature: DataBase Connections Negative Tests Given that I have a valid access_token Scenario Outline: Test database connection to test - Given POST this data: - """ + Given POST this data: + """ { "dbs_type": "", "dbs_server": "", @@ -18,35 +18,38 @@ Feature: DataBase Connections Negative Tests "dbs_description": "" } """ - And I request "project//database-connection" - Then the response status code should be - And the response status message should have the following text "" - + And I request "project//database-connection" + Then the response status code should be + And the response status message should have the following text "" - Examples: - - | test_description | project | dbs_type | dbs_server | dbs_database_name | dbs_username | dbs_password | dbs_encode | dbs_description | error_code | error_message | - | Field required dbs_type | 74737540052e1641ab88249082085472 | | michelangelo-be.colosa.net | test | testuser | sample | utf8 | mysql connection | 400 | dbs_type | - | Field required dbs_server | 74737540052e1641ab88249082085472 | mysql | | test | testuser | sample | utf8 | mysql connection | 400 | dbs_server | - | Field required dbs_database_name | 74737540052e1641ab88249082085472 | mysql | michelangelo-be.colosa.net | | testuser | sample | utf8 | mysql connection | 400 | dbs_database_name | - | Field required dbs_encode | 74737540052e1641ab88249082085472 | mysql | michelangelo-be.colosa.net | test | testuser | sample | | mysql connection | 400 | dbs_encode | - | Field required project | | mysql | michelangelo-be.colosa.net | test | testuser | sample | utf8 | mysql connection | 400 | prj_uid | + Examples: + | test_description | project | dbs_type | dbs_server | dbs_database_name | dbs_username | dbs_password | dbs_port | dbs_encode | dbs_description | error_code | error_message | + | Field required dbs_type | 74737540052e1641ab88249082085472 | | | | | | | | mysql connection | 400 | dbs_type | + | Field required dbs_server | 74737540052e1641ab88249082085472 | | | | | | | | mysql connection | 400 | dbs_server | + | Field required dbs_database_name | 74737540052e1641ab88249082085472 | | | | | | | | mysql connection | 400 | dbs_database_name | + | Field required dbs_encode | 74737540052e1641ab88249082085472 | | | | | | | | mysql connection | 400 | dbs_encode | + | Field required project | | | | | | | | | mysql connection | 400 | prj_uid | - Scenario: Test database connection to test with parameter wrong port - Given POST this data: - """ - { - "dbs_type": "mysql", - "dbs_server": "michelangelo-be.colosa.net", - "dbs_database_name": "test", - "dbs_username": "testuser", - "dbs_password": "sample", - "dbs_port": 10000, - "dbs_encode": "utf8", - "dbs_description": "mysql connection" + Scenario Outline: Test database connection to test with parameter wrong port + Given POST this data: + """ + { + "dbs_type": "", + "dbs_server": "", + "dbs_database_name": "", + "dbs_username": "", + "dbs_password": "", + "dbs_port": , + "dbs_encode": "", + "dbs_description": "" } """ - And I request "project/74737540052e1641ab88249082085472/database-connection" - Then the response status code should be 400 - And the response status message should have the following text "port" \ No newline at end of file + And I request "project/74737540052e1641ab88249082085472/database-connection" + Then the response status code should be 400 + And the response status message should have the following text "port" + + Examples: + | dbs_type | dbs_server | dbs_database_name | dbs_username | dbs_password | dbs_port | dbs_encode | dbs_description | + | | | | | | | | | + | | | | | | | | | \ No newline at end of file diff --git a/features/bootstrap/RestContext.php b/features/bootstrap/RestContext.php index efdcf730c..4c4407f52 100644 --- a/features/bootstrap/RestContext.php +++ b/features/bootstrap/RestContext.php @@ -19,7 +19,6 @@ global $config; class RestContext extends BehatContext { - private $_startTime = null; private $_restObject = null; private $_headers = array(); @@ -56,16 +55,16 @@ class RestContext extends BehatContext $this->_client ->getEventDispatcher() ->addListener('request.error', - function (\Guzzle\Common\Event $event) { - switch ($event['response']->getStatusCode()) { - case 400: - case 401: - case 404: - case 405: - case 406: - $event->stopPropagation(); - } - }); + function (\Guzzle\Common\Event $event) { + switch ($event['response']->getStatusCode()) { + case 400: + case 401: + case 404: + case 405: + case 406: + $event->stopPropagation(); + } + }); $timezone = ini_get('date.timezone'); if (empty($timezone)) { date_default_timezone_set('UTC'); @@ -88,6 +87,52 @@ class RestContext extends BehatContext } } + /** + * @BeforeScenario @MysqlDbConnection + */ + public function verifyAllRequiredDataToConnectMysqlDB() + { + $db_parameters = array( + 'mys_db_type', + 'mys_db_server', + 'mys_db_name', + 'mys_db_username', + 'mys_db_password', + 'mys_db_port', + 'mys_db_encode', + 'mys_db_description'); + + foreach ($db_parameters as $value) { + $param = $this->getParameter($value); + if (!isset($param)){ + throw new PendingException("Parameter ".$value." is not defined or is empty, please review behat.yml file!"); + } + } + } + + /** + * @BeforeScenario @SqlServerDbConnection + */ + public function verifyAllRequiredDataToConnectSqlServerDB() + { + $db_parameters = array( + 'sqlsrv_db_type', + 'sqlsrv_db_server', + 'sqlsrv_db_name', + 'sqlsrv_db_username', + 'sqlsrv_db_password', + 'sqlsrv_db_port', + 'sqlsrv_db_encode', + 'sqlsrv_db_description'); + + foreach ($db_parameters as $value) { + $param = $this->getParameter($value); + if (!isset($param)){ + throw new PendingException("Parameter ".$value." is not defined or is empty, please review behat.yml file!"); + } + } + } + /** * ============ json array =================== * @Given /^that I send (\[[^]]*\])$/ @@ -316,11 +361,12 @@ class RestContext extends BehatContext $this->_headers['Content-Type'] = 'application/json; charset=utf-8'; $this->_requestBody = json_encode( is_object($this->_restObject) - ? (array)$this->_restObject - : $this->_restObject + ? (array)$this->_restObject + : $this->_restObject ); } + // BACKGROUND STEPS /** * @Given /^that I have a valid access_token$/ */ @@ -349,7 +395,7 @@ class RestContext extends BehatContext } } - + if($urlType=="absolute"){ @@ -379,11 +425,11 @@ class RestContext extends BehatContext case 'POST': $postFields = is_object($this->_restObject) ? (array)$this->_restObject - : $this->_restObject; + : $this->_restObject; $this->_request = $this->_client ->post($url, $this->_headers, - (empty($this->_requestBody) ? $postFields : - $this->_requestBody)); + (empty($this->_requestBody) ? $postFields : + $this->_requestBody)); $this->_response = $this->_request->send(); break; case 'PUT' : @@ -397,8 +443,8 @@ class RestContext extends BehatContext $this->printDebug("URL F: $url\n"); $this->_request = $this->_client ->put($url, $this->_headers, - (empty($this->_requestBody) ? $putFields : - $this->_requestBody)); + (empty($this->_requestBody) ? $putFields : + $this->_requestBody)); $this->_response = $this->_request->send(); break; case 'PATCH' : @@ -407,8 +453,8 @@ class RestContext extends BehatContext : $this->_restObject; $this->_request = $this->_client ->patch($url, $this->_headers, - (empty($this->_requestBody) ? $putFields : - $this->_requestBody)); + (empty($this->_requestBody) ? $putFields : + $this->_requestBody)); $this->_response = $this->_request->send(); break; case 'DELETE': @@ -946,7 +992,7 @@ class RestContext extends BehatContext public function theResponseStatusCodeShouldBe($httpStatus) { if(!(isset($this->_response))){ - throw new \Exception('HTTP code does not match ' . $httpStatus . + throw new \Exception('HTTP code does not match ' . $httpStatus . ' (actual: No response defined)' ); } @@ -998,6 +1044,19 @@ class RestContext extends BehatContext */ public function postThisData(PyStringNode $string) { + /* + * Overwrite the $this->_requestBody = $string; line in order to replace line by line with test data. + * */ + $linesValues = array(); + foreach ($string->getLines() as $line) { + foreach ($this->_parameters as $param => $value) { + $line = str_replace('<'.$param.'>', $value, $line); + } + $linesValues[] = $line; + } + $string->setLines($linesValues); + + $this->_restObjectMethod = 'post'; $this->_headers['Content-Type'] = 'application/json; charset=UTF-8'; $this->_requestBody = $string; @@ -1008,6 +1067,19 @@ class RestContext extends BehatContext */ public function putThisData(PyStringNode $string) { + /* + * Overwrite the $this->_requestBody = $string; line in order to replace line by line with test data. + * */ + $linesValues = array(); + foreach ($string->getLines() as $line) { + foreach ($this->_parameters as $param => $value) { + $line = str_replace('<'.$param.'>', $value, $line); + } + $linesValues[] = $line; + } + $string->setLines($linesValues); + + $this->_restObjectMethod = 'put'; $this->_headers['Content-Type'] = 'application/json; charset=UTF-8'; $this->_requestBody = $string; @@ -1016,7 +1088,7 @@ class RestContext extends BehatContext - /** + /** * @Given /^I want to Insert a new "([^"]*)" with:$/ */ public function iWantToInsertANewWith($url, PyStringNode $string) @@ -1056,7 +1128,7 @@ class RestContext extends BehatContext */ public function storeInAsVariable($varName, $sessionVarName) { - + if (!isset($this->_data->$varName)) { throw new \Exception("JSON Response does not have '$varName' property\n\n" ); } @@ -1084,49 +1156,49 @@ class RestContext extends BehatContext //*********** WEN /** - * @Given /^POST data from file "([^"]*)"$/ - */ + * @Given /^POST data from file "([^"]*)"$/ + */ public function postDataFromFile($jsonFile) { - $filePath = __DIR__ . "/../json/" . $jsonFile; + $filePath = __DIR__ . "/../json/" . $jsonFile; - if(file_exists($filePath)) - { - $fileData = file_get_contents($filePath); - $this->postThisData(new PyStringNode($fileData)); - } - else - { - throw new \Exception("JSON File: $filePath not found\n\n" ); - } - // throw new PendingException(); + if(file_exists($filePath)) + { + $fileData = file_get_contents($filePath); + $this->postThisData(new PyStringNode($fileData)); + } + else + { + throw new \Exception("JSON File: $filePath not found\n\n" ); + } + // throw new PendingException(); } /** - * @Given /^PUT data from file "([^"]*)"$/ - */ + * @Given /^PUT data from file "([^"]*)"$/ + */ public function putDataFromFile($jsonFile) { - $filePath = __DIR__ . "/../json/" . $jsonFile; + $filePath = __DIR__ . "/../json/" . $jsonFile; - if(file_exists($filePath)) - { - $fileData = file_get_contents($filePath); - $this->putThisData(new PyStringNode($fileData)); - } - else - { - throw new \Exception("JSON File: $filePath not found\n\n" ); - } - // throw new PendingException(); + if(file_exists($filePath)) + { + $fileData = file_get_contents($filePath); + $this->putThisData(new PyStringNode($fileData)); + } + else + { + throw new \Exception("JSON File: $filePath not found\n\n" ); + } + // throw new PendingException(); } /** - * @Given /^This scenario is not implemented yet$/ - * @Given /^this scenario is not implemented yet$/ - */ + * @Given /^This scenario is not implemented yet$/ + * @Given /^this scenario is not implemented yet$/ + */ public function thisScenarioIsNotImplementedYet() { - throw new PendingException(); + throw new PendingException(); } /** @@ -1145,7 +1217,7 @@ class RestContext extends BehatContext }else{ $data = $this->_data; } - + if (!is_array($data)) { if ($quantityOfRecords == 0) { //if we expect 0 records and the response in fact is not an array, just return as a valid test @@ -1178,7 +1250,7 @@ class RestContext extends BehatContext if($key == $position){ $varValue = $value; } - } + } } else { $varValue = $sessionData->$sessionVarName; } @@ -1187,13 +1259,13 @@ class RestContext extends BehatContext $this->_restObjectMethod = 'put'; } - /** + /** * @Given /^that I want to get a resource with the key "([^"]*)" stored in session array as variable "([^"]*)"$/ * @Given /^that I want to get a resource with the key "([^"]*)" stored in session array as variable "([^"]*)" in position (\d+)$/ */ public function thatIWantToGetAResourceWithTheKeyStoredInSessionArrayAsVariable($varName, $sessionVarName, $position=null) { - if (file_exists("session.data")) { + if (file_exists("session.data")) { $sessionData = json_decode(file_get_contents("session.data")); } else { $sessionData = array(); @@ -1240,11 +1312,11 @@ class RestContext extends BehatContext $this->_restDeleteQueryStringSuffix = "/" . $varValue; $this->printDebug("$varName = $varValue\nsessionVarName = $sessionVarName\n"); - + $this->_restObjectMethod = 'delete'; } - /** + /** * @Given /^the response status message should have the following text "([^"]*)"$/ */ public function theResponseStatusMessageShouldHaveTheFollowingText($arg1) @@ -1262,13 +1334,13 @@ class RestContext extends BehatContext $error_found=false; $messages = array(); foreach($bodyResponse as $resp){ - if(isset($resp->error)){ + if(isset($resp->error)){ $messages[]=$resp->error; if (strpos($resp->error,$arg1) !== false){ $error_found=true; } } - + } if(!$error_found){ $message=implode("\n- ",$messages); @@ -1288,7 +1360,7 @@ class RestContext extends BehatContext } - /** + /** * @Given /^I request "([^"]*)" with the key "([^"]*)" stored in session array as variable "([^"]*)"$/ * @Given /^I request "([^"]*)" with the key "([^"]*)" stored in session array as variable "([^"]*)" and url is "([^"]*)"$/ * @Given /^I request "([^"]*)" with the key "([^"]*)" stored in session array as variable "([^"]*)"$/ @@ -1349,7 +1421,7 @@ class RestContext extends BehatContext } - /** + /** * @Given /^the property "([^"]*)" of "([^"]*)" is set to "([^"]*)"$/ */ public function thePropertyOfIsSetTo($propertyName, $objName, $propertyValue) @@ -1400,8 +1472,8 @@ class RestContext extends BehatContext //UPLOAD FILE MANAGER /** - * @Given /^POST I want to upload the file "([^"]*)" to path "([^"]*)". Url "([^"]*)"$/ - */ + * @Given /^POST I want to upload the file "([^"]*)" to path "([^"]*)". Url "([^"]*)"$/ + */ public function postIWantToUploadTheFileToPathPublicUrl($prfFile, $prfPath, $url) { $prfFile = $this->getParameter('uploadFilesFolder') . $prfFile; @@ -1410,9 +1482,9 @@ class RestContext extends BehatContext $headr[] = 'Authorization: Bearer '.$accesstoken; $path = rtrim($prfPath, '/') . '/'; $sfile = end(explode("/",$prfFile)); - + $postFields = array('prf_filename'=>$sfile, "prf_path" => $path); - + $this->_restObjectMethod = 'post'; $this->_restObject = $postFields; $this->iRequest($url); @@ -1433,20 +1505,20 @@ class RestContext extends BehatContext curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $postResult = curl_exec($ch); curl_close($ch); - } - + } + } //UPLOAD IMAGE /** - * @Given /^POST I want to upload the image "([^"]*)" to user "([^"]*)". Url "([^"]*)"$/ - */ + * @Given /^POST I want to upload the image "([^"]*)" to user "([^"]*)". Url "([^"]*)"$/ + */ public function postIWantToUploadTheImageToUser($imageFile, $usrUid, $url) { $imageFile = $this->getParameter('uploadFilesFolder') . $imageFile; $baseUrl = $this->getParameter('base_url'); $url = $baseUrl.$url.$usrUid."/image-upload"; - + $accesstoken = $this->getParameter('access_token'); $headr = array(); $headr[] = 'Authorization: Bearer '.$accesstoken; @@ -1457,18 +1529,18 @@ class RestContext extends BehatContext curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $postResult = curl_exec($ch); - - if( $postResult === false) - { - //trigger_error(curl_error($ch)); - throw new Exception("Image upload failed ($imageFile):\n\n" - . curl_error($ch)); - } + + if( $postResult === false) + { + //trigger_error(curl_error($ch)); + throw new Exception("Image upload failed ($imageFile):\n\n" + . curl_error($ch)); + } curl_close($ch); echo $postResult; } - /** + /** * @Given /^POST I want to upload the image "([^"]*)" to user with the key "([^"]*)" stored in session array as variable "([^"]*)"\. Url "([^"]*)"$/ */ public function postIWantToUploadTheImageToUserWithTheKeyStoredInSessionArrayAsVariableUsrUidUrl($imageFile, $varName, $sessionVarName, $url) @@ -1498,7 +1570,7 @@ class RestContext extends BehatContext $this->_restObjectMethod = 'delete'; } - /** + /** * @Given /^store response count in session variable as "([^"]*)"$/ */ public function storeResponseCountInSessionVariableAs($varName) @@ -1514,7 +1586,7 @@ class RestContext extends BehatContext file_put_contents("session.data", json_encode($sessionData)); } - + /** * @Given /^the response has (\d+) records more than "([^"]*)"$/ */ @@ -1537,7 +1609,7 @@ class RestContext extends BehatContext } - /** + /** * @Given /^POST upload an input document "([^"]*)" to "([^"]*)"$/ */ public function postUploadAnInputDocumentTo($file, $url, PyStringNode $string) @@ -1545,12 +1617,12 @@ class RestContext extends BehatContext $file = $this->getParameter('uploadFilesFolder') . $file; $postFields = json_decode($string); $postFields->form ='@'.$file; - + $this->_restObjectMethod = 'post'; $this->_restObject = $postFields; $this->iRequest($url); - + } /** @@ -1561,11 +1633,11 @@ class RestContext extends BehatContext $file = $this->getParameter('uploadFilesFolder') . $file; $postFields = new StdClass(); $postFields->project_file ='@'.$file; - + $this->_restObjectMethod = 'post'; $this->_restObject = $postFields; $this->iRequest($url); - + } @@ -1617,7 +1689,7 @@ class RestContext extends BehatContext } } - /** + /** * @Given /^store "([^"]*)" in session array as variable "([^"]*)" where an object has "([^"]*)" equal to "([^"]*)"$/ */ public function storeInSessionArrayAsVariableWhereAnObjectHasEqualsTo($varName, $sessionVarName, $objectProperty, $objectValue) @@ -1625,19 +1697,19 @@ class RestContext extends BehatContext $swFound=false; if (file_exists("session.data")) { - $sessionData = json_decode(file_get_contents("session.data")); - } else { - $sessionData = new StdClass(); - } + $sessionData = json_decode(file_get_contents("session.data")); + } else { + $sessionData = new StdClass(); + } - $sessionData->$sessionVarName = array(); + $sessionData->$sessionVarName = array(); foreach($this->_data as $obj){ if((isset($obj->$objectProperty))&&($obj->$objectProperty == $objectValue)){ $swFound=true; $varValue = $obj->$varName; - + //$sessionData->$sessionVarName = $varValue; $sessionData->{$sessionVarName}[] = $varValue; file_put_contents("session.data", json_encode($sessionData)); @@ -1650,7 +1722,7 @@ class RestContext extends BehatContext } } - /** + /** * @Given /^that "([^"]*)" property in object "([^"]*)" equals "([^"]*)"$/ */ public function thatPropertyInObjectEquals($propertyName, $propertyParent, $value) @@ -1694,9 +1766,9 @@ class RestContext extends BehatContext . $this->_response->getBody(true)); } - + } - /** + /** * @Given /^save exported process to "([^"]*)"$/ * @Given /^save exported process to "([^"]*)" as "([^"]*)"$/ */ @@ -1722,18 +1794,18 @@ class RestContext extends BehatContext } - /** + /** * @Given /^POST a dynaform:$/ */ public function postADynaform(PyStringNode $string) { $postFields = json_decode($string); - + if ((isset($postFields->dyn_content))&&(file_exists($this->getParameter('uploadFilesFolder') . $postFields->dyn_content))) { $postFields->dyn_content = $this->getParameter('uploadFilesFolder') . $postFields->dyn_content; $this->printDebug("Extracting dyanform content from: ".$postFields->dyn_content."\n"); $postFields->dyn_content = file_get_contents($postFields->dyn_content); - + $string = json_encode($postFields); } @@ -1755,7 +1827,7 @@ class RestContext extends BehatContext $postFields->dyn_content = $this->getParameter('uploadFilesFolder') . $postFields->dyn_content; $this->printDebug("Extracting dyanform content from: ".$postFields->dyn_content."\n"); $postFields->dyn_content = file_get_contents($postFields->dyn_content); - + $string = json_encode($postFields); } @@ -1775,17 +1847,17 @@ class RestContext extends BehatContext $fp = fopen(sys_get_temp_dir() . "/behat.log", "a+"); fwrite($fp, $string . PHP_EOL); } - /** + /** * @Then /^if database-connection with id "([^"]*)" is active$/ */ public function ifDatabaseConnectionWithIdIsActive($dbConnectionId) { if(!(isset($this->_response))){ - throw new \Exception('Empty result ' ); + throw new \Exception('Empty result ' ); } $message=""; $sw_error=false; - if($bodyResponse=json_decode($this->_response->getBody(true))){ + if($bodyResponse=json_decode($this->_response->getBody(true))){ //print_r($bodyResponse); foreach($bodyResponse as $testDetail){ $message.=$testDetail->test; @@ -1798,22 +1870,21 @@ class RestContext extends BehatContext $message.=" | "; } - }else{ - throw new \Exception('Empty result ' ); - } - - if (file_exists("session.data")) { - $sessionData = json_decode(file_get_contents("session.data")); - } else { - $sessionData = new StdClass(); - } - if(!isset($sessionData->dbconnectionStatus)){ - $sessionData->dbconnectionStatus = new StdClass(); - } - $sessionData->dbconnectionStatus->$dbConnectionId = !$sw_error; - file_put_contents("session.data", json_encode($sessionData)); - if($sw_error){ + }else{ + throw new \Exception('Empty result ' ); + } + if (file_exists("session.data")) { + $sessionData = json_decode(file_get_contents("session.data")); + } else { + $sessionData = new StdClass(); + } + if(!isset($sessionData->dbconnectionStatus)){ + $sessionData->dbconnectionStatus = new StdClass(); + } + $sessionData->dbconnectionStatus->$dbConnectionId = !$sw_error; + file_put_contents("session.data", json_encode($sessionData)); + if($sw_error){ throw new PendingException($message); } } @@ -1822,19 +1893,18 @@ class RestContext extends BehatContext */ public function databaseConnectionWithIdIsActive($dbConnectionId) { - if (file_exists("session.data")) { - $sessionData = json_decode(file_get_contents("session.data")); - } else { - $sessionData = new StdClass(); - } - - if(!$sessionData->dbconnectionStatus->$dbConnectionId){ - + if (file_exists("session.data")) { + $sessionData = json_decode(file_get_contents("session.data")); + } else { + $sessionData = new StdClass(); + } + $sessionData = new StdClass(); + if(!$sessionData->dbconnectionStatus->$dbConnectionId){ throw new PendingException("Skip inactive dbconnection: $dbConnectionId"); } } - /** + /** * @Given /^OAUTH register an application$/ */ public function oauthRegisterAnApplication(PyStringNode $data) @@ -1845,137 +1915,137 @@ class RestContext extends BehatContext $authentication_url = $this->getParameter('authentication_url'); $oauth_app_url = $this->getParameter('oauth_app_url'); $oauth_authorization_url = $this->getParameter('oauth_authorization_url'); - + $user_name = $this->getParameter('user_name'); $user_password = $this->getParameter('user_password'); $cookie_file = sys_get_temp_dir()."pmcookie"; - - - - $ch = curl_init(); - curl_setopt($ch, CURLOPT_URL, $authentication_url); - curl_setopt($ch, CURLOPT_REFERER, $login_url); - curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/32.0.1700.107 Chrome/32.0.1700.107 Safari/537.36'); - curl_setopt($ch, CURLOPT_POST, true); - curl_setopt($ch, CURLOPT_POSTFIELDS, "form[USR_USERNAME]=$user_name&form[USR_PASSWORD]=$user_password&form[USER_LANG]=en&form[URL]"); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch, CURLOPT_COOKIESESSION, true); - curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); - curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); - curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); - $answer = curl_exec($ch); - $newurl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); - - - if (strpos($newurl, "/login/login") !== false) { - throw new Exception('Bad credentials'); - } - //print ""; - if (curl_error($ch)) { - throw new Exception(curl_error($ch)); - } + + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, $authentication_url); + curl_setopt($ch, CURLOPT_REFERER, $login_url); + curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/32.0.1700.107 Chrome/32.0.1700.107 Safari/537.36'); + curl_setopt($ch, CURLOPT_POST, true); + curl_setopt($ch, CURLOPT_POSTFIELDS, "form[USR_USERNAME]=$user_name&form[USR_PASSWORD]=$user_password&form[USER_LANG]=en&form[URL]"); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_COOKIESESSION, true); + curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); + curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); + curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); + $answer = curl_exec($ch); + $newurl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); - // Read the session saved in the cookie file - - if(!file_exists($cookie_file)){ - throw new Exception('Invalid Cookie/Session: '.$cookie_file); - } - + if (strpos($newurl, "/login/login") !== false) { + throw new Exception('Bad credentials'); + } - //another request preserving the session + //print ""; + if (curl_error($ch)) { + throw new Exception(curl_error($ch)); + } - $data = json_decode((string) $data); - - $name=$data->name; - $description=$data->description; - $webSite = $data->webSite; - $redirectUri=$data->redirectUri; - $applicationNumber=$data->applicationNumber; - //1. Register application - curl_setopt($ch, CURLOPT_URL, $oauth_app_url); - curl_setopt($ch, CURLOPT_POST, true); - curl_setopt($ch, CURLOPT_POSTFIELDS, "option=INS&name=$name&description=$description&webSite=$webSite&redirectUri=$redirectUri"); - $answer = curl_exec($ch); - if (curl_error($ch)) { - throw new Exception(curl_error($ch)); - } - $newurl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); + // Read the session saved in the cookie file - if (strpos($newurl, "/login/login") !== false) { - throw new Exception('Not authenticated'); - } - // json_decode(json) - $response=json_decode($answer); - $this->printDebug("Register application:\n".$answer."\n"); - $this->_restObjectMethod = 'post'; - $this->_headers['Content-Type'] = 'application/json; charset=UTF-8'; - $this->_response = json_decode($answer); + if(!file_exists($cookie_file)){ + throw new Exception('Invalid Cookie/Session: '.$cookie_file); + } - - if (file_exists("session.data")) { - $sessionData = json_decode(file_get_contents("session.data")); - } else { - $sessionData = new StdClass(); - } - foreach($response->data as $key => $varValue){ - $sessionVarName=$key."_".$applicationNumber; - $sessionData->$sessionVarName = $varValue; - $this->printDebug("Save $sessionVarName = $varValue"); - } - //print_r($sessionData); - - $clientId = $response->data->CLIENT_ID; - $clientSecret = $response->data->CLIENT_SECRET; - //2. Request Authorization - curl_setopt($ch, CURLOPT_URL, $oauth_authorization_url."?"."response_type=code&client_id=$clientId&scope=*"); - curl_setopt($ch, CURLOPT_POST, true); - curl_setopt($ch, CURLOPT_POSTFIELDS, "allow=Accept&transaction_id="); - //print "response_type=code&client_id=$clientId&scope=*"; - $answer = curl_exec($ch); - if (curl_error($ch)) { - throw new Exception(curl_error($ch)); - } - $newurl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); - $codeA = explode("code=",$newurl); - - $code = $codeA[1]; - $this->printDebug("Authorization code:\n".$code."\n"); - //3. Request Token - $headr = array(); - $headr[] = 'Content-Type: application/json'; - $headr[] = 'Authorization: Basic '.base64_encode("$clientId:$clientSecret"); + //another request preserving the session - curl_setopt($ch, CURLOPT_HTTPHEADER,$headr); - //curl_setopt($ch, CURLOPT_HEADER, false); - curl_setopt($ch, CURLOPT_URL, $baseUrl."oauth2/token"); - //curl_setopt($ch, CURLOPT_USERPWD, "$clientId:$clientSecret"); - curl_setopt($ch, CURLOPT_POST, true); - curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(array("grant_type"=>"authorization_code","code"=>$code))); + $data = json_decode((string) $data); + + $name=$data->name; + $description=$data->description; + $webSite = $data->webSite; + $redirectUri=$data->redirectUri; + $applicationNumber=$data->applicationNumber; + + //1. Register application + curl_setopt($ch, CURLOPT_URL, $oauth_app_url); + curl_setopt($ch, CURLOPT_POST, true); + curl_setopt($ch, CURLOPT_POSTFIELDS, "option=INS&name=$name&description=$description&webSite=$webSite&redirectUri=$redirectUri"); + $answer = curl_exec($ch); + if (curl_error($ch)) { + throw new Exception(curl_error($ch)); + } + $newurl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); + + if (strpos($newurl, "/login/login") !== false) { + throw new Exception('Not authenticated'); + } + // json_decode(json) + $response=json_decode($answer); + $this->printDebug("Register application:\n".$answer."\n"); + $this->_restObjectMethod = 'post'; + $this->_headers['Content-Type'] = 'application/json; charset=UTF-8'; + $this->_response = json_decode($answer); + + + if (file_exists("session.data")) { + $sessionData = json_decode(file_get_contents("session.data")); + } else { + $sessionData = new StdClass(); + } + foreach($response->data as $key => $varValue){ + $sessionVarName=$key."_".$applicationNumber; + $sessionData->$sessionVarName = $varValue; + $this->printDebug("Save $sessionVarName = $varValue"); + } + //print_r($sessionData); + + $clientId = $response->data->CLIENT_ID; + $clientSecret = $response->data->CLIENT_SECRET; + + //2. Request Authorization + curl_setopt($ch, CURLOPT_URL, $oauth_authorization_url."?"."response_type=code&client_id=$clientId&scope=*"); + curl_setopt($ch, CURLOPT_POST, true); + curl_setopt($ch, CURLOPT_POSTFIELDS, "allow=Accept&transaction_id="); + //print "response_type=code&client_id=$clientId&scope=*"; + $answer = curl_exec($ch); + if (curl_error($ch)) { + throw new Exception(curl_error($ch)); + } + $newurl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); + $codeA = explode("code=",$newurl); + + $code = $codeA[1]; + $this->printDebug("Authorization code:\n".$code."\n"); + + //3. Request Token + $headr = array(); + $headr[] = 'Content-Type: application/json'; + $headr[] = 'Authorization: Basic '.base64_encode("$clientId:$clientSecret"); + + curl_setopt($ch, CURLOPT_HTTPHEADER,$headr); + //curl_setopt($ch, CURLOPT_HEADER, false); + curl_setopt($ch, CURLOPT_URL, $baseUrl."oauth2/token"); + //curl_setopt($ch, CURLOPT_USERPWD, "$clientId:$clientSecret"); + curl_setopt($ch, CURLOPT_POST, true); + curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(array("grant_type"=>"authorization_code","code"=>$code))); + + $answer = curl_exec($ch); + if (curl_error($ch)) { + throw new Exception(curl_error($ch)); + } + $newurl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); + $this->printDebug("Request token:\n".$answer."\n"); + //print_r("Request token:\n".$newurl."\n"); + foreach(json_decode($answer) as $key => $varValue){ + $sessionVarName=$key."_".$applicationNumber; + $sessionData->$sessionVarName = $varValue; + $this->printDebug("Save $sessionVarName = $varValue"); + } + file_put_contents("session.data", json_encode($sessionData)); - $answer = curl_exec($ch); - if (curl_error($ch)) { - throw new Exception(curl_error($ch)); - } - $newurl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); - $this->printDebug("Request token:\n".$answer."\n"); - //print_r("Request token:\n".$newurl."\n"); - foreach(json_decode($answer) as $key => $varValue){ - $sessionVarName=$key."_".$applicationNumber; - $sessionData->$sessionVarName = $varValue; - $this->printDebug("Save $sessionVarName = $varValue"); - } -file_put_contents("session.data", json_encode($sessionData)); - } -/** + /** * @Given /^I request a owner password credential grant$/ */ public function iRequestAOwnerPasswordCredentialGrant() @@ -1995,7 +2065,7 @@ file_put_contents("session.data", json_encode($sessionData)); throw new Exception($this->_data->error." : ".$this->_data->error_description); } } - /** + /** * @Given /^I request a client credential grant$/ */ public function iRequestAClientCredentialGrant() @@ -2015,7 +2085,7 @@ file_put_contents("session.data", json_encode($sessionData)); throw new Exception($this->_data->error." : ".$this->_data->error_description); } } - /** + /** * @Given /^I request a refresh token for "([^"]*)"$/ */ public function iRequestARefreshToken($refreshTokenSession) @@ -2028,7 +2098,7 @@ file_put_contents("session.data", json_encode($sessionData)); $this->printDebug("Refresh token"); $headr = array(); - + $request=array(); $request['grant_type']="refresh_token"; if (file_exists("session.data")) { @@ -2048,7 +2118,7 @@ file_put_contents("session.data", json_encode($sessionData)); $headr['Authorization'] = 'Basic '.base64_encode("$clientId:$clientSecret"); $request['refresh_token']=$varValue; $this->_requestBody=json_encode($request); -print_r($this->_requestBody); + print_r($this->_requestBody); $this->iRequest($baseUrl."oauth2/token", "absolute", $headr); print_r($this->_data); if(isset($this->_data->error)){ @@ -2056,7 +2126,7 @@ print_r($this->_requestBody); } } - /** + /** * @Given /^OAUTH request implicit grant$/ */ public function oauthRequestImplicitGrant(PyStringNode $data) @@ -2067,12 +2137,12 @@ print_r($this->_requestBody); $authentication_url = $this->getParameter('authentication_url'); $oauth_app_url = $this->getParameter('oauth_app_url'); $oauth_authorization_url = $this->getParameter('oauth_authorization_url'); - + $user_name = $this->getParameter('user_name'); $user_password = $this->getParameter('user_password'); $cookie_file = sys_get_temp_dir()."pmcookie"; - - + + $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $authentication_url); @@ -2082,15 +2152,15 @@ print_r($this->_requestBody); curl_setopt($ch, CURLOPT_POSTFIELDS, "form[USR_USERNAME]=$user_name&form[USR_PASSWORD]=$user_password&form[USER_LANG]=en&form[URL]"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_COOKIESESSION, true); - curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); + curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); $answer = curl_exec($ch); - $newurl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); - + $newurl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); + //print_r($newurl); if (strpos($newurl, "/login/login") !== false) { - throw new Exception('Bad credentials'); + throw new Exception('Bad credentials'); } @@ -2101,7 +2171,7 @@ print_r($this->_requestBody); // Read the session saved in the cookie file - + if(!file_exists($cookie_file)){ throw new Exception('Invalid Cookie/Session: '.$cookie_file); } @@ -2109,12 +2179,12 @@ print_r($this->_requestBody); //another request preserving the session $data = json_decode((string) $data); - + $response_type=$data->response_type; $client_id=$data->client_id; $scope = $data->scope; - $implicit_grant_number = $data->implicit_grant_number; - + $implicit_grant_number = $data->implicit_grant_number; + //1. Register application curl_setopt($ch, CURLOPT_URL, $oauth_authorization_url."?response_type=$response_type&client_id=$client_id&scope=$scope"); @@ -2125,30 +2195,30 @@ print_r($this->_requestBody); if (curl_error($ch)) { throw new Exception(curl_error($ch)); } - $newurl = urldecode(curl_getinfo($ch, CURLINFO_EFFECTIVE_URL)); + $newurl = urldecode(curl_getinfo($ch, CURLINFO_EFFECTIVE_URL)); if (strpos($newurl, "/login/login") !== false) { - throw new Exception('Not authenticated'); + throw new Exception('Not authenticated'); } $parts = parse_url($newurl); - + parse_str($parts['fragment'], $fragment); //print_r($fragment); - // json_decode(json) + // json_decode(json) $response=json_decode($answer); if (file_exists("session.data")) { - $sessionData = json_decode(file_get_contents("session.data")); - } else { - $sessionData = new StdClass(); - } - foreach($fragment as $key => $varValue){ - $sessionVarName=$key."_".$implicit_grant_number; - $sessionData->$sessionVarName = $varValue; - } - //print_r($sessionData); - file_put_contents("session.data", json_encode($sessionData)); + $sessionData = json_decode(file_get_contents("session.data")); + } else { + $sessionData = new StdClass(); + } + foreach($fragment as $key => $varValue){ + $sessionVarName=$key."_".$implicit_grant_number; + $sessionData->$sessionVarName = $varValue; + } + //print_r($sessionData); + file_put_contents("session.data", json_encode($sessionData)); //print_r("\nRegister application:\n".$answer."\n$oauth_authorization_url?response_type=$response_type&client_id=$client_id&scope=$scope\n"); //print_r($newurl); $this->_restObjectMethod = 'post'; @@ -2158,7 +2228,7 @@ print_r($this->_requestBody); } - /** + /** * @Given /^that I assign an access token from session variable "([^"]*)"$/ */ public function thatIAssignAnAccessTokenFromSessionVariable($varName) @@ -2172,17 +2242,17 @@ print_r($this->_requestBody); $varValue = ''; } else { $varValue = $sessionData->$varName; - } + } $access_token = $varValue; if (strlen($access_token)<= 10) { - + throw new Exception ("Access token is not valid\n\n" ); } $this->printDebug("Access token set to: $access_token"); $this->access_token = $access_token; } - + } \ No newline at end of file diff --git a/workflow/engine/classes/class.pluginRegistry.php b/workflow/engine/classes/class.pluginRegistry.php index 01ce7de33..c95d22407 100755 --- a/workflow/engine/classes/class.pluginRegistry.php +++ b/workflow/engine/classes/class.pluginRegistry.php @@ -1150,19 +1150,17 @@ class PMPluginRegistry public function setupPlugins () { try { + require_once(PATH_CORE . "methods" . PATH_SEP . "enterprise" . PATH_SEP . "enterprise.php"); + require_once("class.serverConfiguration.php"); + $iPlugins = 0; - require_once ( 'class.serverConfiguration.php' ); $oServerConf = & serverConf::getSingleton(); $oServerConf->addPlugin( SYS_SYS, $this->_aPluginDetails ); foreach ($this->_aPluginDetails as $namespace => $detail) { if (isset( $detail->enabled ) && $detail->enabled) { if (! empty( $detail->sFilename ) && file_exists( $detail->sFilename )) { - if (strpos( $detail->sFilename, PATH_SEP ) !== false) { - $aux = explode( PATH_SEP, $detail->sFilename ); - } else { - $aux = explode( chr( 92 ), $detail->sFilename ); - } - $sFilename = (($detail->sNamespace == 'enterprise') ? PATH_CORE. 'methods' . PATH_SEP . 'enterprise' . PATH_SEP : PATH_PLUGINS) . $aux[count( $aux ) - 1]; + $arrayFileInfo = pathinfo($detail->sFilename); + $sFilename = (($detail->sNamespace == "enterprise")? PATH_CORE. "methods" . PATH_SEP . "enterprise" . PATH_SEP : PATH_PLUGINS) . $arrayFileInfo["basename"]; if (! file_exists( $sFilename )) { continue; } @@ -1186,7 +1184,6 @@ class PMPluginRegistry G::RenderPage( 'publish' ); die(); } - } /**