Skip to content

Commit c34e592

Browse files
authored
Merge pull request #147 from yaroslavafenkin/JENKINS-74871
[JENKINS-74871] Fix the broken jelly view
2 parents 75d865a + fccee40 commit c34e592

2 files changed

Lines changed: 48 additions & 3 deletions

File tree

src/main/resources/hudson/plugins/validating_string_parameter/ValidatingStringParameterDefinition/index.jelly

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,11 @@ THE SOFTWARE.
3232
<f:invisibleEntry>
3333
<f:textbox field="failedValidationMessage" value="${it.failedValidationMessage}"/>
3434
</f:invisibleEntry>
35-
<f:entry title="${h.xmlEscape(it.name)}" description="${it.formattedDescription}" field="defaultValue">
36-
<f:textbox value="${it.defaultValue}" checkUrl="${it.descriptor.descriptorFullUrl}/validate"
37-
checkDependsOn="regex failedValidationMessage"/>
35+
<f:entry title="${h.xmlEscape(it.name)}" description="${it.formattedDescription}">
36+
<div name="parameter" description="${it.formattedDescription}">
37+
<input type="hidden" name="name" value="${it.name}"/>
38+
<f:textbox name="value" value="${it.defaultValue}" checkUrl="${it.descriptor.descriptorFullUrl}/validate"
39+
checkDependsOn="../regex ../failedValidationMessage"/>
40+
</div>
3841
</f:entry>
3942
</j:jelly>

src/test/java/hudson/plugins/validating_string_parameter/ValidatingStringParameterTest.java

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,30 @@
11
package hudson.plugins.validating_string_parameter;
22

3+
import hudson.Functions;
4+
import hudson.model.FreeStyleBuild;
5+
import hudson.model.FreeStyleProject;
6+
import hudson.model.ParameterValue;
7+
import hudson.model.ParametersAction;
38
import hudson.model.ParametersDefinitionProperty;
9+
import hudson.tasks.BatchFile;
10+
import hudson.tasks.Shell;
11+
import org.htmlunit.html.DomNode;
12+
import org.htmlunit.html.HtmlButton;
13+
import org.htmlunit.html.HtmlPage;
414
import org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition;
515
import org.jenkinsci.plugins.workflow.job.WorkflowJob;
616
import org.junit.Rule;
717
import org.junit.Test;
818
import org.jvnet.hudson.test.JenkinsRule;
919

20+
import java.util.List;
21+
1022
import static org.hamcrest.MatcherAssert.assertThat;
23+
import static org.hamcrest.Matchers.empty;
24+
import static org.hamcrest.Matchers.equalTo;
25+
import static org.hamcrest.Matchers.instanceOf;
1126
import static org.hamcrest.Matchers.is;
27+
import static org.hamcrest.Matchers.not;
1228
import static org.hamcrest.Matchers.notNullValue;
1329
import static org.hamcrest.Matchers.nullValue;
1430

@@ -29,4 +45,30 @@ public void pipeline() throws Exception {
2945
r.buildAndAssertSuccess(p);
3046
assertThat(p.getProperty(ParametersDefinitionProperty.class), is(notNullValue()));
3147
}
48+
49+
@Test
50+
public void freestyle() throws Exception {
51+
FreeStyleProject p = r.createProject(FreeStyleProject.class, "fs");
52+
p.getBuildersList().add(Functions.isWindows() ? new BatchFile("echo test") : new Shell("echo test"));
53+
54+
ValidatingStringParameterDefinition def = new ValidatingStringParameterDefinition("name", "defVal", "\\w+", "Value must match the following pattern: \\w+");
55+
p.addProperty(new ParametersDefinitionProperty(def));
56+
57+
try (JenkinsRule.WebClient wc = r.createWebClient()) {
58+
wc.setThrowExceptionOnFailingStatusCode(false);
59+
HtmlPage htmlPage = wc.goTo("job/fs/build");
60+
HtmlButton buildButton = htmlPage.querySelector(".jenkins-button--primary");
61+
buildButton.click();
62+
}
63+
64+
r.waitUntilNoActivity();
65+
List<ParameterValue> parameters = p.getLastSuccessfulBuild().getAction(ParametersAction.class).getParameters();
66+
assertThat(parameters, is(not(empty())));
67+
ParameterValue parameterValue = parameters.get(0);
68+
assertThat(parameterValue, is(instanceOf(ValidatingStringParameterValue.class)));
69+
ValidatingStringParameterValue val = (ValidatingStringParameterValue) parameterValue;
70+
assertThat(val.getRegex(), is(equalTo("\\w+")));
71+
assertThat(val.getValue(), is(equalTo("defVal")));
72+
assertThat(val.getName(), is(equalTo("name")));
73+
}
3274
}

0 commit comments

Comments
 (0)