import org.junit.Test;
import club.wpia.gigi.GigiApiException;
+import club.wpia.gigi.dbObjects.CATS.CATSType;
import club.wpia.gigi.dbObjects.Country;
import club.wpia.gigi.dbObjects.Country.CountryCodeType;
import club.wpia.gigi.dbObjects.Group;
makeAgent(orgAdmin.getId());
o.addAdmin(orgAdmin, u, true);
}
+
+ @Test
+ public void testValidChallenges() throws GeneralSecurityException, IOException, GigiApiException, InterruptedException {
+ insertRAContract(u.getId());
+ // test RA Agent challenge
+ cookie = cookieWithCertificateLogin(u);
+
+ testChallengeText("you need to pass the RA Agent Challenge", false);
+
+ add100Points(u.getId());
+ addChallengeInPast(u.getId(), CATSType.AGENT_CHALLENGE);
+ testChallengeText("you need to pass the RA Agent Challenge", true);
+
+ addChallenge(u.getId(), CATSType.AGENT_CHALLENGE);
+ testChallengeText("you need to pass the RA Agent Challenge", false);
+
+ // test Support challenge
+ testChallengeText("you need to pass the Support Challenge", false);
+
+ grant(u, Group.SUPPORTER);
+ cookie = login(loginPrivateKey, loginCertificate.cert());
+ testChallengeText("you need to pass the Support Challenge", true);
+
+ addChallengeInPast(u.getId(), CATSType.SUPPORT_DP_CHALLENGE_NAME);
+ testChallengeText("you need to pass the Support Challenge", true);
+
+ addChallenge(u.getId(), CATSType.SUPPORT_DP_CHALLENGE_NAME);
+ testChallengeText("you need to pass the Support Challenge", false);
+
+ // test Org Agent challenge
+ testChallengeText("you need to pass the Organisation Agent Challenge", false);
+
+ grant(u, Group.ORG_AGENT);
+ cookie = login(loginPrivateKey, loginCertificate.cert());
+ testChallengeText("you need to pass the Organisation Agent Challenge", true);
+
+ addChallengeInPast(u.getId(), CATSType.ORG_AGENT_CHALLENGE);
+ testChallengeText("you need to pass the Organisation Agent Challenge", true);
+
+ addChallenge(u.getId(), CATSType.ORG_AGENT_CHALLENGE);
+ testChallengeText("you need to pass the Organisation Agent Challenge", false);
+
+ // test TTP Agent challenge
+ testChallengeText("you need to pass the TTP RA Agent Challenge", false);
+
+ grant(u, Group.TTP_AGENT);
+ cookie = login(loginPrivateKey, loginCertificate.cert());
+ testChallengeText("you need to pass the TTP RA Agent Challenge", true);
+
+ addChallengeInPast(u.getId(), CATSType.TTP_AGENT_CHALLENGE);
+ testChallengeText("you need to pass the TTP RA Agent Challenge", true);
+
+ addChallenge(u.getId(), CATSType.TTP_AGENT_CHALLENGE);
+ testChallengeText("you need to pass the TTP RA Agent Challenge", false);
+
+ // test Org Admin Challenge
+ Organisation o = new Organisation(createUniqueName(), Country.getCountryByCode("DE", CountryCodeType.CODE_2_CHARS), "pr", "city", "test@example.com", "", "", u);
+ User admin = User.getById(createVerificationUser("testworker", "testname", createUniqueName() + "@testdom.com", TEST_PASSWORD));
+
+ loginCertificate = null;
+ cookie = cookieWithCertificateLogin(admin);
+ testChallengeText("you need to pass the Organisation Administrator Challenge", false);
+
+ o.addAdmin(admin, u, true);
+ testChallengeText("you need to pass the Organisation Administrator Challenge", true);
+
+ addChallengeInPast(admin.getId(), CATSType.ORG_ADMIN_DP_CHALLENGE_NAME);
+ testChallengeText("you need to pass the Organisation Administrator Challenge", true);
+
+ addChallenge(admin.getId(), CATSType.ORG_ADMIN_DP_CHALLENGE_NAME);
+ testChallengeText("you need to pass the Organisation Administrator Challenge", false);
+ }
+
+ private void testChallengeText(String contentText, boolean contains) throws IOException, MalformedURLException, GigiApiException {
+ URLConnection uc = new URL("https://" + getSecureServerName()).openConnection();
+ authenticate((HttpURLConnection) uc);
+ String content = IOUtils.readURL(uc);
+ if (contains) {
+ assertThat(content, containsString(contentText));
+ } else {
+ assertThat(content, not(containsString(contentText)));
+ }
+ }
}