/acceptance_tests/sharing_test_suite/register_and_share_1.py
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()