/acceptance_tests/DM_test.py

https://bitbucket.org/isanneh/smart-house-web-app-isatou · Python · 137 lines · 126 code · 9 blank · 2 comment · 13 complexity · 96eb098cbfac08a181cf0744cd16a4c3 MD5 · raw file

  1. from selenium import webdriver
  2. from selenium.webdriver.common.by import By
  3. from selenium.webdriver.support.ui import Select
  4. from selenium.common.exceptions import NoSuchElementException
  5. import unittest, time, re
  6. class DMTest(unittest.TestCase):
  7. def setUp(self):
  8. self.driver = webdriver.Firefox()
  9. self.driver.implicitly_wait(30)
  10. self.base_url = "http://shwa.herokuapp.com/"
  11. self.verificationErrors = []
  12. self.accept_next_alert = True
  13. def test_d_m(self):
  14. driver = self.driver
  15. driver.get(self.base_url + "/register_mike")
  16. driver.get(self.base_url + "/home")
  17. driver.find_element_by_link_text("Register").click()
  18. driver.find_element_by_id("email").clear()
  19. driver.find_element_by_id("email").send_keys("m2@gmail.com")
  20. driver.find_element_by_id("nickname").clear()
  21. driver.find_element_by_id("nickname").send_keys("m2")
  22. driver.find_element_by_id("first_name").clear()
  23. driver.find_element_by_id("first_name").send_keys("t")
  24. driver.find_element_by_id("last_name").clear()
  25. driver.find_element_by_id("last_name").send_keys("est")
  26. driver.find_element_by_id("password").clear()
  27. driver.find_element_by_id("password").send_keys("test")
  28. driver.find_element_by_id("confirm_password").clear()
  29. driver.find_element_by_id("confirm_password").send_keys("test")
  30. driver.find_element_by_css_selector("input.btn").click()
  31. driver.find_element_by_link_text("Sign in").click()
  32. driver.find_element_by_id("email").clear()
  33. driver.find_element_by_id("email").send_keys("m2@gmail.com")
  34. driver.find_element_by_id("password").clear()
  35. driver.find_element_by_id("password").send_keys("test")
  36. driver.find_element_by_css_selector("input.btn").click()
  37. driver.find_element_by_xpath("(//a[contains(text(),'Forum')])[3]").click()
  38. driver.find_element_by_link_text("Create new post").click()
  39. driver.find_element_by_id("title").clear()
  40. driver.find_element_by_id("title").send_keys("DM TEST")
  41. driver.find_element_by_id("body").clear()
  42. driver.find_element_by_id("body").send_keys("dm")
  43. driver.find_element_by_css_selector("input.btn").click()
  44. driver.find_element_by_link_text("Sign out").click()
  45. driver.find_element_by_link_text("Sign in").click()
  46. driver.find_element_by_id("email").clear()
  47. driver.find_element_by_id("email").send_keys("m@gmail.com")
  48. driver.find_element_by_id("password").clear()
  49. driver.find_element_by_id("password").send_keys("tes")
  50. driver.find_element_by_css_selector("input.btn").click()
  51. driver.find_element_by_xpath("(//a[contains(text(),'Forum')])[3]").click()
  52. driver.find_element_by_link_text("m2").click()
  53. driver.find_element_by_link_text("Send Message").click()
  54. driver.find_element_by_id("title").clear()
  55. driver.find_element_by_id("title").send_keys("TEST")
  56. driver.find_element_by_id("body").clear()
  57. driver.find_element_by_id("body").send_keys("can you read this????")
  58. driver.find_element_by_css_selector("input.btn").click()
  59. driver.find_element_by_link_text("Sign out").click()
  60. driver.find_element_by_link_text("Sign in").click()
  61. driver.find_element_by_id("email").clear()
  62. driver.find_element_by_id("email").send_keys("m2@gmail.com")
  63. driver.find_element_by_id("password").clear()
  64. driver.find_element_by_id("password").send_keys("test")
  65. driver.find_element_by_css_selector("input.btn").click()
  66. driver.find_element_by_link_text("Messages").click()
  67. driver.find_element_by_link_text("TEST").click()
  68. # Warning: verifyTextPresent may require manual changes
  69. try: self.assertRegexpMatches(driver.find_element_by_css_selector("BODY").text, r"^[\s\S]*can you read this[\s\S][\s\S][\s\S][\s\S][\s\S]*$")
  70. except AssertionError as e: self.verificationErrors.append(str(e))
  71. driver.find_element_by_link_text("Reply").click()
  72. driver.find_element_by_id("body").clear()
  73. driver.find_element_by_id("body").send_keys("yes")
  74. driver.find_element_by_css_selector("input.btn").click()
  75. driver.find_element_by_link_text("Sign out").click()
  76. driver.find_element_by_css_selector("a.btn.btn-small").click()
  77. driver.find_element_by_id("email").clear()
  78. driver.find_element_by_id("email").send_keys("m@gmail.com")
  79. driver.find_element_by_id("password").clear()
  80. driver.find_element_by_id("password").send_keys("tes")
  81. driver.find_element_by_css_selector("input.btn").click()
  82. driver.find_element_by_link_text("Messages").click()
  83. driver.find_element_by_link_text("TEST").click()
  84. # Warning: verifyTextPresent may require manual changes
  85. try: self.assertRegexpMatches(driver.find_element_by_css_selector("BODY").text, r"^[\s\S]*yes[\s\S]*$")
  86. except AssertionError as e: self.verificationErrors.append(str(e))
  87. driver.find_element_by_link_text("Sign out").click()
  88. driver.find_element_by_link_text("Sign in").click()
  89. driver.find_element_by_id("email").clear()
  90. driver.find_element_by_id("email").send_keys("m2@gmail.com")
  91. driver.find_element_by_id("password").clear()
  92. driver.find_element_by_id("password").send_keys("test")
  93. driver.find_element_by_css_selector("input.btn").click()
  94. driver.find_element_by_link_text("Manage Account").click()
  95. driver.find_element_by_link_text("Delete Account").click()
  96. driver.find_element_by_link_text("Sign in").click()
  97. driver.find_element_by_id("email").clear()
  98. driver.find_element_by_id("email").send_keys("simulator@smarthouse.com")
  99. driver.find_element_by_id("password").clear()
  100. driver.find_element_by_id("password").send_keys("simulator")
  101. driver.find_element_by_css_selector("input.btn").click()
  102. driver.find_element_by_link_text("Forum").click()
  103. driver.find_element_by_link_text("DM TEST").click()
  104. driver.find_element_by_link_text("Delete Post").click()
  105. driver.find_element_by_link_text("Sign out").click()
  106. def is_element_present(self, how, what):
  107. try: self.driver.find_element(by=how, value=what)
  108. except NoSuchElementException, e: return False
  109. return True
  110. def is_alert_present(self):
  111. try: self.driver.switch_to_alert()
  112. except NoAlertPresentException, e: return False
  113. return True
  114. def close_alert_and_get_its_text(self):
  115. try:
  116. alert = self.driver.switch_to_alert()
  117. alert_text = alert.text
  118. if self.accept_next_alert:
  119. alert.accept()
  120. else:
  121. alert.dismiss()
  122. return alert_text
  123. finally: self.accept_next_alert = True
  124. def tearDown(self):
  125. self.driver.quit()
  126. self.assertEqual([], self.verificationErrors)
  127. if __name__ == "__main__":
  128. unittest.main()