diff --git a/src/ui/lib/zcl_abapgit_html_form_utils.clas.testclasses.abap b/src/ui/lib/zcl_abapgit_html_form_utils.clas.testclasses.abap
index e41fbbd60..dd450dee4 100644
--- a/src/ui/lib/zcl_abapgit_html_form_utils.clas.testclasses.abap
+++ b/src/ui/lib/zcl_abapgit_html_form_utils.clas.testclasses.abap
@@ -105,57 +105,6 @@ CLASS ltcl_popups_mock IMPLEMENTATION.
ENDCLASS.
-CLASS ltcl_sapgui_mock DEFINITION FINAL FOR TESTING
- DURATION SHORT
- RISK LEVEL HARMLESS.
-
- PUBLIC SECTION.
-
- INTERFACES:
- zif_abapgit_frontend_services.
-
-ENDCLASS.
-
-CLASS ltcl_sapgui_mock IMPLEMENTATION.
-
- METHOD zif_abapgit_frontend_services~clipboard_export.
- ENDMETHOD.
- METHOD zif_abapgit_frontend_services~directory_browse.
- ENDMETHOD.
- METHOD zif_abapgit_frontend_services~directory_create.
- ENDMETHOD.
- METHOD zif_abapgit_frontend_services~directory_exist.
- ENDMETHOD.
- METHOD zif_abapgit_frontend_services~execute.
- ENDMETHOD.
- METHOD zif_abapgit_frontend_services~file_download.
- ENDMETHOD.
- METHOD zif_abapgit_frontend_services~file_upload.
- ENDMETHOD.
- METHOD zif_abapgit_frontend_services~get_file_separator.
- ENDMETHOD.
- METHOD zif_abapgit_frontend_services~get_gui_version.
- ENDMETHOD.
- METHOD zif_abapgit_frontend_services~get_system_directory.
- ENDMETHOD.
- METHOD zif_abapgit_frontend_services~gui_is_available.
- ENDMETHOD.
- METHOD zif_abapgit_frontend_services~is_sapgui_for_java.
- ENDMETHOD.
- METHOD zif_abapgit_frontend_services~is_sapgui_for_windows.
- ENDMETHOD.
- METHOD zif_abapgit_frontend_services~is_webgui.
- rv_is_webgui = abap_false.
- ENDMETHOD.
- METHOD zif_abapgit_frontend_services~open_ie_devtools.
- ENDMETHOD.
- METHOD zif_abapgit_frontend_services~show_file_open_dialog.
- ENDMETHOD.
- METHOD zif_abapgit_frontend_services~show_file_save_dialog.
- ENDMETHOD.
-
-ENDCLASS.
-
CLASS ltcl_test_form DEFINITION
FOR TESTING
RISK LEVEL HARMLESS
@@ -165,7 +114,7 @@ CLASS ltcl_test_form DEFINITION
PRIVATE SECTION.
DATA:
mo_popups_mock TYPE REF TO ltcl_popups_mock,
- mo_sapgui_mock TYPE REF TO ltcl_sapgui_mock.
+ mo_sapgui_mock TYPE REF TO zif_abapgit_frontend_services.
METHODS setup.
METHODS validate1 FOR TESTING RAISING zcx_abapgit_exception.
@@ -186,8 +135,8 @@ CLASS ltcl_test_form IMPLEMENTATION.
CREATE OBJECT mo_popups_mock TYPE ltcl_popups_mock.
zcl_abapgit_ui_injector=>set_popups( mo_popups_mock ).
- CREATE OBJECT mo_sapgui_mock TYPE ltcl_sapgui_mock.
- zcl_abapgit_ui_injector=>set_frontend_services( mo_sapgui_mock ).
+ " Disable GUI
+ mo_sapgui_mock = zcl_abapgit_ui_factory=>get_frontend_services( abap_true ).
ENDMETHOD.
diff --git a/src/ui/pages/zcl_abapgit_gui_page_sett_remo.clas.testclasses.abap b/src/ui/pages/zcl_abapgit_gui_page_sett_remo.clas.testclasses.abap
index 477cdedaf..ff9452805 100644
--- a/src/ui/pages/zcl_abapgit_gui_page_sett_remo.clas.testclasses.abap
+++ b/src/ui/pages/zcl_abapgit_gui_page_sett_remo.clas.testclasses.abap
@@ -24,19 +24,6 @@ CLASS ltd_branch_list DEFINITION FINAL FOR TESTING INHERITING FROM zcl_abapgit_g
ENDCLASS.
-CLASS ltd_frontend_services DEFINITION FINAL FOR TESTING
- DURATION SHORT
- RISK LEVEL HARMLESS.
-
- PUBLIC SECTION.
-
- INTERFACES:
- zif_abapgit_frontend_services.
-
-ENDCLASS.
-
-
-
CLASS ltcl_validate_form DEFINITION FINAL FOR TESTING
DURATION SHORT
RISK LEVEL HARMLESS.
@@ -127,62 +114,6 @@ CLASS ltd_branch_list IMPLEMENTATION.
ENDCLASS.
-CLASS ltd_frontend_services IMPLEMENTATION.
-
- METHOD zif_abapgit_frontend_services~clipboard_export.
- ENDMETHOD.
-
- METHOD zif_abapgit_frontend_services~directory_browse.
- ENDMETHOD.
-
- METHOD zif_abapgit_frontend_services~directory_create.
- ENDMETHOD.
-
- METHOD zif_abapgit_frontend_services~directory_exist.
- ENDMETHOD.
-
- METHOD zif_abapgit_frontend_services~execute.
- ENDMETHOD.
-
- METHOD zif_abapgit_frontend_services~file_download.
- ENDMETHOD.
-
- METHOD zif_abapgit_frontend_services~file_upload.
- ENDMETHOD.
-
- METHOD zif_abapgit_frontend_services~get_file_separator.
- ENDMETHOD.
-
- METHOD zif_abapgit_frontend_services~get_gui_version.
- ENDMETHOD.
-
- METHOD zif_abapgit_frontend_services~get_system_directory.
- ENDMETHOD.
-
- METHOD zif_abapgit_frontend_services~gui_is_available.
- ENDMETHOD.
-
- METHOD zif_abapgit_frontend_services~is_sapgui_for_java.
- ENDMETHOD.
-
- METHOD zif_abapgit_frontend_services~is_sapgui_for_windows.
- ENDMETHOD.
-
- METHOD zif_abapgit_frontend_services~is_webgui.
- ENDMETHOD.
-
- METHOD zif_abapgit_frontend_services~open_ie_devtools.
- ENDMETHOD.
-
- METHOD zif_abapgit_frontend_services~show_file_open_dialog.
- ENDMETHOD.
-
- METHOD zif_abapgit_frontend_services~show_file_save_dialog.
- ENDMETHOD.
-
-ENDCLASS.
-
-
CLASS ltcl_validate_form IMPLEMENTATION.
METHOD setup.
@@ -192,8 +123,8 @@ CLASS ltcl_validate_form IMPLEMENTATION.
CREATE OBJECT mo_git_transport_mock TYPE ltd_git_transport.
zcl_abapgit_git_injector=>set_git_transport( mo_git_transport_mock ).
- CREATE OBJECT mo_frontend_services_mock TYPE ltd_frontend_services.
- zcl_abapgit_ui_injector=>set_frontend_services( mo_frontend_services_mock ).
+ " Disable GUI
+ mo_frontend_services_mock = zcl_abapgit_ui_factory=>get_frontend_services( abap_true ).
ls_data-key = 1.
ls_data-branch_name = 'main'.
diff --git a/src/ui/zcl_abapgit_frontend_no_gui.clas.abap b/src/ui/zcl_abapgit_frontend_no_gui.clas.abap
new file mode 100644
index 000000000..5d7f5f9ec
--- /dev/null
+++ b/src/ui/zcl_abapgit_frontend_no_gui.clas.abap
@@ -0,0 +1,89 @@
+CLASS zcl_abapgit_frontend_no_gui DEFINITION
+ PUBLIC
+ CREATE PRIVATE
+ GLOBAL FRIENDS zcl_abapgit_ui_factory.
+
+ PUBLIC SECTION.
+
+ INTERFACES zif_abapgit_frontend_services.
+
+ PROTECTED SECTION.
+ PRIVATE SECTION.
+ENDCLASS.
+
+
+
+CLASS zcl_abapgit_frontend_no_gui IMPLEMENTATION.
+
+
+ METHOD zif_abapgit_frontend_services~clipboard_export.
+ ENDMETHOD.
+
+
+ METHOD zif_abapgit_frontend_services~directory_browse.
+ ENDMETHOD.
+
+
+ METHOD zif_abapgit_frontend_services~directory_create.
+ ENDMETHOD.
+
+
+ METHOD zif_abapgit_frontend_services~directory_exist.
+ ENDMETHOD.
+
+
+ METHOD zif_abapgit_frontend_services~execute.
+ ENDMETHOD.
+
+
+ METHOD zif_abapgit_frontend_services~file_download.
+ ENDMETHOD.
+
+
+ METHOD zif_abapgit_frontend_services~file_upload.
+ ENDMETHOD.
+
+
+ METHOD zif_abapgit_frontend_services~get_file_separator.
+ ENDMETHOD.
+
+
+ METHOD zif_abapgit_frontend_services~get_gui_version.
+ ENDMETHOD.
+
+
+ METHOD zif_abapgit_frontend_services~get_system_directory.
+ ENDMETHOD.
+
+
+ METHOD zif_abapgit_frontend_services~gui_is_available.
+ rv_gui_is_available = abap_false.
+ ENDMETHOD.
+
+
+ METHOD zif_abapgit_frontend_services~is_sapgui_for_java.
+ rv_result = abap_false.
+ ENDMETHOD.
+
+
+ METHOD zif_abapgit_frontend_services~is_sapgui_for_windows.
+ rv_result = abap_false.
+ ENDMETHOD.
+
+
+ METHOD zif_abapgit_frontend_services~is_webgui.
+ rv_is_webgui = abap_false.
+ ENDMETHOD.
+
+
+ METHOD zif_abapgit_frontend_services~open_ie_devtools.
+ ENDMETHOD.
+
+
+ METHOD zif_abapgit_frontend_services~show_file_open_dialog.
+ ENDMETHOD.
+
+
+ METHOD zif_abapgit_frontend_services~show_file_save_dialog.
+ ENDMETHOD.
+ENDCLASS.
diff --git a/src/ui/zcl_abapgit_frontend_no_gui.clas.xml b/src/ui/zcl_abapgit_frontend_no_gui.clas.xml
new file mode 100644
index 000000000..122c63d3d
--- /dev/null
+++ b/src/ui/zcl_abapgit_frontend_no_gui.clas.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+ ZCL_ABAPGIT_FRONTEND_NO_GUI
+ E
+ abapGit - Frontend without GUI
+ 1
+ X
+ X
+ X
+
+
+
+
diff --git a/src/ui/zcl_abapgit_ui_factory.clas.abap b/src/ui/zcl_abapgit_ui_factory.clas.abap
index dcc4acbf3..6c1331d70 100644
--- a/src/ui/zcl_abapgit_ui_factory.clas.abap
+++ b/src/ui/zcl_abapgit_ui_factory.clas.abap
@@ -24,6 +24,8 @@ CLASS zcl_abapgit_ui_factory DEFINITION
RAISING
zcx_abapgit_exception .
CLASS-METHODS get_frontend_services
+ IMPORTING
+ !iv_disable_gui TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(ri_fe_serv) TYPE REF TO zif_abapgit_frontend_services .
CLASS-METHODS get_html_viewer
@@ -116,7 +118,11 @@ CLASS zcl_abapgit_ui_factory IMPLEMENTATION.
METHOD get_frontend_services.
IF gi_fe_services IS INITIAL.
- CREATE OBJECT gi_fe_services TYPE zcl_abapgit_frontend_services.
+ IF iv_disable_gui IS INITIAL.
+ CREATE OBJECT gi_fe_services TYPE zcl_abapgit_frontend_services.
+ ELSE.
+ CREATE OBJECT gi_fe_services TYPE zcl_abapgit_frontend_no_gui.
+ ENDIF.
ENDIF.
ri_fe_serv = gi_fe_services.