import java.io.IOException;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
-import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
+import java.security.GeneralSecurityException;
import org.junit.Test;
+import club.wpia.gigi.GigiApiException;
import club.wpia.gigi.dbObjects.User;
import club.wpia.gigi.pages.PasswordResetPage;
-import club.wpia.gigi.pages.wot.TestAssurance;
+import club.wpia.gigi.pages.wot.TestVerification;
import club.wpia.gigi.testUtils.ClientTest;
import club.wpia.gigi.testUtils.IOUtils;
import club.wpia.gigi.testUtils.TestEmailReceiver.TestMail;
public class TestPasswordResetExternal extends ClientTest {
@Test
- public void testByAssurance() throws IOException {
- User u = User.getById(createAssuranceUser("fn", "ln", createUniqueName() + "@example.com", TEST_PASSWORD));
- String cookie2 = login(u.getEmail(), TEST_PASSWORD);
- URLConnection uc = TestAssurance.buildupAssureFormConnection(cookie2, email, true);
+ public void testByVerification() throws IOException, GeneralSecurityException, GigiApiException, InterruptedException {
+ User u = User.getById(createVerificationUser("fn", "ln", createUniqueName() + "@example.com", TEST_PASSWORD));
+ String cookie2 = cookieWithCertificateLogin(u);
+ URLConnection uc = TestVerification.buildupVerifyFormConnection(cookie2, email, true);
String avalue = RandomToken.generateToken(32);
- uc.getOutputStream().write(("assuredName=" + this.u.getPreferredName().getId() + "&date=" + TestAssurance.validVerificationDateString() + "&location=testcase&countryCode=DE&certify=1&rules=1&assertion=1&points=10&passwordReset=1&passwordResetValue=" + URLEncoder.encode(avalue, "UTF-8")).getBytes("UTF-8"));
+ uc.getOutputStream().write(("verifiedName=" + this.u.getPreferredName().getId() + "&date=" + TestVerification.validVerificationDateString() + "&location=testcase&countryCode=DE&certify=1&rules=1&assertion=1&points=10&passwordReset=1&passwordResetValue=" + URLEncoder.encode(avalue, "UTF-8")).getBytes("UTF-8"));
uc.getOutputStream().flush();
String error = fetchStartErrorMessage(IOUtils.readURL(uc));
assertNull(error);
- TestMail mail = getMailReceiver().receive();
+ TestMail mail = getMailReceiver().receive(this.u.getEmail());
assertThat(mail.getSubject(), containsString("Verification"));
- mail = getMailReceiver().receive();
- assertEquals(mail.getTo(), this.u.getEmail());
+ mail = getMailReceiver().receive(this.u.getEmail());
String link = mail.extractLink();
String npw = TEST_PASSWORD + "'";
- System.out.println(link);
assertNotNull(toPasswordReset(avalue, link, npw, npw + "'"));
assertNotNull(toPasswordReset(avalue + "'", link, npw, npw));
assertNotNull(toPasswordReset(avalue, link, "a", "a"));
uc2.setDoOutput(true);
OutputStream o = uc2.getOutputStream();
o.write(("csrf=" + csrf + "&pword1=" + URLEncoder.encode(npw, "UTF-8") + "&pword2=" + URLEncoder.encode(npw2, "UTF-8") + "&private_token=" + URLEncoder.encode(avalue, "UTF-8")).getBytes("UTF-8"));
- System.out.println(((HttpURLConnection) uc2).getResponseCode());
String readURL = IOUtils.readURL(uc2);
return fetchStartErrorMessage(readURL);
}