package hudson.core;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import hudson.PluginManagerStaplerOverride;
import org.junit.Rule;
import org.junit.Test;
import org.jvnet.hudson.test.JenkinsRule;
import org.jvnet.hudson.test.TestExtension;
import static org.junit.Assert.*;
/**
* Verify that the PluginManagerStaplerOverride extensions register and allow safely modifying PluginManager views
* @author Sam Van Oort
*/
public class PluginManagerOverrideTest {
@Rule
public JenkinsRule j = new JenkinsRule();
@Test
public void testViewOverrides() throws Exception {
// Verify extension registered correctly and comes back in overrides
assertEquals(1,PluginManagerStaplerOverride.all().size());
assertTrue(PluginManagerStaplerOverride.all().get(0) instanceof BasicPluginManagerOverride);
// Verify we can load untouched resources
JenkinsRule.WebClient client = j.createWebClient();
assertEquals(200, client.goTo("self/pluginManager/available").getWebResponse().getStatusCode());
// Verify new view loads
HtmlPage p = j.createWebClient().goTo("self/pluginManager/newview");
assertEquals("LoremIpsum", p.getElementById("dummyElement").getTextContent());
}
/** Micro-implementation simply to allow adding a view resource */
@TestExtension("testViewOverrides")
public static class BasicPluginManagerOverride extends PluginManagerStaplerOverride {
}
}