package io.jenkins.plugins.analysis.core.testutil; import org.junit.BeforeClass; import org.junit.ClassRule; import org.jvnet.hudson.test.JenkinsRule; import org.jvnet.hudson.test.JenkinsRule.WebClient; /** * Base class for integration tests in Jenkins. Sub classes will get a new and fresh Jenkins instance for each test * case. * * @author Ullrich Hafner */ public abstract class IntegrationTestWithJenkinsPerSuite extends IntegrationTest { /** Jenkins rule per suite. */ @ClassRule public static final JenkinsRule JENKINS_PER_SUITE = new JenkinsRule(); @Override protected JenkinsRule getJenkins() { return JENKINS_PER_SUITE; } private static WebClient noJsWebClient; private static WebClient jsEnabledClient; /** Creates two web clients, one with and one without JS support. */ @BeforeClass public static void createWebClients() { noJsWebClient = create(JENKINS_PER_SUITE, false); jsEnabledClient = create(JENKINS_PER_SUITE, true); } @Override protected WebClient getWebClient(final JavaScriptSupport javaScriptSupport) { return javaScriptSupport == JavaScriptSupport.JS_DISABLED ? noJsWebClient : jsEnabledClient; } }