Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 9ea6ab4

Browse files
add test case to reproduce bug #1073
1 parent 0dd978f commit 9ea6ab4

2 files changed

Lines changed: 49 additions & 0 deletions

File tree

test/ut3_user/reporters/test_realtime_reporter.pkb

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,22 @@ create or replace package body test_realtime_reporter as
118118
end;
119119
end;]';
120120

121+
execute immediate q'[create or replace package check_realtime_reporting5 is
122+
--%suite
123+
--%suitepath(realtime_reporting_bufix)
124+
125+
--%test(test XML with nested CDATA)
126+
procedure test_nested_cdata;
127+
end;]';
128+
129+
execute immediate q'[create or replace package body check_realtime_reporting5 is
130+
procedure test_nested_cdata is
131+
begin
132+
dbms_output.put_line('nested cdata block: <![CDATA[...]]>, to be handled.');
133+
ut.expect(1).to_equal(1);
134+
end;
135+
end;]';
136+
121137
<<run_report_and_cache_result>>
122138
declare
123139
l_reporter ut3_develop.ut_realtime_reporter := ut3_develop.ut_realtime_reporter();
@@ -448,6 +464,35 @@ create or replace package body test_realtime_reporter as
448464
l_actual := l_reporter.get_description();
449465
ut.expect(l_actual).to_be_like(l_expected);
450466
end get_description;
467+
468+
procedure nested_cdata_output is
469+
l_text varchar2(4000);
470+
l_xml xmltype;
471+
--
472+
function produce_and_consume return varchar2 is
473+
pragma autonomous_transaction;
474+
l_reporter ut3_develop.ut_realtime_reporter := ut3_develop.ut_realtime_reporter();
475+
l_text varchar2(4000);
476+
begin
477+
-- produce
478+
ut3_develop.ut_runner.run(
479+
a_paths => ut3_develop.ut_varchar2_list(':realtime_reporting_bufix'),
480+
a_reporters => ut3_develop.ut_reporters(l_reporter)
481+
);
482+
-- consume
483+
select text
484+
into l_text
485+
from table(l_reporter.get_lines())
486+
where item_type = 'post-test';
487+
return l_text;
488+
end produce_and_consume;
489+
begin
490+
l_text := produce_and_consume();
491+
ut.expect(l_text).to_be_not_null();
492+
-- this fails, if l_text is not a valid XML
493+
l_xml := xmltype(l_text);
494+
ut.expect(l_xml is not null).to_be_true();
495+
end;
451496

452497
procedure remove_test_suites is
453498
pragma autonomous_transaction;
@@ -456,6 +501,7 @@ create or replace package body test_realtime_reporter as
456501
execute immediate 'drop package check_realtime_reporting2';
457502
execute immediate 'drop package check_realtime_reporting3';
458503
execute immediate 'drop package check_realtime_reporting4';
504+
execute immediate 'drop package check_realtime_reporting5';
459505
end remove_test_suites;
460506

461507
end test_realtime_reporter;

test/ut3_user/reporters/test_realtime_reporter.pks

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ create or replace package test_realtime_reporter as
5454
--%test(Provide a description of the reporter explaining the use for SQL Developer)
5555
procedure get_description;
5656

57+
--%test(Escape nested CDATA sections in test output)
58+
procedure nested_cdata_output;
59+
5760
--%afterall
5861
procedure remove_test_suites;
5962

0 commit comments

Comments
 (0)