46
46
import hudson .security .Permission ;
47
47
import hudson .tasks .BuildStepDescriptor ;
48
48
import hudson .tasks .Publisher ;
49
+ import hudson .util .VersionNumber ;
49
50
import java .io .File ;
50
51
import java .io .IOException ;
51
52
import java .net .URISyntaxException ;
@@ -96,6 +97,17 @@ public class SecureGroovyScriptTest {
96
97
97
98
@ Rule public TemporaryFolder tmpFolderRule = new TemporaryFolder ();
98
99
100
+ private void addPostBuildAction (HtmlPage page ) throws IOException {
101
+ String displayName = r .jenkins .getExtensionList (BuildStepDescriptor .class ).get (TestGroovyRecorder .DescriptorImpl .class ).getDisplayName ();
102
+ if (Jenkins .getVersion ().isOlderThan (new VersionNumber ("2.422" ))) {
103
+ page .getAnchorByText (displayName ).click ();
104
+ } else {
105
+ HtmlForm config = page .getFormByName ("config" );
106
+ r .getButtonByCaption (config , displayName ).click ();
107
+ }
108
+
109
+ }
110
+
99
111
/**
100
112
* Basic approval test where the user doesn't have ADMINISTER privs but has unchecked
101
113
* the sandbox checkbox. Should result in script going to pending approval.
@@ -116,7 +128,7 @@ public class SecureGroovyScriptTest {
116
128
HtmlPage page = wc .getPage (p , "configure" );
117
129
HtmlForm config = page .getFormByName ("config" );
118
130
HtmlFormUtil .getButtonByCaption (config , "Add post-build action" ).click (); // lib/hudson/project/config-publishers2.jelly
119
- page . getAnchorByText ( r . jenkins . getExtensionList ( BuildStepDescriptor . class ). get ( TestGroovyRecorder . DescriptorImpl . class ). getDisplayName ()). click ( );
131
+ addPostBuildAction ( page );
120
132
wc .waitForBackgroundJavaScript (10000 );
121
133
List <HtmlTextArea > scripts = config .getTextAreasByName ("_.script" );
122
134
// Get the last one, because previous ones might be from Lockable Resources during PCT.
@@ -188,7 +200,7 @@ public class SecureGroovyScriptTest {
188
200
HtmlPage page = wc .getPage (p , "configure" );
189
201
HtmlForm config = page .getFormByName ("config" );
190
202
HtmlFormUtil .getButtonByCaption (config , "Add post-build action" ).click (); // lib/hudson/project/config-publishers2.jelly
191
- page . getAnchorByText ( r . jenkins . getExtensionList ( BuildStepDescriptor . class ). get ( TestGroovyRecorder . DescriptorImpl . class ). getDisplayName ()). click ( );
203
+ addPostBuildAction ( page );
192
204
wc .waitForBackgroundJavaScript (10000 );
193
205
List <HtmlTextArea > scripts = config .getTextAreasByName ("_.script" );
194
206
// Get the last one, because previous ones might be from Lockable Resources during PCT.
@@ -231,7 +243,7 @@ public class SecureGroovyScriptTest {
231
243
HtmlPage page = wc .getPage (p , "configure" );
232
244
HtmlForm config = page .getFormByName ("config" );
233
245
HtmlFormUtil .getButtonByCaption (config , "Add post-build action" ).click (); // lib/hudson/project/config-publishers2.jelly
234
- page . getAnchorByText ( r . jenkins . getExtensionList ( BuildStepDescriptor . class ). get ( TestGroovyRecorder . DescriptorImpl . class ). getDisplayName ()). click ( );
246
+ addPostBuildAction ( page );
235
247
wc .waitForBackgroundJavaScript (10000 );
236
248
List <HtmlTextArea > scripts = config .getTextAreasByName ("_.script" );
237
249
// Get the last one, because previous ones might be from Lockable Resources during PCT.
@@ -1303,7 +1315,7 @@ public void testScriptAtFieldInitializers() throws Exception {
1303
1315
HtmlPage page = wc .getPage (p , "configure" );
1304
1316
HtmlForm config = page .getFormByName ("config" );
1305
1317
HtmlFormUtil .getButtonByCaption (config , "Add post-build action" ).click (); // lib/hudson/project/config-publishers2.jelly
1306
- page . getAnchorByText ( r . jenkins . getExtensionList ( BuildStepDescriptor . class ). get ( TestGroovyRecorder . DescriptorImpl . class ). getDisplayName ()). click ( );
1318
+ addPostBuildAction ( page );
1307
1319
wc .waitForBackgroundJavaScript (10000 );
1308
1320
List <HtmlTextArea > scripts = config .getTextAreasByName ("_.script" );
1309
1321
// Get the last one, because previous ones might be from Lockable Resources during PCT.
0 commit comments