mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 11:46:38 +08:00
Merge pull request #1433 from christianguenter2/1431
Fix XSLT diff, 1431
This commit is contained in:
commit
c02e6533c8
|
@ -19,7 +19,25 @@ CLASS zcl_abapgit_object_xslt IMPLEMENTATION.
|
|||
ENDMETHOD. "zif_abapgit_object~has_changed_since
|
||||
|
||||
METHOD zif_abapgit_object~changed_by.
|
||||
rv_user = c_user_unknown. " todo
|
||||
|
||||
DATA: lo_xslt TYPE REF TO cl_o2_api_xsltdesc,
|
||||
ls_attributes TYPE o2xsltattr.
|
||||
|
||||
lo_xslt = get( ).
|
||||
lo_xslt->get_attributes(
|
||||
RECEIVING
|
||||
p_attributes = ls_attributes
|
||||
EXCEPTIONS
|
||||
object_invalid = 1
|
||||
xsltdesc_deleted = 2
|
||||
OTHERS = 3 ).
|
||||
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
|
||||
rv_user = ls_attributes-changedby.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get.
|
||||
|
|
|
@ -5,27 +5,26 @@ CLASS zcl_abapgit_syntax_xml DEFINITION
|
|||
|
||||
PUBLIC SECTION.
|
||||
|
||||
METHODS constructor.
|
||||
|
||||
CONSTANTS:
|
||||
BEGIN OF c_css,
|
||||
xml_tag TYPE string VALUE 'xml_tag', "#EC NOTEXT
|
||||
attr TYPE string VALUE 'attr', "#EC NOTEXT
|
||||
attr_val TYPE string VALUE 'attr_val', "#EC NOTEXT
|
||||
END OF c_css,
|
||||
|
||||
END OF c_css .
|
||||
CONSTANTS:
|
||||
BEGIN OF c_token,
|
||||
xml_tag TYPE c VALUE 'X', "#EC NOTEXT
|
||||
attr TYPE c VALUE 'A', "#EC NOTEXT
|
||||
attr_val TYPE c VALUE 'V', "#EC NOTEXT
|
||||
END OF c_token,
|
||||
|
||||
END OF c_token .
|
||||
CONSTANTS:
|
||||
BEGIN OF c_regex,
|
||||
xml_tag TYPE string VALUE '[<>]', "#EC NOTEXT
|
||||
attr TYPE string VALUE '\s[-a-z:_0-9]+\s*(?==)', "#EC NOTEXT
|
||||
attr_val TYPE string VALUE '["''][^''"]+[''"]', "#EC NOTEXT
|
||||
END OF c_regex.
|
||||
END OF c_regex .
|
||||
|
||||
METHODS constructor .
|
||||
PROTECTED SECTION.
|
||||
|
||||
METHODS order_matches REDEFINITION.
|
||||
|
@ -34,7 +33,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_SYNTAX_XML IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_syntax_xml IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD constructor.
|
||||
|
@ -91,8 +90,10 @@ CLASS ZCL_ABAPGIT_SYNTAX_XML IMPLEMENTATION.
|
|||
" Adjust length and offset of closing tag
|
||||
ELSEIF <ls_match>-text_tag = '>' AND lv_prev_token <> c_token-xml_tag.
|
||||
lv_state = 'C'.
|
||||
<ls_match>-length = <ls_match>-offset - <ls_prev>-offset - <ls_prev>-length + <ls_match>-length.
|
||||
<ls_match>-offset = <ls_prev>-offset + <ls_prev>-length.
|
||||
IF <ls_prev> IS ASSIGNED.
|
||||
<ls_match>-length = <ls_match>-offset - <ls_prev>-offset - <ls_prev>-length + <ls_match>-length.
|
||||
<ls_match>-offset = <ls_prev>-offset + <ls_prev>-length.
|
||||
ENDIF.
|
||||
ELSE.
|
||||
lv_state = 'O'.
|
||||
ENDIF.
|
||||
|
|
52
src/syntax/zcl_abapgit_syntax_xml.clas.testclasses.abap
Normal file
52
src/syntax/zcl_abapgit_syntax_xml.clas.testclasses.abap
Normal file
|
@ -0,0 +1,52 @@
|
|||
*"* use this source file for your ABAP unit test classes
|
||||
|
||||
CLASS abapgit_syntax_xml DEFINITION FINAL FOR TESTING
|
||||
DURATION SHORT
|
||||
RISK LEVEL HARMLESS.
|
||||
|
||||
PRIVATE SECTION.
|
||||
DATA:
|
||||
mo_cut TYPE REF TO zcl_abapgit_syntax_xml.
|
||||
|
||||
METHODS:
|
||||
setup,
|
||||
sole_closing_xml_tag FOR TESTING RAISING cx_static_check,
|
||||
complete_xml_tag FOR TESTING RAISING cx_static_check,
|
||||
complete_xml_tag_with_closing FOR TESTING RAISING cx_static_check.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS abapgit_syntax_xml IMPLEMENTATION.
|
||||
|
||||
METHOD setup.
|
||||
|
||||
CREATE OBJECT mo_cut.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD sole_closing_xml_tag.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = |<span class="xml_tag">></span>|
|
||||
act = mo_cut->process_line( |>| ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD complete_xml_tag.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = |<span class="xml_tag"><tag></span>|
|
||||
act = mo_cut->process_line( |<tag>| ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD complete_xml_tag_with_closing.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
exp = |<span class="xml_tag"><tag/></span>|
|
||||
act = mo_cut->process_line( |<tag/>| ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
|
@ -12,6 +12,7 @@
|
|||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
<WITH_UNIT_TESTS>X</WITH_UNIT_TESTS>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
|
|
Loading…
Reference in New Issue
Block a user