PageRenderTime 109ms CodeModel.GetById 32ms app.highlight 70ms RepoModel.GetById 1ms app.codeStats 0ms

/acceptance_tests/sharing_test_suite/register_and_share_1.py

https://bitbucket.org/isanneh/smart-house-web-app-isatou
Python | 188 lines | 176 code | 7 blank | 5 comment | 17 complexity | 14d4c40f45978fd63e5d853bba05f29c MD5 | raw file
  1from selenium import webdriver
  2from selenium.webdriver.common.by import By
  3from selenium.webdriver.support.ui import Select
  4from selenium.common.exceptions import NoSuchElementException
  5import unittest, time, re
  6
  7class RegisterAndShare1(unittest.TestCase):
  8    def setUp(self):
  9        self.driver = webdriver.Firefox()
 10        self.driver.implicitly_wait(30)
 11        self.base_url = "http://shwa.herokuapp.com/"
 12        self.verificationErrors = []
 13        self.accept_next_alert = True
 14    
 15    def test_register_and_share1(self):
 16        driver = self.driver
 17        driver.get(self.base_url + "/register")
 18        driver.find_element_by_link_text("Register").click()
 19        driver.find_element_by_id("first_name").clear()
 20        driver.find_element_by_id("first_name").send_keys("u")
 21        driver.find_element_by_id("last_name").clear()
 22        driver.find_element_by_id("last_name").send_keys("l")
 23        driver.find_element_by_id("email").clear()
 24        driver.find_element_by_id("email").send_keys("u1@gmail.com")
 25        driver.find_element_by_id("nickname").clear()
 26        driver.find_element_by_id("nickname").send_keys("u1")
 27        driver.find_element_by_id("password").clear()
 28        driver.find_element_by_id("password").send_keys("test")
 29        driver.find_element_by_id("confirm_password").clear()
 30        driver.find_element_by_id("confirm_password").send_keys("test")
 31        driver.find_element_by_css_selector("input.btn").click()
 32        driver.find_element_by_link_text("Register").click()
 33        driver.find_element_by_id("first_name").clear()
 34        driver.find_element_by_id("first_name").send_keys("u")
 35        driver.find_element_by_id("last_name").clear()
 36        driver.find_element_by_id("last_name").send_keys("l")
 37        driver.find_element_by_id("email").clear()
 38        driver.find_element_by_id("email").send_keys("u2@gmail.com")
 39        driver.find_element_by_id("nickname").clear()
 40        driver.find_element_by_id("nickname").send_keys("u2")
 41        driver.find_element_by_id("password").clear()
 42        driver.find_element_by_id("password").send_keys("test")
 43        driver.find_element_by_id("confirm_password").clear()
 44        driver.find_element_by_id("confirm_password").send_keys("test")
 45        driver.find_element_by_css_selector("input.btn").click()
 46        driver.find_element_by_link_text("Register").click()
 47        driver.find_element_by_id("first_name").clear()
 48        driver.find_element_by_id("first_name").send_keys("u")
 49        driver.find_element_by_id("last_name").clear()
 50        driver.find_element_by_id("last_name").send_keys("l")
 51        driver.find_element_by_id("email").clear()
 52        driver.find_element_by_id("email").send_keys("u3")
 53        driver.find_element_by_id("nickname").clear()
 54        driver.find_element_by_id("nickname").send_keys("u3")
 55        driver.find_element_by_id("password").clear()
 56        driver.find_element_by_id("password").send_keys("test")
 57        driver.find_element_by_id("confirm_password").clear()
 58        driver.find_element_by_id("confirm_password").send_keys("test")
 59        driver.find_element_by_id("email").clear()
 60        driver.find_element_by_id("email").send_keys("u3@gmail.com")
 61        driver.find_element_by_css_selector("input.btn").click()
 62        driver.find_element_by_id("email").clear()
 63        driver.find_element_by_id("email").send_keys("u1@gmail.com")
 64        driver.find_element_by_id("password").clear()
 65        driver.find_element_by_id("password").send_keys("test")
 66        driver.find_element_by_css_selector("input.btn").click()
 67        driver.find_element_by_link_text("Rooms").click()
 68        driver.find_element_by_link_text("Add room").click()
 69        driver.find_element_by_id("name").clear()
 70        driver.find_element_by_id("name").send_keys("test_room1")
 71        driver.find_element_by_id("webcam_url").clear()
 72        driver.find_element_by_id("webcam_url").send_keys("http://test.com")
 73        driver.find_element_by_css_selector("input.btn").click()
 74        driver.find_element_by_link_text("Add room").click()
 75        driver.find_element_by_id("name").clear()
 76        driver.find_element_by_id("name").send_keys("test_room2")
 77        driver.find_element_by_id("webcam_url").clear()
 78        driver.find_element_by_id("webcam_url").send_keys("http://test.com")
 79        driver.find_element_by_css_selector("input.btn").click()
 80        driver.find_element_by_link_text("Add device").click()
 81        driver.find_element_by_id("name").clear()
 82        driver.find_element_by_id("name").send_keys("test_device1")
 83        driver.find_element_by_id("url").clear()
 84        driver.find_element_by_id("url").send_keys("http://test.com/test1")
 85        driver.find_element_by_id("command").clear()
 86        driver.find_element_by_id("command").send_keys("test")
 87        driver.find_element_by_css_selector("input.btn").click()
 88        driver.find_element_by_link_text("Add device").click()
 89        driver.find_element_by_id("name").clear()
 90        driver.find_element_by_id("name").send_keys("test_device2")
 91        driver.find_element_by_id("url").clear()
 92        driver.find_element_by_id("url").send_keys("http://test.com/test2")
 93        driver.find_element_by_id("command").clear()
 94        driver.find_element_by_id("command").send_keys("test")
 95        driver.find_element_by_css_selector("input.btn").click()
 96        driver.find_element_by_xpath("(//a[contains(text(),'Add device')])[2]").click()
 97        driver.find_element_by_id("name").clear()
 98        driver.find_element_by_id("name").send_keys("test_device3")
 99        driver.find_element_by_id("url").clear()
