Skip to content

Commit 5d7530a

Browse files
author
Brandon Duffany
committed
2 parents 7d8028c + 7f7a88f commit 5d7530a

File tree

2 files changed

+79
-3
lines changed

2 files changed

+79
-3
lines changed

codebender_testing/config.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@
66

77
# Selenium Webdrivers to be used for selenium tests
88
WEBDRIVERS = {
9-
"firefox": webdriver.Firefox,
10-
"chrome": webdriver.Chrome
9+
"firefox": webdriver.Firefox
1110
}
1211

1312
# Credentials to use when logging into the site via selenium

tests/home/test_home.py

Lines changed: 78 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,94 @@
1+
from codebender_testing.config import TEST_CREDENTIALS
12
from codebender_testing.utils import SeleniumTestCase
23
from selenium.webdriver.common.keys import Keys
34

45
class TestHome(SeleniumTestCase):
56

67
def test_navigate_home(self):
8+
""" opens browser to codebender bachelor """
79
self.open("/")
810
assert "Codebender" in self.driver.title
911

1012
def test_login(self):
11-
"""Test to ensure the login box is displayed"""
1213
driver = self.driver
1314
self.open("/")
15+
16+
""" tests to ensure login div appears """
1417
login_elem = driver.find_element_by_id("login_btn") #finds login button
1518
login_elem.send_keys(Keys.RETURN) #clicks login button
1619
logbox_elem = driver.find_element_by_id("login_box") #finds login div
1720
assert logbox_elem.is_displayed() #checks to see if div is visible
21+
22+
""" tests login with invalid username """
23+
# define elements in login form
24+
username_elem = driver.find_element_by_id("username")
25+
password_elem = driver.find_element_by_id("password")
26+
submit_elem = driver.find_element_by_id("_submit")
27+
28+
# enter invalid username with correct password
29+
username_elem.send_keys("codebender")
30+
password_elem.send_keys(TEST_CREDENTIALS['password'])
31+
submit_elem.click()
32+
33+
# check for error message
34+
error_elem = driver.find_element_by_class_name('text-error')
35+
assert error_elem.is_displayed()
36+
37+
""" tests login with invalid password """
38+
# refresh page so error message no longer visible
39+
driver.refresh()
40+
41+
# re-click on login button
42+
login_elem = driver.find_element_by_id("login_btn")
43+
login_elem.send_keys(Keys.RETURN)
44+
45+
# re-define elements in login form
46+
username_elem = driver.find_element_by_id("username")
47+
password_elem = driver.find_element_by_id("password")
48+
submit_elem = driver.find_element_by_id("_submit")
49+
50+
# enter correct username with invalid password
51+
username_elem.clear()
52+
username_elem.send_keys(TEST_CREDENTIALS['username'])
53+
password_elem.send_keys("codebender")
54+
submit_elem.click()
55+
56+
# re-define error message element and test
57+
error_elem = driver.find_element_by_class_name('text-error')
58+
assert error_elem.is_displayed()
59+
60+
""" tests that login takes you to user's home """
61+
# refresh page so error message no longer visible
62+
driver.refresh()
63+
64+
# re-click on login button
65+
login_elem = driver.find_element_by_id("login_btn")
66+
login_elem.send_keys(Keys.RETURN)
67+
68+
# re-define elements in login form
69+
username_elem = driver.find_element_by_id("username")
70+
password_elem = driver.find_element_by_id("password")
71+
submit_elem = driver.find_element_by_id("_submit")
72+
73+
# log in to site using correct credentials
74+
username_elem.clear()
75+
username_elem.send_keys(TEST_CREDENTIALS['username'])
76+
password_elem.send_keys(TEST_CREDENTIALS['password'])
77+
submit_elem.click()
78+
assert "Logged in as" in driver.page_source
79+
80+
def test_quit(self):
81+
""" closes driver """
82+
driver = self.driver
83+
#driver.quit()
84+
85+
86+
87+
88+
89+
90+
91+
92+
93+
94+

0 commit comments

Comments
 (0)