diff --git a/src/abap/dyn/cl_abap_dyn_prg.clas.abap b/src/abap/dyn/cl_abap_dyn_prg.clas.abap index d072b150..8c7fb146 100644 --- a/src/abap/dyn/cl_abap_dyn_prg.clas.abap +++ b/src/abap/dyn/cl_abap_dyn_prg.clas.abap @@ -77,7 +77,8 @@ CLASS cl_abap_dyn_prg IMPLEMENTATION. ENDMETHOD. METHOD escape_quotes_str. - ASSERT 1 = 'todo'. + out = val. + REPLACE ALL OCCURRENCES OF '`' IN out WITH '``'. ENDMETHOD. METHOD check_table_or_view_name_str. @@ -103,7 +104,8 @@ CLASS cl_abap_dyn_prg IMPLEMENTATION. ENDMETHOD. METHOD escape_quotes. - ASSERT 1 = 'todo'. + out = val. + REPLACE ALL OCCURRENCES OF `'` IN out WITH `''`. ENDMETHOD. METHOD escape_xss_xml_html. diff --git a/src/abap/dyn/cl_abap_dyn_prg.clas.testclasses.abap b/src/abap/dyn/cl_abap_dyn_prg.clas.testclasses.abap new file mode 100644 index 00000000..3329ea90 --- /dev/null +++ b/src/abap/dyn/cl_abap_dyn_prg.clas.testclasses.abap @@ -0,0 +1,24 @@ +CLASS ltcl_dyn_prg DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT FINAL. + + PRIVATE SECTION. + METHODS escape_quotes1 FOR TESTING RAISING cx_static_check. + METHODS escape_quotes_str1 FOR TESTING RAISING cx_static_check. + +ENDCLASS. + +CLASS ltcl_dyn_prg IMPLEMENTATION. + METHOD escape_quotes_str1. + cl_abap_unit_assert=>assert_equals( + act = cl_abap_dyn_prg=>escape_quotes_str( 'hello ` world' ) + exp = 'hello `` world' ). + ENDMETHOD. + + METHOD escape_quotes1. + + cl_abap_unit_assert=>assert_equals( + act = cl_abap_dyn_prg=>escape_quotes( `hello ' world` ) + exp = `hello '' world` ). + + ENDMETHOD. + +ENDCLASS. \ No newline at end of file