From 9281ae82c6ee43013cb4f226d6d57d1919053b16 Mon Sep 17 00:00:00 2001 From: Tim Jacomb Date: Fri, 26 Nov 2021 08:06:56 +0000 Subject: [PATCH] Use form element path to make test less fragile --- .../src/test/java/hudson/model/ParametersTest.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/test/src/test/java/hudson/model/ParametersTest.java b/test/src/test/java/hudson/model/ParametersTest.java index cb38e085d4d9..77bd34fa8f7f 100644 --- a/test/src/test/java/hudson/model/ParametersTest.java +++ b/test/src/test/java/hudson/model/ParametersTest.java @@ -15,6 +15,7 @@ import com.gargoylesoftware.htmlunit.html.HtmlFormUtil; import com.gargoylesoftware.htmlunit.html.HtmlOption; import com.gargoylesoftware.htmlunit.html.HtmlPage; +import com.gargoylesoftware.htmlunit.html.HtmlSelect; import com.gargoylesoftware.htmlunit.html.HtmlTextInput; import edu.umd.cs.findbugs.annotations.NonNull; import hudson.markup.MarkupFormatter; @@ -116,13 +117,16 @@ public void choiceWithLTGT() throws Exception { HtmlPage page = wc.goTo("job/" + project.getName() + "/build?delay=0sec"); HtmlForm form = page.getFormByName("parameters"); - HtmlElement element = (HtmlElement) ((HtmlElement) DomNodeUtil.selectSingleNode(form, ".//div[input/@value='choice']")).getParentNode(); + HtmlElement element = (HtmlElement) (form.getElementsByAttribute("input", "path", "/parameter/name")).get(0).getParentNode(); assertNotNull(element); - assertEquals("choice description", ((HtmlElement) DomNodeUtil.selectSingleNode(element.getNextSibling().getNextSibling(), "div[@class='jenkins-form-description']")).getTextContent()); - assertEquals("choice", ((HtmlElement) DomNodeUtil.selectSingleNode(element.getParentNode(), "div[contains(@class, 'jenkins-form-label')]")).getTextContent()); - HtmlOption opt = DomNodeUtil.selectSingleNode(element.getParentNode(), "div/div/select/option[@value='Choice <2>']"); + assertEquals("choice description", ((HtmlElement) DomNodeUtil.selectSingleNode(form, "//div[contains(@class, 'jenkins-form-description')]")).getTextContent()); + assertEquals("choice", ((HtmlElement) DomNodeUtil.selectSingleNode(form, "//div[contains(@class, 'jenkins-form-label')]")).getTextContent()); + + HtmlSelect choiceSelect = (HtmlSelect) form.getElementsByAttribute("select", "path", "/parameter/value").get(0); + + HtmlOption opt = DomNodeUtil.selectSingleNode(choiceSelect, "option[@value='Choice <2>']"); assertNotNull(opt); - assertEquals("Choice <2>", opt.asText()); + assertEquals("Choice <2>", opt.asNormalizedText()); opt.setSelected(true); j.submit(form);