예제 #1
0
 public void testPrevalidateConfig() throws Exception {
     PersistedList<UpdateSite> sites = jenkins.getUpdateCenter().getSites();
     sites.clear();
     URL url = PluginManagerTest.class.getResource("/plugins/tasks-update-center.json");
     UpdateSite site = new UpdateSite(UpdateCenter.ID_DEFAULT, url.toString());
     sites.add(site);
     assertEquals(FormValidation.ok(), site.updateDirectly(false).get());
     assertNotNull(site.getData());
     assertEquals(Collections.emptyList(), jenkins.getPluginManager().prevalidateConfig(new StringInputStream("<whatever><runant plugin=\"[email protected]\"/></whatever>")));
     assertNull(jenkins.getPluginManager().getPlugin("tasks"));
     List<Future<UpdateCenterJob>> jobs = jenkins.getPluginManager().prevalidateConfig(new StringInputStream("<whatever><tasks plugin=\"[email protected]\"/></whatever>"));
     assertEquals(1, jobs.size());
     UpdateCenterJob job = jobs.get(0).get(); // blocks for completion
     assertEquals("InstallationJob", job.getType());
     UpdateCenter.InstallationJob ijob = (UpdateCenter.InstallationJob) job;
     assertEquals("tasks", ijob.plugin.name);
     assertNotNull(jenkins.getPluginManager().getPlugin("tasks"));
     // TODO restart scheduled (SuccessButRequiresRestart) after upgrade or Support-Dynamic-Loading: false
     // TODO dependencies installed or upgraded too
     // TODO required plugin installed but inactive
 }