diff --git a/src/zabapgit_unit_test.prog.abap b/src/zabapgit_unit_test.prog.abap index f49ad5cc6..10fda7d4e 100644 --- a/src/zabapgit_unit_test.prog.abap +++ b/src/zabapgit_unit_test.prog.abap @@ -637,8 +637,11 @@ CLASS ltcl_url DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT FINAL. PRIVATE SECTION. - METHODS repo_url FOR TESTING RAISING lcx_exception. - METHODS repo_error FOR TESTING. + METHODS: + repo_host FOR TESTING RAISING lcx_exception, + repo_name1 FOR TESTING RAISING lcx_exception, + repo_name2 FOR TESTING RAISING lcx_exception, + repo_error FOR TESTING. ENDCLASS. "ltcl_url DEFINITION @@ -659,7 +662,7 @@ CLASS ltcl_url IMPLEMENTATION. ENDMETHOD. "repo_error - METHOD repo_url. + METHOD repo_host. DATA: lv_host TYPE string. @@ -671,6 +674,30 @@ CLASS ltcl_url IMPLEMENTATION. ENDMETHOD. "repo_url + METHOD repo_name1. + + DATA: lv_name TYPE string. + + lv_name = lcl_url=>name( 'https://github.com/larshp/Foobar.git' ). + + cl_abap_unit_assert=>assert_equals( + exp = 'Foobar' + act = lv_name ). + + ENDMETHOD. + + METHOD repo_name2. + + DATA: lv_name TYPE string. + + lv_name = lcl_url=>name( 'https://git.hanatrial.ondemand.com/p12345trial/yay' ). + + cl_abap_unit_assert=>assert_equals( + exp = 'yay' + act = lv_name ). + + ENDMETHOD. + ENDCLASS. "ltcl_url IMPLEMENTATION *----------------------------------------------------------------------* diff --git a/src/zabapgit_util.prog.abap b/src/zabapgit_util.prog.abap index 5ad37171b..95a3d4fd8 100644 --- a/src/zabapgit_util.prog.abap +++ b/src/zabapgit_util.prog.abap @@ -402,8 +402,8 @@ CLASS lcl_url IMPLEMENTATION. METHOD regex. - FIND REGEX '(.*://[^/]*)(.*/)(.*).git' IN iv_repo - SUBMATCHES ev_host ev_path ev_name. + FIND REGEX '(.*://[^/]*)(.*/)([^\.]*)[\.git]?' IN iv_repo + SUBMATCHES ev_host ev_path ev_name. IF sy-subrc <> 0. lcx_exception=>raise( 'Malformed URL' ). ENDIF.