/sitebricks-acceptance-tests/src/test/java/com/google/sitebricks/acceptance/page/ConversionPage.java

http://github.com/dhanji/sitebricks · Java · 95 lines · 76 code · 19 blank · 0 comment · 12 complexity · c6ba22eadd491da48f0701cc0487a633 MD5 · raw file

  1. package com.google.sitebricks.acceptance.page;
  2. import java.net.URLEncoder;
  3. import java.text.SimpleDateFormat;
  4. import java.util.Calendar;
  5. import java.util.Date;
  6. import org.openqa.selenium.By;
  7. import org.openqa.selenium.WebDriver;
  8. import org.openqa.selenium.support.PageFactory;
  9. import com.google.sitebricks.acceptance.util.AcceptanceTest;
  10. import com.google.sitebricks.example.SitebricksConfig;
  11. public class ConversionPage {
  12. private WebDriver driver;
  13. public ConversionPage(WebDriver driver) {
  14. this.driver = driver;
  15. }
  16. public boolean hasDate(Date date) {
  17. SimpleDateFormat sdf = new SimpleDateFormat(SitebricksConfig.DEFAULT_DATE_TIME_FORMAT);
  18. String target = sdf.format(date);
  19. return driver.findElement(By.id("boundDate"))
  20. .getText()
  21. .contains(target);
  22. }
  23. public boolean hasCalendar(Calendar calendar) {
  24. SimpleDateFormat sdf = new SimpleDateFormat(SitebricksConfig.DEFAULT_DATE_TIME_FORMAT);
  25. String target = sdf.format(calendar.getTime());
  26. String node = driver.getPageSource();
  27. return driver.findElement(By.id("boundCalendar"))
  28. .getText()
  29. .contains(target);
  30. }
  31. public boolean hasMessage(String message) {
  32. return driver.findElement(By.id("boundText"))
  33. .getText()
  34. .contains(message);
  35. }
  36. public boolean hasDouble(Double dbl) {
  37. return driver.findElement(By.id("boundDouble"))
  38. .getText()
  39. .contains(dbl.toString());
  40. }
  41. public static ConversionPage open(WebDriver driver, Date date, Calendar calendar, String dateFormat, String msg, Double dbl) {
  42. SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
  43. StringBuilder sb = new StringBuilder ();
  44. if (date != null) {
  45. if (sb.length() > 0)
  46. sb.append("&");
  47. sb.append ("date=").append(encode(sdf.format(date)));
  48. }
  49. if (calendar != null) {
  50. if (sb.length() > 0)
  51. sb.append("&");
  52. sb.append ("calendar=").append(encode(sdf.format(calendar.getTime())));
  53. }
  54. if (msg != null) {
  55. if (sb.length() > 0)
  56. sb.append("&");
  57. sb.append ("message=").append(encode(msg));
  58. }
  59. if (msg != null) {
  60. if (sb.length() > 0)
  61. sb.append("&");
  62. sb.append ("dbl=").append(encode(dbl.toString()));
  63. }
  64. sb.insert(0,"/conversion?").insert(0, AcceptanceTest.baseUrl());
  65. driver.get(sb.toString());
  66. return PageFactory.initElements(driver, ConversionPage.class);
  67. }
  68. private static String encode(String s){
  69. try {
  70. return URLEncoder.encode(s,"UTF-8");
  71. }
  72. catch(Exception e){
  73. return s;
  74. }
  75. }
  76. }