11package hudson .plugins .ansicolor .action ;
22
33import hudson .plugins .ansicolor .JenkinsTestSupport ;
4+ import jenkins .model .Jenkins ;
5+ import org .junit .Ignore ;
46import org .junit .Test ;
57
68import java .util .Arrays ;
9+ import java .util .HashMap ;
10+ import java .util .Map ;
11+ import java .util .Optional ;
12+ import java .util .function .BooleanSupplier ;
713
814public class ShortlogActionCreatorIntegrationTest extends JenkinsTestSupport {
915 private static final String AS_1K = repeat ("a" , 1024 );
@@ -12,15 +18,35 @@ public class ShortlogActionCreatorIntegrationTest extends JenkinsTestSupport {
1218 private static final String DS_1K = repeat ("d" , 1024 );
1319
1420 @ Test
15- public void canAnotateLongLogOutputInShortlog () {
21+ public void canAnnotateLongLogOutputInShortlogLinesWholeFalse () {
1622 final String script = "ansiColor('xterm') {\n " +
1723 repeat ("echo '\033 [32m" + AS_1K + "\033 [0m'\n " , 150 ) +
1824 "}" ;
19- assertOutputOnRunningPipeline ("<span style=\" color: #00CD00;\" >" + AS_1K + "</span>" , "\033 " , script , true );
25+ final Map <String , String > properties = new HashMap <>();
26+ properties .put (ShortlogActionCreator .PROP_LINES_WHOLE , "false" );
27+ BooleanSupplier brokenLinesJenkins = () -> Optional .ofNullable (Jenkins .getVersion ())
28+ .orElse (ShortlogActionCreator .LINES_WHOLE_SINCE_VERSION )
29+ .isOlderThan (ShortlogActionCreator .LINES_WHOLE_SINCE_VERSION );
30+ assertOutputOnRunningPipeline (brokenLinesJenkins , "<span style=\" color: #00CD00;\" >" + AS_1K + "</span>" , "\033 " , script , true , properties );
2031 }
2132
2233 @ Test
23- public void canAnotateLongLogOutputInShortlogMultipleSteps () {
34+ @ Ignore ("Needs adjustments for Jenkins > 2.260" )
35+ public void canAnnotateLongLogOutputInShortlogLinesWholeTrue () {
36+ final String script = "ansiColor('xterm') {\n " +
37+ repeat ("echo '\033 [32m" + AS_1K + "\033 [0m'\n " , 150 ) +
38+ "echo 'Abc'\n " +
39+ "}" ;
40+ final Map <String , String > properties = new HashMap <>();
41+ properties .put (ShortlogActionCreator .PROP_LINES_WHOLE , "true" );
42+ BooleanSupplier wholeLinesJenkins = () -> Optional .ofNullable (Jenkins .getVersion ())
43+ .orElse (ShortlogActionCreator .LINES_WHOLE_SINCE_VERSION )
44+ .isNewerThan (ShortlogActionCreator .LINES_WHOLE_SINCE_VERSION );
45+ assertOutputOnRunningPipeline (wholeLinesJenkins , "<span style=\" color: #00CD00;\" >" + AS_1K + "</span>" , "\033 " , script , true , properties );
46+ }
47+
48+ @ Test
49+ public void canAnnotateLongLogOutputInShortlogMultipleStepsLinesWholeFalse () {
2450 final String script = "echo '\033 [32mBeginning\033 [0m'\n " +
2551 "ansiColor('vga') {\n " +
2652 repeat (" echo '\033 [32m" + AS_1K + "\033 [0m'\n " , 10 ) +
@@ -34,6 +60,8 @@ public void canAnotateLongLogOutputInShortlogMultipleSteps() {
3460 "}\n " +
3561 "echo 'End'" ;
3662
63+ final Map <String , String > properties = new HashMap <>();
64+ properties .put (ShortlogActionCreator .PROP_LINES_WHOLE , "false" );
3765 assertOutputOnRunningPipeline (
3866 Arrays .asList (
3967 "<span style=\" color: #00CD00;\" >" + BS_1K + "</span>" ,
@@ -50,7 +78,46 @@ public void canAnotateLongLogOutputInShortlogMultipleSteps() {
5078 "\033 [32m" + DS_1K + "\033 [0m"
5179 ),
5280 script ,
53- true
81+ true ,
82+ properties
83+ );
84+ }
85+
86+ @ Test
87+ public void canAnnotateLongLogOutputInShortlogMultipleStepsLinesWholeTrue () {
88+ final String script = "echo '\033 [32mBeginning\033 [0m'\n " +
89+ "ansiColor('vga') {\n " +
90+ repeat (" echo '\033 [32m" + AS_1K + "\033 [0m'\n " , 10 ) +
91+ "}\n " +
92+ "ansiColor('xterm') {\n " +
93+ repeat (" echo '\033 [32m" + BS_1K + "\033 [0m'\n " , 30 ) +
94+ "}\n " +
95+ "ansiColor('css') {\n " +
96+ repeat (" echo '\033 [32m" + CS_1K + "\033 [0m'\n " , 50 ) +
97+ repeat (" echo '\033 [32m" + DS_1K + "\033 [0m'\n " , 50 ) +
98+ "}\n " +
99+ "echo 'End'" ;
100+
101+ final Map <String , String > properties = new HashMap <>();
102+ properties .put (ShortlogActionCreator .PROP_LINES_WHOLE , "true" );
103+ assertOutputOnRunningPipeline (
104+ Arrays .asList (
105+ "\033 [32m" + BS_1K + "\033 [0m" ,
106+ "<span style=\" color: green;\" >" + CS_1K + "</span>" ,
107+ "<span style=\" color: green;\" >" + DS_1K + "</span>" ,
108+ "End"
109+ ),
110+ Arrays .asList (
111+ "Beginning" ,
112+ "<span style=\" color: #00AA00;\" >a" ,
113+ "\033 [32m" + AS_1K + "\033 [0m" ,
114+ "<span style=\" color: #00CD00;\" >" + BS_1K + "</span>" ,
115+ "\033 [32m" + CS_1K + "\033 [0m" ,
116+ "\033 [32m" + DS_1K + "\033 [0m"
117+ ),
118+ script ,
119+ true ,
120+ properties
54121 );
55122 }
56123}
0 commit comments