From c008788b9beb0ce4d80a86e498a94c1448b0b777 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=BCnter?= Date: Mon, 5 Aug 2019 10:57:30 +0200 Subject: [PATCH] Improve error information - follow up Part 3 (#2837) * Improve tooltip of "Goto source" link * add another test --- src/ui/zcl_abapgit_gui_chunk_lib.clas.abap | 18 ++++++- ...bapgit_gui_chunk_lib.clas.testclasses.abap | 49 +++++++++++++++++++ src/ui/zcl_abapgit_gui_chunk_lib.clas.xml | 1 + 3 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 src/ui/zcl_abapgit_gui_chunk_lib.clas.testclasses.abap diff --git a/src/ui/zcl_abapgit_gui_chunk_lib.clas.abap b/src/ui/zcl_abapgit_gui_chunk_lib.clas.abap index cff2ef713..5bd35e34d 100644 --- a/src/ui/zcl_abapgit_gui_chunk_lib.clas.abap +++ b/src/ui/zcl_abapgit_gui_chunk_lib.clas.abap @@ -91,6 +91,11 @@ CLASS zcl_abapgit_gui_chunk_lib DEFINITION iv_msgno TYPE scx_t100key-msgno RETURNING VALUE(rv_text) TYPE string. + CLASS-METHODS normalize_program_name + IMPORTING + iv_program_name TYPE syrepid + RETURNING + VALUE(rv_normalized_program_name) TYPE string. ENDCLASS. @@ -98,6 +103,15 @@ ENDCLASS. CLASS zcl_abapgit_gui_chunk_lib IMPLEMENTATION. + METHOD normalize_program_name. + + rv_normalized_program_name = substring_before( + val = iv_program_name + regex = `(=+CP)?$` ). + + ENDMETHOD. + + METHOD render_branch_span. DATA: lv_text TYPE string, @@ -230,11 +244,13 @@ CLASS zcl_abapgit_gui_chunk_lib IMPLEMENTATION. IMPORTING program_name = lv_program_name ). + lv_title = normalize_program_name( lv_program_name ). + ro_html->add_a( iv_txt = `Goto source` iv_act = zif_abapgit_definitions=>c_action-goto_source iv_typ = zif_abapgit_html=>c_action_type-sapevent - iv_title = |{ lv_program_name }| + iv_title = lv_title iv_id = `a_goto_source` ). ro_html->add_a( diff --git a/src/ui/zcl_abapgit_gui_chunk_lib.clas.testclasses.abap b/src/ui/zcl_abapgit_gui_chunk_lib.clas.testclasses.abap new file mode 100644 index 000000000..e6e163bb1 --- /dev/null +++ b/src/ui/zcl_abapgit_gui_chunk_lib.clas.testclasses.abap @@ -0,0 +1,49 @@ +*"* use this source file for your ABAP unit test classes +CLASS ltcl_normalize_program_name DEFINITION FINAL FOR TESTING + DURATION SHORT + RISK LEVEL HARMLESS. + + PRIVATE SECTION. + DATA: + mo_chunk_lib TYPE REF TO zcl_abapgit_gui_chunk_lib. + + METHODS: + setup, + class FOR TESTING RAISING cx_static_check, + program FOR TESTING RAISING cx_static_check. + +ENDCLASS. + +CLASS zcl_abapgit_gui_chunk_lib DEFINITION LOCAL FRIENDS ltcl_normalize_program_name. + +CLASS ltcl_normalize_program_name IMPLEMENTATION. + + METHOD setup. + + CREATE OBJECT mo_chunk_lib. + + ENDMETHOD. + + + METHOD class. + + cl_abap_unit_assert=>assert_equals( + act = mo_chunk_lib->normalize_program_name( 'ZCL_ABAPGIT_FRONTEND_SERVICES=CP' ) + exp = `ZCL_ABAPGIT_FRONTEND_SERVICES` ). + + ENDMETHOD. + + + METHOD program. + + cl_abap_unit_assert=>assert_equals( + act = mo_chunk_lib->normalize_program_name( 'ZABAPGIT_FULL' ) + exp = `ZABAPGIT_FULL` ). + + cl_abap_unit_assert=>assert_equals( + act = mo_chunk_lib->normalize_program_name( 'ZSOME_PROG_ENDING_WITH_CP' ) + exp = `ZSOME_PROG_ENDING_WITH_CP` ). + + ENDMETHOD. + +ENDCLASS. diff --git a/src/ui/zcl_abapgit_gui_chunk_lib.clas.xml b/src/ui/zcl_abapgit_gui_chunk_lib.clas.xml index 0e24dfd29..84d451aff 100644 --- a/src/ui/zcl_abapgit_gui_chunk_lib.clas.xml +++ b/src/ui/zcl_abapgit_gui_chunk_lib.clas.xml @@ -10,6 +10,7 @@ X X X + X