package cc.blynk.integration.https; import cc.blynk.integration.BaseTest; import cc.blynk.server.api.http.HttpAPIServer; import cc.blynk.server.core.BaseServer; import cc.blynk.server.core.model.AppName; import org.apache.http.NameValuePair; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.runners.MockitoJUnitRunner; import java.util.ArrayList; import java.util.List; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.mockito.Mockito.*; /** * The Blynk Project. * Created by Dmitriy Dumanskiy. * Created on 24.12.15. */ @RunWith(MockitoJUnitRunner.class) public class HttpResetPassTest extends BaseTest { private static BaseServer httpServer; private CloseableHttpClient httpclient; private String httpServerUrl; @After public void shutdown() throws Exception { httpServer.close(); httpclient.close(); } @Before public void init() throws Exception { httpServerUrl = String.format("http://localhost:%s/", httpPort); // Allow TLSv1 protocol only this.httpclient = HttpClients.createDefault(); httpServer = new HttpAPIServer(holder).start(); } @Override public String getDataFolder() { return getRelativeDataFolder("/profiles"); } @Test public void submitResetPasswordRequest() throws Exception { String email = "dmitriy@blynk.cc"; HttpPost resetPassRequest = new HttpPost(httpServerUrl + "/resetPassword"); List <NameValuePair> nvps = new ArrayList<>(); nvps.add(new BasicNameValuePair("email", email)); nvps.add(new BasicNameValuePair("appName", AppName.BLYNK)); resetPassRequest.setEntity(new UrlEncodedFormEntity(nvps)); try (CloseableHttpResponse response = httpclient.execute(resetPassRequest)) { assertEquals(200, response.getStatusLine().getStatusCode()); String data = consumeText(response); assertNotNull(data); assertEquals("Email was sent.", data); } verify(mailWrapper).sendHtml(eq(email), eq("Password reset request for Blynk app."), contains("/landing?token=")); } }