package org.esmerilprogramming.overtownacceptance; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPut; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.apache.http.protocol.HTTP; import org.esmerilprogramming.overtownacceptance.main.MainWithContext; import org.junit.*; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import static org.junit.Assert.assertTrue; /** * Created by efraimgentil<efraimgentil@gmail.com> on 15/03/15. */ public class PutRoutesAcceptance { WebDriver webDriver; static MainWithContext mainApp; @BeforeClass public static void initClass(){ mainApp = new MainWithContext(); mainApp.start(); } @AfterClass public static void finish(){ mainApp.stop(); } @Before public void initTest(){ webDriver = new FirefoxDriver(); } @After public void endTest(){ webDriver.quit(); } @Test public void doesCallPutAndSendGetRequestWithHiddenMethodInformation(){ webDriver.get("localhost:8080/acceptance/index/indexWithTemplate"); WebElement name = webDriver.findElement(By.id("putName")); name.sendKeys("efraim"); webDriver.findElement(By.id("putSubmit")).click(); String pageSource = webDriver.getPageSource(); System.out.println( pageSource ); assertTrue( pageSource.contains("PUT - index/put - nome:efraim") ); } @Test public void doesCallPutAndSendPostRequestWithHiddenMethodInformation(){ webDriver.get("localhost:8080/acceptance/index/indexWithTemplate"); WebElement name = webDriver.findElement(By.id("putPostName")); name.sendKeys("efraim"); webDriver.findElement(By.id("putPostSubmit")).click(); String pageSource = webDriver.getPageSource(); System.out.println( pageSource ); assertTrue( pageSource.contains("PUT - index/put - nome:efraim") ); } @Test public void doesCorrectRespondToARequestUsingPutMethod() throws IOException { CloseableHttpClient client = HttpClients.createDefault(); HttpPut httpPut = new HttpPut("http://localhost:8080/acceptance/index/put"); List<NameValuePair> nvps = new ArrayList<NameValuePair>(); nvps.add( new BasicNameValuePair("name", "efraim") ); httpPut.setEntity( new UrlEncodedFormEntity(nvps , HTTP.UTF_8 ) ); HttpResponse response = client.execute(httpPut); BufferedReader br = new BufferedReader( new InputStreamReader((response.getEntity().getContent()))); String output; StringBuilder sb = new StringBuilder(); while ((output = br.readLine()) != null) { sb.append( output ); } assertTrue( sb.toString().contains("PUT - index/put - nome:efraim") ); client.close(); } }