Skip to content

Commit 412b333

Browse files
committed
[JENKINS-75194][JENKINS-63963] Correct test
1 parent fc731c8 commit 412b333

File tree

3 files changed

+41
-56
lines changed

3 files changed

+41
-56
lines changed

src/test/java/org/biouno/unochoice/issue62835/TestForNodeLabelParameter.java

+1-5
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@
4747
import org.openqa.selenium.WebElement;
4848
import org.openqa.selenium.support.ui.ExpectedConditions;
4949
import org.openqa.selenium.support.ui.Select;
50-
import org.xml.sax.SAXException;
5150

5251
import java.io.IOException;
5352
import java.util.Arrays;
@@ -65,14 +64,11 @@
6564
@WithJenkins
6665
class TestForNodeLabelParameter extends BaseUiTest {
6766

68-
private JenkinsRule j;
69-
7067
private DumbSlave onlineNode;
7168

7269
@BeforeEach
7370
public void setUp(JenkinsRule j) {
7471
super.setUp(j);
75-
this.j = j;
7672
try {
7773
onlineNode = j.createOnlineSlave(new LabelAtom("mylabel1"));
7874
} catch (Exception e) {
@@ -91,7 +87,7 @@ public void tearDown() {
9187
}
9288

9389
@Test
94-
void testNodeLabelParameterValueFound() throws IOException, SAXException, Descriptor.FormException {
90+
void testNodeLabelParameterValueFound() throws IOException, Descriptor.FormException {
9591
FreeStyleProject project = j.createFreeStyleProject();
9692

9793
final String nodeName = onlineNode.getNodeName();

src/test/java/org/biouno/unochoice/issue63963/TestGroovyScriptParametersOrder.java

+35-51
Original file line numberDiff line numberDiff line change
@@ -23,61 +23,56 @@
2323
*/
2424
package org.biouno.unochoice.issue63963;
2525

26-
import static org.junit.jupiter.api.Assertions.assertEquals;
27-
import static org.junit.jupiter.api.Assertions.assertNotNull;
28-
29-
import java.io.IOException;
30-
import java.util.Arrays;
31-
import java.util.LinkedList;
32-
import java.util.List;
33-
3426
import hudson.model.Descriptor;
27+
import hudson.model.FreeStyleProject;
28+
import hudson.model.ParametersDefinitionProperty;
29+
import hudson.model.StringParameterDefinition;
30+
import org.biouno.unochoice.BaseUiTest;
3531
import org.biouno.unochoice.CascadeChoiceParameter;
3632
import org.biouno.unochoice.model.GroovyScript;
3733
import org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SecureGroovyScript;
3834
import org.jenkinsci.plugins.scriptsecurity.scripts.ScriptApproval;
3935
import org.junit.jupiter.api.Test;
40-
import org.jvnet.hudson.test.JenkinsRule;
41-
import org.jvnet.hudson.test.JenkinsRule.WebClient;
36+
import org.jvnet.hudson.test.Issue;
4237
import org.jvnet.hudson.test.junit.jupiter.WithJenkins;
43-
import org.xml.sax.SAXException;
38+
import org.openqa.selenium.By;
39+
import org.openqa.selenium.WebElement;
40+
import org.openqa.selenium.support.ui.ExpectedConditions;
41+
import org.openqa.selenium.support.ui.Select;
4442

45-
import org.htmlunit.html.DomElement;
46-
import org.htmlunit.html.DomNode;
47-
import org.htmlunit.html.HtmlOption;
48-
import org.htmlunit.html.HtmlPage;
49-
import org.htmlunit.html.HtmlSelect;
43+
import java.io.IOException;
44+
import java.util.Arrays;
45+
import java.util.LinkedList;
46+
import java.util.List;
5047

51-
import hudson.model.FreeStyleProject;
52-
import hudson.model.ParametersDefinitionProperty;
53-
import hudson.model.StringParameterDefinition;
48+
import static org.junit.jupiter.api.Assertions.assertEquals;
5449

5550
/**
5651
* Test that verifies that the order of parameters is correct
5752
* when using a {@code Map}.
5853
*
5954
* @since 2.5.1
6055
*/
56+
@Issue("JENKINS-63963")
6157
@WithJenkins
62-
class TestGroovyScriptParametersOrder {
58+
class TestGroovyScriptParametersOrder extends BaseUiTest {
6359

6460
/**
6561
* Using test kindly provided by Jason Antman in JENKINS-63963. See issue in JIRA for more context
6662
* about the problem, analysis, and solution (mostly done by Jason).
6763
*
6864
* @throws IOException if it fails to load the script
69-
* @throws SAXException if the XML is malformed
7065
*/
7166
@Test
72-
void testGroovyScriptParametersOrder(JenkinsRule j) throws IOException, SAXException, Descriptor.FormException {
67+
void testGroovyScriptParametersOrder() throws IOException, Descriptor.FormException {
7368
FreeStyleProject project = j.createFreeStyleProject();
7469

7570
StringParameterDefinition teamUid = new StringParameterDefinition("TEAM_UID", "foo", "Team name (UID)");
7671
StringParameterDefinition environment = new StringParameterDefinition("ENVIRONMENT", "bar", "The environment name to use for this stack (default: dev)");
7772

7873
String scriptText = """
79-
Map getOptions(String teamId, String enviro) {
80-
def found_snapshots = ["":"Select a backup file or snapshot to restore for " + teamId + " enviro " + enviro]; // value => selection text
74+
Map getOptions(String teamId, String env) {
75+
def found_snapshots = ["":"Select a backup file or snapshot to restore for " + teamId + " env " + env]; // value => selection text
8176
found_snapshots["one"] = "snapshot e";
8277
found_snapshots["two"] = "snapshot d";
8378
found_snapshots["three"] = "snapshot c";
@@ -112,36 +107,25 @@ Map getOptions(String teamId, String enviro) {
112107
project.addProperty(new ParametersDefinitionProperty(Arrays.asList(teamUid, environment, backupFileName)));
113108
project.save();
114109

110+
driver.get(j.getURL().toString() + "job/" + project.getName() + "/build?delay=0sec");
115111

116-
WebClient wc = j.createWebClient();
117-
wc.setThrowExceptionOnFailingStatusCode(false);
118-
HtmlPage configPage = wc.goTo("job/" + project.getName() + "/build?delay=0sec");
119-
DomElement renderedParameterElement = configPage.getElementById("random-name");
120-
HtmlSelect select = null;
121-
for (DomNode node: renderedParameterElement.getChildren()) {
122-
if (node instanceof HtmlSelect) {
123-
select = (HtmlSelect) node;
124-
break;
125-
}
126-
}
127-
128-
assertNotNull(select, "Missing cascade parameter select HTML node element!");
112+
wait.until(ExpectedConditions.invisibilityOfElementLocated(By.cssSelector(".jenkins-spinner")));
129113

130-
List<HtmlOption> htmlOptions = select.getOptions();
131-
final List<String> options = htmlOptions
132-
.stream()
133-
.map(HtmlOption::getText)
134-
.toList();
114+
By selectOptions = By.cssSelector("div.active-choice:has([name='name'][value='BACKUP_FILENAME']) > select > option");
115+
wait.until(ExpectedConditions.numberOfElementsToBe(selectOptions, 6));
116+
WebElement renderedParameterElement = findSelect("BACKUP_FILENAME");
117+
Select select = new Select(renderedParameterElement);
118+
List<WebElement> htmlOptions = select.getOptions();
135119
final List<String> expected = new LinkedList<>();
136-
{
137-
expected.add("Select a backup file or snapshot to restore for foo enviro bar");
138-
expected.add("snapshot e");
139-
expected.add("snapshot d");
140-
expected.add("snapshot c");
141-
expected.add("snapshot b");
142-
expected.add("snapshot a");
120+
expected.add("Select a backup file or snapshot to restore for foo env bar");
121+
expected.add("snapshot e");
122+
expected.add("snapshot d");
123+
expected.add("snapshot c");
124+
expected.add("snapshot b");
125+
expected.add("snapshot a");
126+
assertEquals(expected.size(), htmlOptions.size(), "Wrong number of HTML options rendered");
127+
for (int i = 0; i < htmlOptions.size(); i++) {
128+
assertEquals(expected.get(i), htmlOptions.get(i).getText(), "Wrong HTML options rendered (or out of order)");
143129
}
144-
assertEquals(expected.size(), options.size(), "Wrong number of HTML options rendered");
145-
assertEquals(expected, options, "Wrong HTML options rendered (or out of order)");
146130
}
147131
}

src/test/java/org/biouno/unochoice/issue71909/TestRevertingAsynchronousProxy.java

+5
Original file line numberDiff line numberDiff line change
@@ -74,13 +74,17 @@ void test() throws Exception {
7474
wait.until(ExpectedConditions.invisibilityOfElementLocated(By.cssSelector(".jenkins-spinner")));
7575

7676
WebElement targetParam = findSelect("TARGET");
77+
78+
wait.until(ExpectedConditions.visibilityOf(targetParam));
79+
7780
assertTrue(targetParam.isDisplayed());
7881
assertTrue(targetParam.isEnabled());
7982
new Select(targetParam).selectByValue("Item3");
8083

8184
wait.until(ExpectedConditions.invisibilityOfElementLocated(By.cssSelector(".jenkins-spinner")));
8285

8386
List<WebElement> dockerBaseImageParam = findRadios("DOCKER_BASE_IMAGE");
87+
wait.until(ExpectedConditions.visibilityOf(dockerBaseImageParam.get(0)));
8488
assertEquals(2, dockerBaseImageParam.size());
8589

8690
checkRadios(radios("DOCKER_BASE_IMAGE"), "buster", "bullseye");
@@ -89,6 +93,7 @@ void test() throws Exception {
8993
assertEquals("true", findRadios("DOCKER_BASE_IMAGE").get(0).getDomAttribute("checked"));
9094

9195
List<WebElement> machinesParam = findCheckboxes("MACHINES");
96+
wait.until(ExpectedConditions.visibilityOf(machinesParam.get(0)));
9297
assertEquals("server2", machinesParam.get(1).getDomAttribute("value"));
9398
machinesParam.get(1).click();
9499

0 commit comments

Comments
 (0)