package com.offbytwo.jenkins.integration; import hudson.PluginManager; import hudson.PluginWrapper; import hudson.model.UpdateCenter; import java.util.List; import java.util.Vector; import jenkins.model.Jenkins; import org.junit.Assert; import org.junit.Before; import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.jvnet.hudson.test.JenkinsRule; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; import org.mockito.Mockito; import com.google.common.base.Optional; import com.offbytwo.jenkins.JenkinsServer; import com.offbytwo.jenkins.model.FolderJob; import com.offbytwo.jenkins.model.JobWithDetails; public class FolderTestsIT { private final String JENKINS_WITH_DETAILS_TEST_JOB = "build_with_details"; private JenkinsServer server; @Rule public JenkinsRule jenkinsRule = new JenkinsRule(); @Before public void setUp() throws Exception { // Install the cloudbees folder plugin Jenkins jenkins = jenkinsRule.getInstance(); PluginManager pm = jenkins.getPluginManager(); StaplerRequest req = Mockito.mock(StaplerRequest.class); StaplerResponse res = Mockito.mock(StaplerResponse.class); Vector<String> pluginNames = new Vector<String>(); pluginNames.add("plugin.cloudbees-folder"); Mockito.when(req.getParameterNames()).thenReturn(pluginNames.elements()); Mockito.when(req.getParameter("dynamicLoad")).thenReturn("true"); UpdateCenter uc = jenkins.getUpdateCenter(); uc.updateAllSites(); List<hudson.model.UpdateSite.Plugin> availables = uc.getAvailables(); List<PluginWrapper> plugins = pm.getPlugins(); // TODO: need to figure out how to install the cloudbees folder plugin // pm.doInstall(req, res); jenkins.getCrumbIssuer().getCrumb(); jenkins.getCrumbIssuer().getCrumbRequestField(); server = new JenkinsServer(jenkinsRule.getURL().toURI()); } @Ignore // XXX need to fix this test @Test public void testFolderPluginAPIs() throws Exception { server.createFolder("root"); JobWithDetails root = server.getJob("root"); Assert.assertNotNull(root); Optional<FolderJob> rootFolder = server.getFolderJob(root); Assert.assertTrue(rootFolder.isPresent()); server.createFolder(rootFolder.get(), "subfolder"); JobWithDetails subfolder = server.getJob(rootFolder.get(), "subfolder"); Assert.assertNotNull(subfolder); Optional<FolderJob> subfolderFolder = server.getFolderJob(subfolder); Assert.assertTrue(subfolderFolder.isPresent()); server.deleteJob("root"); root = server.getJob("root"); Assert.assertNull(root); } }