Skip to content

Commit

Permalink
Permit use of Forbidden files without File Paths
Browse files Browse the repository at this point in the history
When a job is configured to be triggered with the use of a Forbidden path,
this path is only inspected if the configuration ALSO contains a File path.

This patch corrects this requirement.

[JENKINS-29663]

Change-Id: I05335924584ec171a027c894d52fdce2aa1f65dd
  • Loading branch information
Scott Hebert committed Sep 29, 2015
1 parent 2224079 commit 6f8ab60
Show file tree
Hide file tree
Showing 9 changed files with 27 additions and 3 deletions.
Expand Up @@ -818,8 +818,7 @@ public boolean equals(Object obj) {
&& p.isInteresting(changeBasedEvent.getChange().getProject(),
changeBasedEvent.getChange().getBranch(),
changeBasedEvent.getChange().getTopic())) {
if (isFileTriggerEnabled() && p.getFilePaths() != null
&& p.getFilePaths().size() > 0) {
if (isFileTriggerEnabled()) {
if (isServerInteresting(event)
&& p.isInteresting(changeBasedEvent.getChange().getProject(),
changeBasedEvent.getChange().getBranch(),
Expand Down
Expand Up @@ -109,6 +109,7 @@ public void setUp() throws Exception {
serverOne.returnCommandFor("gerrit ls-projects", SshdServerMock.EofCommandMock.class);
serverOne.returnCommandFor(GERRIT_STREAM_EVENTS, SshdServerMock.CommandMock.class);
serverOne.returnCommandFor("gerrit review.*", SshdServerMock.EofCommandMock.class);
serverOne.returnCommandFor("gerrit query.*", SshdServerMock.EofCommandMock.class);
serverOne.returnCommandFor("gerrit version", SshdServerMock.EofCommandMock.class);
serverTwo.returnCommandFor("gerrit ls-projects", SshdServerMock.EofCommandMock.class);
serverTwo.returnCommandFor(GERRIT_STREAM_EVENTS, SshdServerMock.CommandMock.class);
Expand Down
Expand Up @@ -90,6 +90,7 @@ public void setUp() throws Exception {
server.returnCommandFor("gerrit ls-projects", SshdServerMock.EofCommandMock.class);
server.returnCommandFor(GERRIT_STREAM_EVENTS, SshdServerMock.CommandMock.class);
server.returnCommandFor("gerrit review.*", SshdServerMock.EofCommandMock.class);
server.returnCommandFor("gerrit query.*", SshdServerMock.EofCommandMock.class);
server.returnCommandFor("gerrit version", SshdServerMock.EofCommandMock.class);
}

Expand Down
Expand Up @@ -85,6 +85,7 @@ public void setUp() throws Exception {
server.returnCommandFor("gerrit ls-projects", SshdServerMock.EofCommandMock.class);
server.returnCommandFor(GERRIT_STREAM_EVENTS, SshdServerMock.CommandMock.class);
server.returnCommandFor("gerrit review.*", SshdServerMock.EofCommandMock.class);
server.returnCommandFor("gerrit query.*", SshdServerMock.EofCommandMock.class);
server.returnCommandFor("gerrit version", SshdServerMock.EofCommandMock.class);
}

Expand Down
Expand Up @@ -85,6 +85,7 @@ public void setUp() throws Exception {
server.returnCommandFor("gerrit ls-projects", SshdServerMock.EofCommandMock.class);
server.returnCommandFor(GERRIT_STREAM_EVENTS, SshdServerMock.CommandMock.class);
server.returnCommandFor("gerrit review.*", SshdServerMock.EofCommandMock.class);
server.returnCommandFor("gerrit query.*", SshdServerMock.EofCommandMock.class);
server.returnCommandFor("gerrit version", SshdServerMock.EofCommandMock.class);
System.setProperty(PluginImpl.TEST_SSH_KEYFILE_LOCATION_PROPERTY, sshKey.getPrivateKey().getAbsolutePath());
}
Expand Down
Expand Up @@ -750,6 +750,9 @@ public void testRetriggerAllBuilds() {
public void testGerritEvent() {
AbstractProject project = mockProject();
Queue queue = mockConfig(project);

mockGetServerConfig();

PowerMockito.mockStatic(ToGerritRunListener.class);
ToGerritRunListener listener = PowerMockito.mock(ToGerritRunListener.class);
PowerMockito.when(ToGerritRunListener.getInstance()).thenReturn(listener);
Expand All @@ -758,7 +761,6 @@ public void testGerritEvent() {
doReturn(true).when(gP).isInteresting(any(String.class), any(String.class), any(String.class));
when(gP.getFilePaths()).thenReturn(null);


GerritTrigger trigger = Setup.createDefaultTrigger(project);
Setup.setTrigger(trigger, project);
trigger.setGerritProjects(Collections.nCopies(1, gP));
Expand All @@ -774,6 +776,15 @@ public void testGerritEvent() {
verify(queue).schedule2(same(project), anyInt(), hasCauseActionContainingCause(null));
}

/**
* Setup the mocked getServerConfig.
*/
private void mockGetServerConfig() {
PowerMockito.mockStatic(PluginImpl.class);
IGerritHudsonTriggerConfig config = Setup.createConfig();
when(PluginImpl.getServerConfig(any(GerritTriggeredEvent.class))).thenReturn(config);
}

/**
* Tests {@link EventListener#gerritEvent(com.sonymobile.tools.gerrit.gerritevents.dto.GerritEvent)}
* with a non buildable project.
Expand Down Expand Up @@ -874,6 +885,8 @@ public void testGerritEventManualEvent() {

Queue queue = mockConfig(project);

mockGetServerConfig();

PowerMockito.mockStatic(ToGerritRunListener.class);
ToGerritRunListener listener = PowerMockito.mock(ToGerritRunListener.class);
PowerMockito.when(ToGerritRunListener.getInstance()).thenReturn(listener);
Expand Down Expand Up @@ -1021,6 +1034,8 @@ public void testGerritEventSilentMode() {

Queue queue = mockConfig(project);

mockGetServerConfig();

PowerMockito.mockStatic(ToGerritRunListener.class);
ToGerritRunListener listener = PowerMockito.mock(ToGerritRunListener.class);
PowerMockito.when(ToGerritRunListener.getInstance()).thenReturn(listener);
Expand Down Expand Up @@ -1052,6 +1067,9 @@ public void testGerritEventManualEventSilentMode() {
when(project.getFullName()).thenReturn("MockProject");
when(project.isBuildable()).thenReturn(true);
Queue queue = mockConfig(project);

mockGetServerConfig();

PowerMockito.mockStatic(ToGerritRunListener.class);
ToGerritRunListener listener = PowerMockito.mock(ToGerritRunListener.class);
PowerMockito.when(ToGerritRunListener.getInstance()).thenReturn(listener);
Expand Down
Expand Up @@ -105,6 +105,7 @@ public void setUp() throws Exception {
server.returnCommandFor("gerrit ls-projects", SshdServerMock.EofCommandMock.class);
server.returnCommandFor(GERRIT_STREAM_EVENTS, SshdServerMock.CommandMock.class);
server.returnCommandFor("gerrit review.*", SshdServerMock.EofCommandMock.class);
server.returnCommandFor("gerrit query.*", SshdServerMock.EofCommandMock.class);
server.returnCommandFor("gerrit version", SshdServerMock.EofCommandMock.class);
stubFor(get(urlEqualTo("/plugins/" + GerritMissedEventsPlaybackManager.EVENTS_LOG_PLUGIN_NAME + "/"))
.willReturn(aResponse()
Expand Down
Expand Up @@ -100,6 +100,7 @@ public void setUp() throws Exception {
server.returnCommandFor("gerrit ls-projects", SshdServerMock.EofCommandMock.class);
server.returnCommandFor(GERRIT_STREAM_EVENTS, SshdServerMock.CommandMock.class);
server.returnCommandFor("gerrit review.*", SshdServerMock.EofCommandMock.class);
server.returnCommandFor("gerrit query.*", SshdServerMock.EofCommandMock.class);
server.returnCommandFor("gerrit version", SshdServerMock.EofCommandMock.class);
System.setProperty(PluginImpl.TEST_SSH_KEYFILE_LOCATION_PROPERTY, sshKey.getPrivateKey().getAbsolutePath());
}
Expand Down
Expand Up @@ -111,6 +111,7 @@ public void setUp() throws Exception {
serverMock.returnCommandFor("gerrit ls-projects", SshdServerMock.EofCommandMock.class);
serverMock.returnCommandFor(GERRIT_STREAM_EVENTS, SshdServerMock.CommandMock.class);
serverMock.returnCommandFor("gerrit review.*", SshdServerMock.EofCommandMock.class);
serverMock.returnCommandFor("gerrit query.*", SshdServerMock.EofCommandMock.class);
serverMock.returnCommandFor("gerrit approve.*", SshdServerMock.EofCommandMock.class);
serverMock.returnCommandFor("gerrit version", SshdServerMock.EofCommandMock.class);
serverMock.returnCommandFor("gerrit approve.*", SshdServerMock.EofCommandMock.class);
Expand Down

0 comments on commit 6f8ab60

Please sign in to comment.