/** * Unlock the instance. * @param j JenkinsRule. * @throws Exception throw if so. */ public static void unLock(JenkinsRule j) throws Exception { j.getInstance().setSecurityRealm(SecurityRealm.NO_AUTHENTICATION); }
@Before public void setUp() { j.getInstance().getInjector().injectMembers(this); }
@Before public void cleanOutAllItems() throws Exception { for (TopLevelItem i : j.getInstance().getItems()) { i.delete(); } }
@Test public void inject() throws Exception { Map<String, Object> r = new HashMap<>(); r.put("a",3); r.put("b","bbb"); r.put("c",null); r.put("d","ddd"); BogusStep step = (BogusStep) d.newInstance(r); assertEquals(step.a,3); assertEquals(step.b,"bbb"); assertNull(step.c); assertEquals(step.d,"ddd"); StepContext c = mock(StepContext.class); when(c.get(Node.class)).thenReturn(j.getInstance()); BogusStepExecution b = (BogusStepExecution)step.start(c); b.start(); }
/** * Lock down the instance. * @param j JenkinsRule. * @throws Exception throw if so. */ public static void lockDown(JenkinsRule j) throws Exception { SecurityRealm securityRealm = j.createDummySecurityRealm(); j.getInstance().setSecurityRealm(securityRealm); j.getInstance().setAuthorizationStrategy( new MockAuthorizationStrategy().grant(Jenkins.READ).everywhere().toAuthenticated()); }
/** * Tests that event is properly removed if only one project is triggered * which is cancelled while in the queue. * * @throws Exception if something goes wrong */ @Test public void testCancelledQueueItemIsOnlyTriggeredProject() throws Exception { FreeStyleProject project = jenkinsRule.createFreeStyleProject(); PatchsetCreated event = Setup.createPatchsetCreated(); final GerritCause gerritCause = new GerritCause(event, false); ToGerritRunListener runListener = ToGerritRunListener.getInstance(); runListener.onTriggered(project, event); project.scheduleBuild2(QUIET_PERIOD, gerritCause); Item item = waitForBlockedItem(project, TIMEOUT_SECONDS); Queue queue = jenkinsRule.getInstance().getQueue(); queue.doCancelItem(item.getId()); assertThat(queue.isEmpty(), equalTo(true)); assertThat(project.getBuilds().size(), equalTo(0)); assertThat(runListener.isBuilding(event), equalTo(false)); }
/** * Tests that event is properly removed if only two different projects are triggered * and one of them is cancelled while in the queue. * * @throws Exception if something goes wrong */ @Test public void testCancelledOneQueueItemOfTwo() throws Exception { FreeStyleProject project = jenkinsRule.createFreeStyleProject(); FreeStyleProject project2 = jenkinsRule.createFreeStyleProject(); PatchsetCreated event = Setup.createPatchsetCreated(); final GerritCause gerritCause = new GerritCause(event, false); ToGerritRunListener runListener = ToGerritRunListener.getInstance(); runListener.onTriggered(project, event); runListener.onTriggered(project2, event); project.scheduleBuild2(QUIET_PERIOD, gerritCause); QueueTaskFuture<FreeStyleBuild> future2 = project2.scheduleBuild2(QUIET_PERIOD, gerritCause); Item item = waitForBlockedItem(project, TIMEOUT_SECONDS); Queue queue = jenkinsRule.getInstance().getQueue(); queue.doCancelItem(item.getId()); FreeStyleBuild build = future2.get(); assertThat(queue.isEmpty(), equalTo(true)); assertThat(project.getBuilds().size(), equalTo(0)); assertThat(project2.getBuilds().size(), equalTo(1)); assertThat(runListener.isBuilding(event), equalTo(false)); }
/** * This test aims to verify that the environment variables (from Global Properties section) are available in SCM * Polling. */ @Ignore("TODO org.tmatesoft.svn.core.SVNException: svn: E175002: PROPFIND of '/trunk/jenkins/test-projects/model-maven-project': 405 Method Not Allowed (https://svn.jenkins-ci.org)") @Issue("JENKINS-31067") @Test public void pollingWithEnvVars() throws Exception { jenkins.getInstance().getGlobalNodeProperties().add(new EnvironmentVariablesNodeProperty(new EnvironmentVariablesNodeProperty.Entry("BRANCH", "trunk"))); FreeStyleProject project = jenkins.createFreeStyleProject(); project.setScm(new SubversionSCM(REPO_URL)); jenkins.assertBuildStatusSuccess(project.scheduleBuild2(0).get()); TaskListener listener = jenkins.createTaskListener(); PollingResult poll = project.poll(listener); assertFalse(poll.hasChanges()); } }
/** * Tests that only an admin can read server configuration and manipulate server state. * @throws Exception if so */ @Test @Issue({"SECURITY-402", "SECURITY-403" }) public void testOnlyAdminCanPerformServerConfigurationActions() throws Exception { GerritServer gerritServer = new GerritServer(PluginImpl.DEFAULT_SERVER_NAME); SshdServerMock.configureFor(sshd, gerritServer); PluginImpl.getInstance().addServer(gerritServer); gerritServer.getConfig().setNumberOfSendingWorkerThreads(NUMBEROFSENDERTHREADS); ((Config)gerritServer.getConfig()).setGerritAuthKeyFile(sshKey.getPrivateKey()); gerritServer.start(); Setup.lockDown(j); j.getInstance().setAuthorizationStrategy( new MockAuthorizationStrategy().grant(Item.READ, Item.DISCOVER).everywhere().toAuthenticated() .grant(Jenkins.READ, Item.DISCOVER).everywhere().toEveryone() .grant(Item.CONFIGURE).everywhere().to("bob") .grant(Jenkins.ADMINISTER).everywhere().to("alice")); j.jenkins.setCrumbIssuer(null); //Not really testing csrf right now JenkinsRule.WebClient webClient = j.createWebClient().login("alice", "alice"); HtmlPage page = webClient.goTo("plugin/gerrit-trigger/servers/0/"); HtmlForm config = page.getFormByName("config"); assertNotNull(config); post(webClient, "plugin/gerrit-trigger/servers/0/sleep", "application/json", null); webClient = j.createWebClient().login("bob", "bob"); webClient.assertFails("plugin/gerrit-trigger/servers/0/", 403); post(webClient, "plugin/gerrit-trigger/servers/0/wakeup", null, 403); }
j.getInstance().setAuthorizationStrategy( new MockAuthorizationStrategy().grant(Item.READ, Item.DISCOVER).everywhere().toAuthenticated() .grant(Jenkins.READ, Item.DISCOVER).everywhere().toEveryone()