From e45bdfc4e46265ee0be505d0b5571a6f37f19823 Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Tue, 2 Nov 2021 16:50:30 +0100 Subject: [PATCH] unit testing updates (#5080) * wip, unit testing * refactor popup * update abaplint * transpile additional classes * all data classes * all git * update * fix * change type * all gui * all http * ZCL_ABAPGIT_USER_RECORD * all zlib * all exceptions * all xml * all html * all html zif * all gui zif * all xml zif * all repo zif * more generic * star * zif_abapgit_longtexts * sort * zcl_abapgit_news * zcl_abapgit_adt_link * ZCL_ABAPGIT_DIFF * more * add zcl_abapgit_services_git --- package.json | 10 +- .../zcl_abapgit_gui_page_codi_base.clas.abap | 12 +- .../zcl_abapgit_gui_page_debuginfo.clas.abap | 8 +- src/ui/zcl_abapgit_gui_page_diff.clas.abap | 12 +- src/ui/zcl_abapgit_gui_page_syntax.clas.abap | 2 +- src/ui/zcl_abapgit_popups.clas.abap | 4 +- test/abap_transpile.json | 138 ++++++++---------- 7 files changed, 87 insertions(+), 99 deletions(-) diff --git a/package.json b/package.json index 8f4e290ef..62786508e 100644 --- a/package.json +++ b/package.json @@ -20,12 +20,14 @@ }, "c8": { "all": true, - "src": ["src"] + "src": [ + "src" + ] }, "devDependencies": { - "@abaplint/cli": "^2.79.34", - "@abaplint/runtime": "^1.6.55", - "@abaplint/transpiler-cli": "^1.6.55", + "@abaplint/cli": "^2.79.35", + "@abaplint/runtime": "^1.6.62", + "@abaplint/transpiler-cli": "^1.6.62", "abapmerge": "^0.14.3", "c8": "^7.10.0", "eslint": "^8.1.0" diff --git a/src/ui/zcl_abapgit_gui_page_codi_base.clas.abap b/src/ui/zcl_abapgit_gui_page_codi_base.clas.abap index 08b4db63a..c81481f51 100644 --- a/src/ui/zcl_abapgit_gui_page_codi_base.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_codi_base.clas.abap @@ -47,13 +47,13 @@ CLASS zcl_abapgit_gui_page_codi_base DEFINITION PUBLIC ABSTRACT INHERITING FROM RETURNING VALUE(ro_menu) TYPE REF TO zcl_abapgit_html_toolbar . PRIVATE SECTION. - CONSTANTS c_object_separator TYPE char1 VALUE '|'. + CONSTANTS c_object_separator TYPE c LENGTH 1 VALUE '|'. CONSTANTS c_ci_sig TYPE string VALUE 'cinav:'. ENDCLASS. -CLASS ZCL_ABAPGIT_GUI_PAGE_CODI_BASE IMPLEMENTATION. +CLASS zcl_abapgit_gui_page_codi_base IMPLEMENTATION. METHOD build_base_menu. @@ -221,13 +221,13 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_CODI_BASE IMPLEMENTATION. ( is_result-objtype = 'PROG' AND NOT is_result-sobjname+30(*) IS INITIAL ). TRY. CASE is_result-sobjname+30(*). - WHEN seop_incextapp_definition. + WHEN 'CCDEF'. lv_obj_txt = |CLAS { is_result-objname } : Local Definitions|. - WHEN seop_incextapp_implementation. + WHEN 'CCIMP'. lv_obj_txt = |CLAS { is_result-objname } : Local Implementations|. - WHEN seop_incextapp_macros. + WHEN 'CCMAC'. lv_obj_txt = |CLAS { is_result-objname } : Macros|. - WHEN seop_incextapp_testclasses. + WHEN 'CCAU'. lv_obj_txt = |CLAS { is_result-objname } : Test Classes|. WHEN 'CU'. lv_obj_txt = |CLAS { is_result-objname } : Public Section|. diff --git a/src/ui/zcl_abapgit_gui_page_debuginfo.clas.abap b/src/ui/zcl_abapgit_gui_page_debuginfo.clas.abap index f46b438f0..745674b59 100644 --- a/src/ui/zcl_abapgit_gui_page_debuginfo.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_debuginfo.clas.abap @@ -20,9 +20,9 @@ CLASS zcl_abapgit_gui_page_debuginfo DEFINITION PROTECTED SECTION. PRIVATE SECTION. - CONSTANTS c_exit_standalone TYPE progname VALUE 'ZABAPGIT_USER_EXIT' ##NO_TEXT. - CONSTANTS c_exit_class TYPE seoclsname VALUE 'ZCL_ABAPGIT_USER_EXIT' ##NO_TEXT. - CONSTANTS c_exit_interface TYPE seoclsname VALUE 'ZIF_ABAPGIT_EXIT' ##NO_TEXT. + CONSTANTS c_exit_standalone TYPE c LENGTH 30 VALUE 'ZABAPGIT_USER_EXIT' ##NO_TEXT. + CONSTANTS c_exit_class TYPE c LENGTH 30 VALUE 'ZCL_ABAPGIT_USER_EXIT' ##NO_TEXT. + CONSTANTS c_exit_interface TYPE c LENGTH 30 VALUE 'ZIF_ABAPGIT_EXIT' ##NO_TEXT. CONSTANTS: BEGIN OF c_action, save TYPE string VALUE 'save', @@ -68,7 +68,7 @@ ENDCLASS. -CLASS zcl_abapgit_gui_page_debuginfo IMPLEMENTATION. +CLASS ZCL_ABAPGIT_GUI_PAGE_DEBUGINFO IMPLEMENTATION. METHOD build_toolbar. diff --git a/src/ui/zcl_abapgit_gui_page_diff.clas.abap b/src/ui/zcl_abapgit_gui_page_diff.clas.abap index 0596e3682..4946be47c 100644 --- a/src/ui/zcl_abapgit_gui_page_diff.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_diff.clas.abap @@ -13,9 +13,9 @@ CLASS zcl_abapgit_gui_page_diff DEFINITION filename TYPE string, obj_type TYPE string, obj_name TYPE string, - lstate TYPE char1, - rstate TYPE char1, - fstate TYPE char1, " FILE state - Abstraction for shorter ifs + lstate TYPE c LENGTH 1, + rstate TYPE c LENGTH 1, + fstate TYPE c LENGTH 1, " FILE state - Abstraction for shorter ifs o_diff TYPE REF TO zcl_abapgit_diff, changed_by TYPE xubname, type TYPE string, @@ -28,9 +28,9 @@ CLASS zcl_abapgit_gui_page_diff DEFINITION CONSTANTS: BEGIN OF c_fstate, - local TYPE char1 VALUE 'L', - remote TYPE char1 VALUE 'R', - both TYPE char1 VALUE 'B', + local TYPE c LENGTH 1 VALUE 'L', + remote TYPE c LENGTH 1 VALUE 'R', + both TYPE c LENGTH 1 VALUE 'B', END OF c_fstate. METHODS constructor diff --git a/src/ui/zcl_abapgit_gui_page_syntax.clas.abap b/src/ui/zcl_abapgit_gui_page_syntax.clas.abap index 6186a6eed..6a26dd88e 100644 --- a/src/ui/zcl_abapgit_gui_page_syntax.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_syntax.clas.abap @@ -17,7 +17,7 @@ CLASS zcl_abapgit_gui_page_syntax DEFINITION PUBLIC FINAL CREATE PUBLIC REDEFINITION. PROTECTED SECTION. - CONSTANTS: c_variant TYPE sci_chkv VALUE 'SYNTAX_CHECK'. + CONSTANTS: c_variant TYPE c LENGTH 30 VALUE 'SYNTAX_CHECK'. METHODS: render_content REDEFINITION. diff --git a/src/ui/zcl_abapgit_popups.clas.abap b/src/ui/zcl_abapgit_popups.clas.abap index 8bb6d1b87..915cc01ce 100644 --- a/src/ui/zcl_abapgit_popups.clas.abap +++ b/src/ui/zcl_abapgit_popups.clas.abap @@ -8,14 +8,14 @@ CLASS zcl_abapgit_popups DEFINITION INTERFACES zif_abapgit_popups . - CONSTANTS c_default_column TYPE lvc_fname VALUE `DEFAULT_COLUMN` ##NO_TEXT. PROTECTED SECTION. PRIVATE SECTION. + CONSTANTS c_default_column TYPE abap_componentdescr-name VALUE `DEFAULT_COLUMN` ##NO_TEXT. TYPES: ty_lt_fields TYPE STANDARD TABLE OF sval WITH DEFAULT KEY . - CONSTANTS c_fieldname_selected TYPE lvc_fname VALUE `SELECTED` ##NO_TEXT. + CONSTANTS c_fieldname_selected TYPE abap_componentdescr-name VALUE `SELECTED` ##NO_TEXT. CONSTANTS c_answer_cancel TYPE c LENGTH 1 VALUE 'A' ##NO_TEXT. DATA mo_select_list_popup TYPE REF TO cl_salv_table . diff --git a/test/abap_transpile.json b/test/abap_transpile.json index cbada7374..1923a35ba 100644 --- a/test/abap_transpile.json +++ b/test/abap_transpile.json @@ -2,48 +2,25 @@ "input_folder": "{test,src,deps}", "input_filter": [ "vseointerf", + "zcl_abapgit_adt_link", "zcl_abapgit_ajson*", "zcl_abapgit_auth", "zcl_abapgit_convert", - "zcl_abapgit_data_config", - "zcl_abapgit_data_injector", - "zcl_abapgit_data_utils", + "zcl_abapgit_data*", + "zcl_abapgit_diff", "zcl_abapgit_dot_abapgit", "zcl_abapgit_exit", + "zcl_abapgit_factory", "zcl_abapgit_frontend_services", - "zcl_abapgit_git_add_patch", - "zcl_abapgit_git_branch_list", - "zcl_abapgit_git_commit", - "zcl_abapgit_git_pack", - "zcl_abapgit_git_porcelain", - "zcl_abapgit_git_tag", - "zcl_abapgit_git_transport", - "zcl_abapgit_git_url", - "zcl_abapgit_git_utils", - "zcl_abapgit_gui_asset_manager", - "zcl_abapgit_gui_buttons", - "zcl_abapgit_gui_chunk_lib", - "zcl_abapgit_gui_component", - "zcl_abapgit_gui_css_processor", - "zcl_abapgit_gui_event", - "zcl_abapgit_gui_functions", - "zcl_abapgit_gui_html_processor", - "zcl_abapgit_gui_page_hoc", - "zcl_abapgit_gui_page_tutorial", - "zcl_abapgit_gui_page.clas", - "zcl_abapgit_gui_utils", - "zcl_abapgit_gui.clas", + "zcl_abapgit_git*", + "zcl_abapgit_gui*", "zcl_abapgit_hash", - "zcl_abapgit_html_action_utils", - "zcl_abapgit_html_parts", - "zcl_abapgit_html_toolbar", - "zcl_abapgit_html.clas", - "zcl_abapgit_http_agent", - "zcl_abapgit_http_client", - "zcl_abapgit_http_digest", - "zcl_abapgit_http", + "zcl_abapgit_html*", + "zcl_abapgit_http*", + "zcl_abapgit_injector", "zcl_abapgit_log.clas", "zcl_abapgit_login_manager", + "zcl_abapgit_news", "zcl_abapgit_password_dialog", "zcl_abapgit_path", "zcl_abapgit_persist_background", @@ -52,79 +29,55 @@ "zcl_abapgit_persist_settings", "zcl_abapgit_persistence_db", "zcl_abapgit_persistence_user", + "zcl_abapgit_popups", "zcl_abapgit_pr_enum_github", "zcl_abapgit_pr_enumerator", "zcl_abapgit_progress", "zcl_abapgit_proxy_auth", "zcl_abapgit_proxy_config", + "zcl_abapgit_repo_filter", + "zcl_abapgit_services_basis", + "zcl_abapgit_services_git", "zcl_abapgit_settings", "zcl_abapgit_string_map", "zcl_abapgit_syntax_*", "zcl_abapgit_time", - "zcl_abapgit_ui_factory", + "zcl_abapgit_ui*", "zcl_abapgit_url", "zcl_abapgit_utils", "zcl_abapgit_version", - "zcl_abapgit_xml_input", - "zcl_abapgit_xml_output", - "zcl_abapgit_xml_pretty", - "zcl_abapgit_xml.clas", - "zcl_abapgit_zlib_convert", - "zcl_abapgit_zlib_huffman", - "zcl_abapgit_zlib_stream", - "zcl_abapgit_zlib", - "zcx_abapgit_ajson_error", - "zcx_abapgit_cancel", - "zcx_abapgit_exception", - "zcx_abapgit_not_found", + "zcl_abapgit_xml*", + "zcl_abapgit_zlib*", + "zcx_abapgit_*", "zif_abapgit_ajson*", "zif_abapgit_apack_definitions", "zif_abapgit_auth", "zif_abapgit_branch_overview", + "zif_abapgit_code_inspector", "zif_abapgit_cts_api", - "zif_abapgit_data_config", - "zif_abapgit_data_deserializer", - "zif_abapgit_data_serializer", + "zif_abapgit_data*", "zif_abapgit_definitions", "zif_abapgit_dot_abapgit", "zif_abapgit_environment", "zif_abapgit_exit", "zif_abapgit_frontend_services", - "zif_abapgit_gui_asset_manager", - "zif_abapgit_gui_error_handler", - "zif_abapgit_gui_event_handler", - "zif_abapgit_gui_event", - "zif_abapgit_gui_functions", - "zif_abapgit_gui_hotkey_ctl", - "zif_abapgit_gui_hotkeys", - "zif_abapgit_gui_html_processor", - "zif_abapgit_gui_renderable", - "zif_abapgit_gui_services", - "zif_abapgit_html_viewer", - "zif_abapgit_html", - "zif_abapgit_http_agent", - "zif_abapgit_http_response", + "zif_abapgit_gui*", + "zif_abapgit_html*", + "zif_abapgit_http*", "zif_abapgit_log", + "zif_abapgit_longtexts", + "zif_abapgit_lxe_texts", "zif_abapgit_merge", - "zif_abapgit_persist_repo", - "zif_abapgit_persist_settings", - "zif_abapgit_persist_user", - "zif_abapgit_persistence", + "zif_abapgit_persist*", "zif_abapgit_popups", - "zcl_abapgit_repo_filter", - "zif_abapgit_pr_enum_provider", - "zif_abapgit_progress", - "zif_abapgit_repo_listener", - "zif_abapgit_repo_online", - "zif_abapgit_repo_srv", + "zif_abapgit_pr*", + "zif_abapgit_repo*", "zif_abapgit_sap_package", "zif_abapgit_stage_logic", "zif_abapgit_tadir", "zif_abapgit_tag_popups", "zif_abapgit_version", - "zif_abapgit_xml_input", - "zif_abapgit_xml_output", - "zif_abapgit_xml" + "zif_abapgit_xml*" ], "output_folder": "output", "lib": "https://github.com/open-abap/open-abap", @@ -199,6 +152,9 @@ {"object": "ZCL_ABAPGIT_AJSON", "class": "ltcl_abap_to_json", "method": "set_array"}, {"object": "ZCL_ABAPGIT_AJSON", "class": "ltcl_abap_to_json", "method": "set_complex_obj"}, + {"object": "ZCL_ABAPGIT_UI_INJECTOR", "class": "ltcl_no_dependency_injection", "method": "no_injection"}, + {"object": "ZCL_ABAPGIT_UI_INJECTOR", "class": "ltcl_simple_dependency_inject", "method": "simple_injection"}, + {"object": "ZCL_ABAPGIT_AJSON_MAPPING", "class": "ltcl_camel_case", "method": "to_abap", "note": "secondary key fields? READ WITH KEY, Path not found @/FieldData"}, {"object": "ZCL_ABAPGIT_AJSON_MAPPING", "class": "ltcl_camel_case", "method": "to_json"}, {"object": "ZCL_ABAPGIT_AJSON_MAPPING", "class": "ltcl_camel_case", "method": "to_json_first_lower"}, @@ -207,6 +163,19 @@ {"object": "ZCL_ABAPGIT_AJSON_MAPPING", "class": "ltcl_to_lower", "method": "to_json"}, {"object": "ZCL_ABAPGIT_AJSON_MAPPING", "class": "ltcl_to_upper", "method": "to_json"}, + {"object": "ZCL_ABAPGIT_DATA_DESERIALIZER", "class": "ltcl_test", "method": "test1"}, + {"object": "ZCL_ABAPGIT_DATA_SERIALIZER", "class": "ltcl_test", "method": "serialize"}, + + {"object": "ZCL_ABAPGIT_DIFF", "class": "ltcl_diff", "method": "diff01", "note": "Void type: RSWSOURCET"}, + {"object": "ZCL_ABAPGIT_DIFF", "class": "ltcl_diff", "method": "diff02", "note": "Void type: RSWSOURCET"}, + {"object": "ZCL_ABAPGIT_DIFF", "class": "ltcl_diff", "method": "diff03", "note": "Void type: RSWSOURCET"}, + {"object": "ZCL_ABAPGIT_DIFF", "class": "ltcl_diff", "method": "diff04", "note": "Void type: RSWSOURCET"}, + {"object": "ZCL_ABAPGIT_DIFF", "class": "ltcl_diff", "method": "diff05", "note": "Void type: RSWSOURCET"}, + {"object": "ZCL_ABAPGIT_DIFF", "class": "ltcl_diff", "method": "diff06", "note": "Void type: RSWSOURCET"}, + {"object": "ZCL_ABAPGIT_DIFF", "class": "ltcl_diff", "method": "diff07", "note": "Void type: RSWSOURCET"}, + {"object": "ZCL_ABAPGIT_DIFF", "class": "ltcl_diff", "method": "diff08", "note": "Void type: RSWSOURCET"}, + {"object": "ZCL_ABAPGIT_DIFF", "class": "ltcl_diff", "method": "diff09", "note": "Void type: RSWSOURCET"}, + {"object": "ZCL_ABAPGIT_GUI_UTILS", "class": "ltcl_gui_utils", "method": "is_renderable", "note": "casting, https://github.com/abaplint/transpiler/issues/465"}, {"object": "ZCL_ABAPGIT_GUI_UTILS", "class": "ltcl_gui_utils", "method": "is_event_handler", "note": "casting, https://github.com/abaplint/transpiler/issues/465"}, @@ -236,6 +205,23 @@ {"object": "ZCL_ABAPGIT_GIT_COMMIT", "class": "ltcl_test", "method": "check_author_regex"}, {"object": "ZCL_ABAPGIT_GIT_URL", "class": "ltcl_repo_online", "method": "test_repo_commit_show_urls"}, + {"object": "ZCL_ABAPGIT_USER_RECORD", "class": "ltcl_user_record", "method": "test_invalid_user", "note": "Void type: BAPIADDR3"}, + + {"object": "ZCL_ABAPGIT_SERVICES_BASIS", "class": "ltcl_create_package", "method": "raise_error_if_package_exists", "note": "Void type: SCOMPKDTLN"}, + {"object": "ZCL_ABAPGIT_SERVICES_BASIS", "class": "ltcl_create_package", "method": "package_given_in_popup", "note": "Void type: SCOMPKDTLN"}, + {"object": "ZCL_ABAPGIT_SERVICES_BASIS", "class": "ltcl_create_package", "method": "package_not_created_when_canc", "note": "Void type: SCOMPKDTLN"}, + {"object": "ZCL_ABAPGIT_SERVICES_BASIS", "class": "ltcl_create_package", "method": "package_created_when_confirm", "note": "Void type: SCOMPKDTLN"}, + + {"object": "ZCL_ABAPGIT_INJECTOR", "class": "ltcl_no_dependency_injection", "method": "no_injection"}, + {"object": "ZCL_ABAPGIT_INJECTOR", "class": "ltcl_simple_dependency_inject", "method": "simple_injection"}, + + {"object": "ZCL_ABAPGIT_HTML_FORM_UTILS", "class": "ltcl_test_form", "method": "validate", "note": "Void type: TIMESTAMPL"}, + {"object": "ZCL_ABAPGIT_HTML_FORM_UTILS", "class": "ltcl_test_form", "method": "normalize", "note": "Void type: TIMESTAMPL"}, + {"object": "ZCL_ABAPGIT_HTML_FORM_UTILS", "class": "ltcl_test_form", "method": "is_empty", "note": "Void type: TIMESTAMPL"}, + {"object": "ZCL_ABAPGIT_HTML_FORM_UTILS", "class": "ltcl_test_form", "method": "exit_clean", "note": "Void type: TIMESTAMPL"}, + {"object": "ZCL_ABAPGIT_HTML_FORM_UTILS", "class": "ltcl_test_form", "method": "exit_dirty_confirm", "note": "Void type: TIMESTAMPL"}, + {"object": "ZCL_ABAPGIT_HTML_FORM_UTILS", "class": "ltcl_test_form", "method": "exit_dirty_cancel", "note": "Void type: TIMESTAMPL"}, + {"object": "ZCL_ABAPGIT_DOT_ABAPGIT", "class": "ltcl_dot_abapgit", "method": "ignore", "note": "Void type: DLVUNIT"}, {"object": "ZCL_ABAPGIT_DOT_ABAPGIT", "class": "ltcl_dot_abapgit", "method": "identity"} ]