100        driver.find_element_by_id("url").send_keys("http://test.com/test3")
101        driver.find_element_by_id("command").clear()
102        driver.find_element_by_id("command").send_keys("test")
103        driver.find_element_by_css_selector("input.btn").click()
104        driver.find_element_by_xpath("(//a[contains(text(),'Add device')])[2]").click()
105        driver.find_element_by_id("name").clear()
106        driver.find_element_by_id("name").send_keys("test_device4")
107        driver.find_element_by_id("url").clear()
108        driver.find_element_by_id("url").send_keys("http://test.com/test4")
109        driver.find_element_by_id("command").clear()
110        driver.find_element_by_id("command").send_keys("test")
111        driver.find_element_by_css_selector("input.btn").click()
112        driver.find_element_by_link_text("Add users").click()
113        driver.find_element_by_id("users-0-email").clear()
114        driver.find_element_by_id("users-0-email").send_keys("u2")
115        driver.find_element_by_id("add_user").click()
116        driver.find_element_by_id("users-0-email").clear()
117        driver.find_element_by_id("users-0-email").send_keys("u2@gmail.com")
118        # ERROR: Caught exception [ReferenceError: selectLocator is not defined]
119        driver.find_element_by_id("users-1-email").clear()
120        driver.find_element_by_id("users-1-email").send_keys("u3@gmail.com")
121        driver.find_element_by_css_selector("input.btn").click()
122        driver.find_element_by_css_selector("a[alt=\"share test_device3\"]").click()
123        driver.find_element_by_id("email").clear()
124        driver.find_element_by_id("email").send_keys("u2@gmail.com")
125        driver.find_element_by_css_selector("input[type=\"submit\"]").click()
126        driver.find_element_by_css_selector("a[alt=\"share test_device3\"]").click()
127        driver.find_element_by_id("email").clear()
128        driver.find_element_by_id("email").send_keys("u3@gmail.com")
129        driver.find_element_by_css_selector("input[type=\"submit\"]").click()
130        driver.find_element_by_link_text("Sign out").click()
131        driver.find_element_by_link_text("Sign in").click()
132        driver.find_element_by_id("email").clear()
133        driver.find_element_by_id("email").send_keys("u2@gmail.com")
134        driver.find_element_by_id("password").clear()
135        driver.find_element_by_id("password").send_keys("test")
136        driver.find_element_by_css_selector("input.btn").click()
137        driver.find_element_by_css_selector("a[title=\"Devices shared with me settings\"]").click()
138        # Warning: verifyTextPresent may require manual changes
139        try: self.assertRegexpMatches(driver.find_element_by_css_selector("BODY").text, r"^[\s\S]*test_device3[\s\S]*$")
140        except AssertionError as e: self.verificationErrors.append(str(e))
141        driver.find_element_by_css_selector("a[title=\"Rooms shared with me settings\"]").click()
142        # Warning: verifyTextPresent may require manual changes
143        try: self.assertRegexpMatches(driver.find_element_by_css_selector("BODY").text, r"^[\s\S]*test_room1 \(owner u1 \)[\s\S]*$")
144        except AssertionError as e: self.verificationErrors.append(str(e))
145        driver.find_element_by_link_text("Sign out").click()
146        driver.find_element_by_link_text("Sign in").click()
147        driver.find_element_by_id("email").clear()
148        driver.find_element_by_id("email").send_keys("u3@gmail.com")
149        driver.find_element_by_id("password").clear()
150        driver.find_element_by_id("password").send_keys("test")
151        driver.find_element_by_css_selector("input.btn").click()
152        driver.find_element_by_css_selector("a[title=\"Devices shared with me settings\"]").click()
153        # Warning: verifyTextPresent may require manual changes
154        try: self.assertRegexpMatches(driver.find_element_by_css_selector("BODY").text, r"^[\s\S]*test_device3[\s\S]*$")
155        except AssertionError as e: self.verificationErrors.append(str(e))
156        driver.find_element_by_css_selector("a[title=\"Rooms shared with me settings\"]").click()
157        # Warning: verifyTextPresent may require manual changes
158        try: self.assertRegexpMatches(driver.find_element_by_css_selector("BODY").text, r"^[\s\S]*test_room1 \(owner u1 \)[\s\S]*$")
159        except AssertionError as e: self.verificationErrors.append(str(e))
160        driver.find_element_by_link_text("Sign out").click()
161    
162    def is_element_present(self, how, what):
163        try: self.driver.find_element(by=how, value=what)
164        except NoSuchElementException, e: return False
165        return True
166    
167    def is_alert_present(self):
168        try: self.driver.switch_to_alert()
169        except NoAlertPresentException, e: return False
170        return True
171    
172    def close_alert_and_get_its_text(self):
173        try:
174            alert = self.driver.switch_to_alert()
175            alert_text = alert.text
176            if self.accept_next_alert:
177                alert.accept()
178            else:
179                alert.dismiss()
180            return alert_text
181        finally: self.accept_next_alert = True
182    
183    def tearDown(self):
184        self.driver.quit()
185        self.assertEqual([], self.verificationErrors)
186
187if __name__ == "__main__":
188    unittest.main()