package lib.form; import com.gargoylesoftware.htmlunit.html.HtmlForm; import com.gargoylesoftware.htmlunit.html.HtmlInput; import com.gargoylesoftware.htmlunit.html.HtmlPage; import hudson.model.RootAction; import org.junit.Rule; import org.junit.Test; import org.jvnet.hudson.test.Issue; import org.jvnet.hudson.test.JenkinsRule; import org.jvnet.hudson.test.TestExtension; import org.xml.sax.SAXException; import java.io.IOException; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; /** * Tests for lib/form.jelly. */ public class FormTest { @Rule public JenkinsRule j = new JenkinsRule(); @Test @Issue("JENKINS-18435") public void autocompleteOffByDefault() throws IOException, SAXException { HtmlPage page = j.createWebClient().goTo("autocompleteOffByDefault"); HtmlForm form = page.getFormByName("config"); String autocomplete = form.getAttribute("autocomplete"); assertNotNull(autocomplete); assertEquals("off", autocomplete); } @Test @Issue("JENKINS-18435") public void autocompleteOnWhenTrue() throws IOException, SAXException { HtmlPage page = j.createWebClient().goTo("autocompleteOnWhenTrue"); HtmlForm form = page.getFormByName("config"); String autocomplete = form.getAttribute("autocomplete"); assertNotNull(autocomplete); assertEquals("on", autocomplete); } @Test @Issue("JENKINS-18435") public void inputsCanSetAutocomplete() throws IOException, SAXException { HtmlPage page = j.createWebClient().goTo("inputsCanSetAutocomplete"); HtmlForm form = page.getFormByName("config"); HtmlInput a = form.getInputByName("a"); String autocomplete = a.getAttribute("autocomplete"); assertNotNull(autocomplete); assertEquals("on", autocomplete); } @TestExtension("autocompleteOffByDefault") public static class AutocompleteOffByDefault implements RootAction { @Override public String getIconFileName() { return "gear2.png"; } @Override public String getDisplayName() { return "AutocompleteOffByDefault"; } @Override public String getUrlName() { return "autocompleteOffByDefault"; } } @TestExtension("autocompleteOnWhenTrue") public static class AutocompleteOnWhenTrue implements RootAction { @Override public String getIconFileName() { return "gear2.png"; } @Override public String getDisplayName() { return "AutocompleteOnWhenTrue"; } @Override public String getUrlName() { return "autocompleteOnWhenTrue"; } } @TestExtension("inputsCanSetAutocomplete") public static class InputsCanSetAutocomplete implements RootAction { @Override public String getIconFileName() { return "gear2.png"; } @Override public String getDisplayName() { return "InputsCanSetAutocomplete"; } @Override public String getUrlName() { return "inputsCanSetAutocomplete"; } } }