Allow disabling of GUI (#6744)

This commit is contained in:
Marc Bernard 2024-01-10 09:50:28 +01:00 committed by GitHub
parent 978a8aa65c
commit 2b55eecaee
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 117 additions and 126 deletions

View File

@ -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.

View File

@ -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'.

View File

@ -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.

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_FRONTEND_NO_GUI</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abapGit - Frontend without GUI</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -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.