Added test for CIA Quiz
This commit is contained in:
parent
b8e68d13b8
commit
5a11a5dae9
@ -0,0 +1,206 @@
|
||||
package org.owasp.webgoat.plugin;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.owasp.webgoat.plugins.LessonTest;
|
||||
import org.owasp.webgoat.session.WebgoatContext;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.test.web.servlet.MvcResult;
|
||||
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
|
||||
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.hamcrest.CoreMatchers.is;
|
||||
import static org.mockito.Mockito.when;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||
/**
|
||||
* @author Benedikt Stuhrmann
|
||||
* @since 13/03/19.
|
||||
*/
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
public class CIAQuizTest extends LessonTest {
|
||||
|
||||
@Autowired
|
||||
private WebgoatContext context;
|
||||
|
||||
@Before
|
||||
public void setup() {
|
||||
CIA cia = new CIA();
|
||||
when(webSession.getCurrentLesson()).thenReturn(cia);
|
||||
when(webSession.getWebgoatContext()).thenReturn(context);
|
||||
this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void allAnswersCorrectIsSuccess() throws Exception {
|
||||
String[] solution0 = {"Solution 3"};
|
||||
String[] solution1 = {"Solution 1"};
|
||||
String[] solution2 = {"Solution 4"};
|
||||
String[] solution3 = {"Solution 2"};
|
||||
|
||||
mockMvc.perform(MockMvcRequestBuilders.post("/cia/quiz")
|
||||
.param("question_0_solution", solution0)
|
||||
.param("question_1_solution", solution1)
|
||||
.param("question_2_solution", solution2)
|
||||
.param("question_3_solution", solution3))
|
||||
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(jsonPath("lessonCompleted", is(true)));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void oneAnswerWrongIsFailure() throws Exception {
|
||||
String[] solution0 = {"Solution 1"};
|
||||
String[] solution1 = {"Solution 1"};
|
||||
String[] solution2 = {"Solution 4"};
|
||||
String[] solution3 = {"Solution 2"};
|
||||
|
||||
mockMvc.perform(MockMvcRequestBuilders.post("/cia/quiz")
|
||||
.param("question_0_solution", solution0)
|
||||
.param("question_1_solution", solution1)
|
||||
.param("question_2_solution", solution2)
|
||||
.param("question_3_solution", solution3))
|
||||
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(jsonPath("lessonCompleted", is(false)));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void twoAnswersWrongIsFailure() throws Exception {
|
||||
String[] solution0 = {"Solution 1"};
|
||||
String[] solution1 = {"Solution 1"};
|
||||
String[] solution2 = {"Solution 4"};
|
||||
String[] solution3 = {"Solution 3"};
|
||||
|
||||
mockMvc.perform(MockMvcRequestBuilders.post("/cia/quiz")
|
||||
.param("question_0_solution", solution0)
|
||||
.param("question_1_solution", solution1)
|
||||
.param("question_2_solution", solution2)
|
||||
.param("question_3_solution", solution3))
|
||||
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(jsonPath("lessonCompleted", is(false)));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void threeAnswersWrongIsFailure() throws Exception {
|
||||
String[] solution0 = {"Solution 1"};
|
||||
String[] solution1 = {"Solution 1"};
|
||||
String[] solution2 = {"Solution 1"};
|
||||
String[] solution3 = {"Solution 3"};
|
||||
|
||||
mockMvc.perform(MockMvcRequestBuilders.post("/cia/quiz")
|
||||
.param("question_0_solution", solution0)
|
||||
.param("question_1_solution", solution1)
|
||||
.param("question_2_solution", solution2)
|
||||
.param("question_3_solution", solution3))
|
||||
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(jsonPath("lessonCompleted", is(false)));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void allAnswersWrongIsFailure() throws Exception {
|
||||
String[] solution0 = {"Solution 2"};
|
||||
String[] solution1 = {"Solution 1"};
|
||||
String[] solution2 = {"Solution 3"};
|
||||
String[] solution3 = {"Solution 1"};
|
||||
|
||||
mockMvc.perform(MockMvcRequestBuilders.post("/cia/quiz")
|
||||
.param("question_0_solution", solution0)
|
||||
.param("question_1_solution", solution1)
|
||||
.param("question_2_solution", solution2)
|
||||
.param("question_3_solution", solution3))
|
||||
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(jsonPath("lessonCompleted", is(false)));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void allAnswersCorrectGetResultsReturnsTrueTrueTrueTrue() throws Exception {
|
||||
String[] solution0 = {"Solution 3"};
|
||||
String[] solution1 = {"Solution 1"};
|
||||
String[] solution2 = {"Solution 4"};
|
||||
String[] solution3 = {"Solution 2"};
|
||||
|
||||
mockMvc.perform(MockMvcRequestBuilders.post("/cia/quiz")
|
||||
.param("question_0_solution", solution0)
|
||||
.param("question_1_solution", solution1)
|
||||
.param("question_2_solution", solution2)
|
||||
.param("question_3_solution", solution3));
|
||||
|
||||
MvcResult result = mockMvc.perform(MockMvcRequestBuilders.get("/cia/quiz"))
|
||||
.andExpect(status().isOk())
|
||||
.andReturn();
|
||||
|
||||
String responseString = result.getResponse().getContentAsString();
|
||||
assertThat(responseString).isEqualTo("[ true, true, true, true ]");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void firstAnswerFalseGetResultsReturnsFalseTrueTrueTrue() throws Exception {
|
||||
String[] solution0 = {"Solution 2"};
|
||||
String[] solution1 = {"Solution 1"};
|
||||
String[] solution2 = {"Solution 4"};
|
||||
String[] solution3 = {"Solution 2"};
|
||||
|
||||
mockMvc.perform(MockMvcRequestBuilders.post("/cia/quiz")
|
||||
.param("question_0_solution", solution0)
|
||||
.param("question_1_solution", solution1)
|
||||
.param("question_2_solution", solution2)
|
||||
.param("question_3_solution", solution3));
|
||||
|
||||
MvcResult result = mockMvc.perform(MockMvcRequestBuilders.get("/cia/quiz"))
|
||||
.andExpect(status().isOk())
|
||||
.andReturn();
|
||||
|
||||
String responseString = result.getResponse().getContentAsString();
|
||||
assertThat(responseString).isEqualTo("[ false, true, true, true ]");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void secondAnswerFalseGetResultsReturnsTrueFalseTrueTrue() throws Exception {
|
||||
String[] solution0 = {"Solution 3"};
|
||||
String[] solution1 = {"Solution 2"};
|
||||
String[] solution2 = {"Solution 4"};
|
||||
String[] solution3 = {"Solution 2"};
|
||||
|
||||
mockMvc.perform(MockMvcRequestBuilders.post("/cia/quiz")
|
||||
.param("question_0_solution", solution0)
|
||||
.param("question_1_solution", solution1)
|
||||
.param("question_2_solution", solution2)
|
||||
.param("question_3_solution", solution3));
|
||||
|
||||
MvcResult result = mockMvc.perform(MockMvcRequestBuilders.get("/cia/quiz"))
|
||||
.andExpect(status().isOk())
|
||||
.andReturn();
|
||||
|
||||
String responseString = result.getResponse().getContentAsString();
|
||||
assertThat(responseString).isEqualTo("[ true, false, true, true ]");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void allAnswersFalseGetResultsReturnsFalseFalseFalseFalse() throws Exception {
|
||||
String[] solution0 = {"Solution 1"};
|
||||
String[] solution1 = {"Solution 2"};
|
||||
String[] solution2 = {"Solution 1"};
|
||||
String[] solution3 = {"Solution 1"};
|
||||
|
||||
mockMvc.perform(MockMvcRequestBuilders.post("/cia/quiz")
|
||||
.param("question_0_solution", solution0)
|
||||
.param("question_1_solution", solution1)
|
||||
.param("question_2_solution", solution2)
|
||||
.param("question_3_solution", solution3));
|
||||
|
||||
MvcResult result = mockMvc.perform(MockMvcRequestBuilders.get("/cia/quiz"))
|
||||
.andExpect(status().isOk())
|
||||
.andReturn();
|
||||
|
||||
String responseString = result.getResponse().getContentAsString();
|
||||
assertThat(responseString).isEqualTo("[ false, false, false, false ]");
|
||||
}
|
||||
|
||||
} // end class
|
Loading…
x
Reference in New Issue
Block a user